Excel 有哪些可能需要熟练掌握而很多人不会的技能?

关注者
232,885
被浏览
8,521,249

660 个回答

♋♋♋♋声明♋♋♋♋

收藏≠学会,点赞=附魔50%学习经验加成


排版篇

  • 给他人发送excel前,请尽量将光标定位在需要他人首先阅览的位置,例如Home位置(A1),例如结论sheet,长表尽量将位置定位到最顶端
  • 有必要的时候请冻结首行;没必要但可追究的内容,可以隐藏处理
  • 行标题、列标题加粗,适当处理文字颜色、填充颜色,利人利己,可参见:Excel 中的颜色要怎么搭配,视觉上更能接受且区分度高? - 设计
  • 占用空间比较小的表格,可以放置在左上角,但留空A列和1行,并给表格加上合适的框线,观感很不错哦~
  • 同类型数据的行高、列宽、字体、字号,求你尽量一致,非要逼死强迫症吗!
  • 定义好比较标准的格式,例如百分比预留几位小数,手机号的列宽设置足够,时间显示尽量本土化...
  • 不要设置其他电脑没有的字体,除非这个表格就在这一台电脑使用...
  • 参考一些官方的模板,例如OfficePLUS,微软Office官方在线模板网站!,再例如Mac端excel打开就显示的各种模板,很多清单或者规划类的excel我都直接用这里面的,不需要重新设计

操作篇

  • Alt+Enter在表格内换行,楼上有提到
  • Ctrl+Shift+上/下,选择该列所有数据,当然加上左右可选择多列
  • Ctrl+上/下,跳至表格最下方
  • Ctrl+C/V,不仅仅复制表格内容,也可以复制格式和公式!
  • Ctrl+D/R,复制上行数据/左列数据
  • 还有个很好用的单元格格式转换,推荐大家用熟

(有点不清晰...当初偷懒直接把图片截到印象笔记的...)

  • Ctrl+F/H的查找、替换,点击“选项”,可以替换某种格式等等,另一片天地有木有!
  • F4,对,你没看错,就是F4!重复上一步操作,比如,插入行、设置格式等等频繁的操作,F4简直逆天!
  • ‘(分号后面那个) 比如输入网址的时候,一般输入完会自动变为超链接,在网址前输入’就解决咯
  • 复制,选择性粘贴里面有几个非常好用的——仅值,转置(个人推荐用transpose公式)
  • 公式里面切换绝对引用,直接点选目标,按F4轮流切换,例如A1,$A$1,$A1,A$1
  • 快速填充能取代大部分有简单规律的分列、抽取、合并的工作

公式篇

  • if、countif、sumif、countifs、sumifs,这几个一起学,用于条件计数、条件求和
  • max、min、large,这几个一起,用于简单的数据分析
  • rand、randbetween,这俩一起,用于生成随机数,也可以用于生成随机密码(用rand配合char可生成中英文大小写随机的)
  • 定位类型的函数:MID、SEARCH、LEN、LEFT、RIGHT一起学吧,简单但异常实用
  • 四舍五入个人偏好用round函数,举个简单例子,一列数据,2.04、2.03并求和,显示保留1位小数,你会在界面上看到2.0、2.0,求和却是4.1,表格打印出来会比较让人难理解
  • subtotal:用于对过滤后的数据进行汇总分析
  • sumproduct:返回一个区域的乘积之和,不用A1*B1之后再下拉再求和
  • Vlookup函数,这个不多说了,神器;另外推荐lookup函数:LOOKUP(1,0/(条件),查找数组或区域)
  • offset函数,常用于配合其他函数使用,例如想将10*20的表中的每行复制成3行按原顺序变成30行:=OFFSET($A$1,INT((ROW(A1)-1)/3),COLUMN(A1)-1,1,1) 下拉,由于不用到列,所以等同于=OFFSET($A$1,INT((ROW(A1)-1)/3),0),我当初是这么做笔记的....:=(A1,向下偏移(向下取整(行数-1)/3),向右偏移0)
  • text,例如19880110 text(A1,"0-00-00"),转为1988-01-10,用法很多
  • weekday,让你做时间计划表什么的时候,把日期转为“星期X”
  • column(目标单元格),返回目标单元格所在列数,有时候真的很好用...还有 @黄老邪推荐的columns
  • transpose(目标区域),神奇的转置,把行变成列,把列变成行...
  • &,可在目标单元格后面增加某些字符,偶尔用(我这种强迫患者用的是concatenate公式,我特么有病!)
  • 数组,虽然复杂,但是有的公式配上数组简直爽爆
  • 多百度,例如曾经碰到一个难题,把X分X秒,转为X秒,例如172分52秒,直接用=TEXT(SUBSTITUTE(SUBSTITUTE("00:"&A1,"秒",""),"分",":"),"[s]"),把文本转为时分秒的标准格式再转秒,就算第一时间想不到,也可以第一时间百度到,效率才是王道



图表篇

  • 不同的场景请用不同的图,转个非常精髓的图:


  • 数据透析表、数据透析图,嗯嗯,推荐的人太多了...
  • 图表设计——布局,灵活运用好多类数据时的“次坐标轴”
  • 选择数据——右键——更改图标类型,灵活在一张表上结合起来柱状图和折线图


技巧篇

  • 数据——分列,将列内的数据拆分成多列,比如“XXX省XXX市”,拆成省、市两列,“XX小时XX分钟”拆成时、分两列,可以按照宽度、文本、标点等作为界定进行拆分,非常多的场景会使用到,请优先学会...
  • 如果你不是靠excel吃饭,请不用那么geek,而是学会excel的逻辑——配合简单的公式、排序、替换、if等全局操作能得出的结果,不一定非要用一个长公式然后下拉,举例:

如何将无规律的一列上下翻转?
——创建一列,标上1、2、3……,下拉,以该列为主排序,改升序为降序,扩展目标列,得到结果,之后可以删掉创建的辅助排序列

如何将目标区域的每一行数据下面插入一条空行?

——创建一列,标上1、2、3……,下拉,下面空白行标上1.5、2.5、3.5……下拉,同理排序~Tada~

  • 条件格式——突出显示单元格规则,里面的“重复值”,在实时录入和检查标记时很实用
  • 在条件允许的情况下,升级到office 2013吧,excel 2013比2010好到爆啊!比如新增的sumifs、averageifs等多条件if,比如选择一个区域,右下角小标“快速分析”自动生成数据条、色阶、柱形图、汇总图、透视表、折线图等等啊,秒中出啊有木有!



插件篇

  • Power Map :在线地图+在线演示+制作视频,随便来个中国壕热力图:

当然,也有柱状图:


  • Power View:带可视化交互效果的图表,很适合演示

默认配色就很不错,而且演示的时候点击时会直接按你点击的类型帮你显示对应的数据(例如上面的堆积柱状图)

  • Power Query:这个用法很多,我主要用于以下两点:

1. 在线Web抓取:不需要学会某个编程语言也能爬虫+分析一些简单数据,随便举个例子输入新浪股票的网址,它自动帮忙抓取到N个表,我随便打开一个:


2. 连接数据库:不需要学会SQL语法也能查询+分析数据库内的数据,这个就不方便截图了...
打比方说,常见的 select * from ... where xxx = xxx and xxx>xxx group by xxx这种sql语法查询的内容,可以在Power Query中直接通过点击、筛选等操作就列出来

  • 各种excel工具箱,这个不多介绍了,不常用,也就不打广告了,但是挺适合部分长期使用excel的职场人士使用
  • SmartArt也是一大神器,我终于不用在Ai或者PPT上作图再粘过来了...
  • 不会写宏没关系,要懂得怎么使用别人的宏(自行百度“excel宏大全”),怎么保存xlsm,怎么录制宏。当你把机械化的一套操作通过录制宏实现,并用xlsm配合auto_open自动操作,眼看表格自动化操作,在两秒内给你返回原来每天固定要做十几分钟的数据分析结果时,那个鸡皮疙瘩...



数据可视化篇

常见的数据可视化工具不再赘述,在知乎里面一搜一大把,我的经验不算多,但是单独加这个分类是想强调数据可视化的重要性,以及我对数据可视化的理解,希望大家结合下面的内容再去看其它答案的数据可视化工具:

1. 要『正确』地理解数据可视化,一切不以帮助理解数据为目的的可视化都是耍流氓,例如

  • 倒腾半天用各种花哨工具做出来的酷炫效果(也包括一些可视化工具的网站),砸UI饭碗
  • 本来需要输出的是给其它部门的数据报表,自以为是地加上可视化,请做好本职工作
  • 桑基图、箱线图、雷达图用的很溜,但实际Boss只想用看(或者只会看...)熟悉的柱状图、折线图、饼图


2. 我认为的『正确』的数据可视化是:

  • 易理解的。选择正确的表达形式,适合用柱状图就别用散点图,也别用那些受众人群不好理解的特殊用图
  • 可维护的。改了一点数据或者下次有类似报表再做不要花重复的时间再来一次
  • 有标准的。在同一工作范畴内选择尽量标准一致性的数据可视化效果,坐标、图例、筛选尽量统一,所以也不推荐一个报告用到多种可视化工具


3. 一些个人技巧

  • 个人分析使用excel自带透视图,后台用的inspinia模板 + echarts(echarts-x也很好用但很多人不知道),写报告用图说,商业数据分析用Tableau,另外觉得GA和umeng的可视化做的不错可以学习借鉴
  • 有时候看到数据维度多的时候,觉得用什么图都不合适,我会先看echart图例再往回看适用具体哪种
  • 思维不要固化在柱状图、折线图、饼图,多看多学才能横向拓宽自己的知识面
  • 大部分后台需求是可以用图来表达的,密密麻麻的数据表格会让人无法第一时间抓到重点,不要吝啬开发的时间
  • 补充上条,为了数据表格能随时导出,在可视化表达之后,也考虑是否要把表格补充进来,这点我觉得umeng做的真的很好



学习&职业篇

1. 关于Excel的学习与职业化

Excel是一个很庞大很完整的“系统”,各行各业用处定然不尽相同,我也只是抛砖引玉,说说自己在个人工作上的经验,而Excel是一个非常适合零散学习的零门槛工具,自我提高是一个可以循序渐进的过程,在职业上,除了极个别行业,Excel的定位永远是工具,而不是职业,所以没必要也不推荐在非相关行业做极其全面的学习。个人推荐日常的学习方法是——基础操作找百度,公式函数找F1帮助,偏难的具体需求找excelhome,重点永远是笔记。

2. 关于Python

就像上面说的,Excel是一个零门槛工具,它的定位是处理数据,而其实在学习及工作中,最难的一步其实是获取数据和清洗数据,虽然前文提到的Power Query和部分公式能分别做到简单的获取和清晰,但更多场景下还是不适用的,这里我还是推荐Python作为一个可职业化或深入化学习的方向。拿我个人经验举例:

  • 工作上曾经用Python爬取各安卓应用市场的部分细分榜单、部分厂商的页面信息,更不用说简单分析处理下日志之类的
  • 生活上用Phthon爬过值得买和大众点评用来做特价提醒和自助餐对比,朋友有爬过链家找高性价比的租房信息

而这些,仅仅是多年前在Coursera上的Python入门课上学的微薄成果就能做到的,更不提Python除了爬虫之外,更多还可用于批处理、Excel处理、可视化甚至APP开发等各个方向可以进一步职业化。


✎✎✎✎✎✎✎✎✎ 出题的分割线必须华丽✎✎✎✎✎✎✎✎✎
出个题——

【A列】
a
a
b
b
b
c
c
d
d
d
e
……
……

每行仅一个数据,无法准确知道有多少个a,多少个b,多少个c……
请【仅用一个公式】统计出——【A列中不同单元格的个数】,比如a、b、c、d,算4个
请注意,只允许公式,其他操作均不允许,因为这个题不是为了结果,而是考excel逻辑的...

♋♋♋♋♋♋♋

日志

2014/01/19 V1.0 初稿

2014/01/30 V1.1 补充部分图片,新增技巧篇

2014/02/06 V1.2 梳理答案结构,补充部分非硬货

2014/12/09 V1.3 增加插件篇,公式篇新增部分

2017/03/22 V1.4 增加数据可视化篇

2020/08/18 V1.5 增加学习&职业篇

♋♋♋♋♋♋♋

在咨询公司、VC/PE/Hedge Fund等基金混迹多年,一直靠着Excel的各种技巧安身立命和升职加薪。可能是因为程序员出身的原因,在学会以上各个答案提到的装逼炫酷图表、快捷键和一些略复杂的函数(VLookup等)之外,总是希望从更深的层次去探索Excel及各类Office软件,直到遇到了数组函数和VBA编程。这些技能一旦掌握能将工作效率提高数倍甚至是十倍以上,然而周围却很少有人掌握。如果对这些技能感兴趣,可以关注这个活动:

粉丝回馈:程序让你更性感 - 数据冰山 - 知乎专栏

数组函数和VBA编程,简直就是为程序员而生的,数组函数充满了数据库的思维,而VBA本身就是彻头彻尾的编程,再加之各种接口,能够将Office各套软件以及OS下的各种功能完美结合在一起。因为Excel+VBA是图灵完备的,最后辅以Excel简单高效的数据呈现界面,所以在我的心目中,Excel+数组函数+VBA,简直就是网页前端+客户端+后台程序+数据库。感觉学会了这些,某种意义上就是成为了Full Stack Developer(全栈工程师),各互联网公司梦寐以求想招到的人。

一、数组函数

数组函数往往会和Index、Indirect及Address等地址相关和数据块相关的函数搭配使用,如果不考虑效率的话,基本可以替代各种SQL语句了。

数组函数之案例1:计算某类产品的总价值

计算AA产品的总价值,替代select sum(产品数量x产品单价) from ... where 产品编号=‘AA’

{=SUM(IF(($B$4:$B$8="AA"),($C$4:$C$8)*($D$4:$D$8),0))}

如果没有数组函数,使用sumif等函数也会很复杂。

数组函数之案例2:挑选不重复的值并计算总和

左边的白色区域是原始数据,右边的彩色区域使用了数组函数的输出区域。数组函数实现了两大功能:

  • 黄色区域:将不重复的name+month筛选出来。
  • 蓝色区域:替代了select sum(tot) from ... group by name, month,将name+month对应的tot进行加总

如果没有数组函数,只能使用Pivot Table等复杂方式,不仅程序开销很大,而且还不够灵活。

数组函数之案例3:

这是一个帮助某国际家用电器厂商预测中国各家电品类市场潜力及规模的项目,从2005-2024年。一般的Excel函数只能解决两维的问题,而这次客户提出了这个变态的n维需求,需要精确到年份、电器品类、渠道类型、用户高中低端以及城市级别共5个维度来查看市场规模及潜力。简单说就是利用下面这个表格随时查看指定维度下的某年份的市场潜力及规模。


通过使用数组函数建模轻松实现如下功能,只要在指定的区域内选择相关值,就能计算值所需的市场规模及潜力,等于使用了SQL语句:select * from table where 条件1=A1 and 条件2=A2 and 条件3=A3……(共5个条件)

复杂的数组函数编码如下

=SUM(((Summary_Market!$S$71:$S$308=$A7)+(Summary_Market!$S$71:$S$308=$V7)+(Summary_Market!$S$71:$S$308=$AA7)+($A7="")>0)*((Summary_Market!$T$71:$T$308=$B7)+(Summary_Market!$T$71:$T$308=$W7)+(Summary_Market!$T$71:$T$308=$AB7)+($B7="")>0)*((Summary_Market!$U$71:$U$308=$C7)+(Summary_Market!$U$71:$U$308=$X7)+(Summary_Market!$U$71:$U$308=$AC7)+($C7="")>0)*((Summary_Market!$V$71:$V$308=$D7)+(Summary_Market!$V$71:$V$308=$Y7)+(Summary_Market!$V$71:$V$308=$AD7)+($D7="")>0)*(Summary_Market!BB$71:BB$308))

整个模型的界面及复杂的数组函数如下图,左边部分的界面其实就是图形化的SQL语句。这个模型被该客户及我们咨询公司使用了不下5年,部分依赖于其超强的灵活性。



二、VBA编程

首先不要被“编程”二字吓跑,因为VBA不会编程也可以进行,通过录制宏的方式就可以搞定。分享一些学习VBA的小技巧(一些学习VBA的小技巧在这个回答里:

Excel VBA 如何快速学习? - 何明科的回答

),录制宏的诀窍见下图。

如果真要升级成为VBA编程达人,还是需要自己学习和自己编写VBA程序。下面列举若干自己亲手编写的若干Excel+VBA项目。

VBA编程之案例1:自动打印

刚进职场的新人,只要爸爸不是李刚,基本都做过影帝影后(影=印,各种复印打印的体力劳动)。特别是咨询投行服务行业,在某次给客户的大汇报或者大忽悠会议之前,花数小时或者整晚来打印数个文件,并不是天方夜谭。而且这件事情是对着同样一堆不断修改的文件,会经常不断重复发生。

我加入BCG的第一个项目,就是帮助某大型企业从上到下设计KPI体系并实施。从上到下涉及到几十个部门,大概有100多张的KPI表格需要完成,这些KPI表格分布在各个Excel文件里。我们4个咨询顾问的任务:

  • 设定好KPI的基本格式,然后每个顾问负责几个部门,在Excel里不断修改KPI表格,打印出来后去各个当事人及其领导那里讨论并修改
  • 每周把所有的Excel文件中的KPI表格归集在一起,按顺序分部门打印出来,并需要多份,找负责该项目的HR头儿汇报进度和情况

这里面有个费时费力的环节,每周需要在多个Excel文件中找出目标Worksheet,然后选定合适的区域作为输出的表格,按照一定的格式和一定的顺序,打印出这100多张表格。之前我们全是凭借人力,每周由一个Analyst把所有最新的Excel文件收集在一起,然后挨个打开文件选中合适的Worksheet,选中区域设置好格式进行打印。每进行一次,几乎耗费一两个小时,还不能保证不出错。

于是写下了我的第一个VBA程序,而且基本上是宏录制之后来改的,没有使用参考书及搜索引擎,全靠F1和自动提示,所以贴出来特别纪念一下。实现的功能就是将上述的人肉实现的功能全部自动化。按下一个妞,就慢慢等着打印机按顺序出结果吧。

后来这个程序的升级版是:调度多台打印机,进一步提高效率,以及将打印机卡纸造成队列错误的概率降到极小的范围内。

VBA编程之案例2:制作复杂的矩阵式分析图表

下图是研究各个车型之间的用户相互转换关系,因为要将一维的转化率向量,变成两维的矩阵,所以使用了如下的复杂公式。

=IF(ISERROR(OFFSET($C$2,MATCH(CONCATENATE(ROW(A4),"-",COLUMN(A4)),$D$3:$D$600,FALSE),0)/OFFSET($C$2,MATCH(CONCATENATE(ROW(A4),"-",ROW(A4)),$D$3:$D$600,FALSE),0)),"",OFFSET($C$2,MATCH(CONCATENATE(ROW(A4),"-",COLUMN(A4)),$D$3:$D$600,FALSE),0)/OFFSET($C$2,MATCH(CONCATENATE(ROW(A4),"-",ROW(A4)),$D$3:$D$600,FALSE),0))

同时为了用颜色的深浅来表示转化率的大小关系而便于比较,使用了VBA对下面的矩阵进行着色。当然有人肯定会说可以使用条件化格式,但是使用VBA保持了最高灵活度和效率。


VBA编程之案例3:管理分布的任务流,并将Excel表格输出到Powerpoint

这是协助某国际大型汽车制造厂完成新品牌及其新款车型上市,面临车型即将断档的窘境,该新车型的上市非常关键,不能错失时间节点。然而,新车型上市涉及到无数分支:制造、产品、市场、渠道、营销、公关、财务等等,同时还要协调欧洲的两个总部以及中国的两个分部。

这次咨询的核心任务就是项目管理,总控整个大项目的进度,并每周向中国区的CEO汇报进度并发掘出易出现问题的关键节点以调配资源。我们4个咨询顾问分配下去各自负责几个部门或者项目分支,和团队一起规划流程、画甘特图、确认里程碑及时间点、安排负责人等等。当每天回到办公室大家将进度汇总在一起的时候发现了挑战及难点,每条任务线并不是独立发展的,而是各条任务线交织在一起并互相影响。

  • 某些核心人员在多个任务线出现。比如:负责预算的财务人员,几乎要出现在各条线中负责相关预算的审批环节
  • 某些任务线的里程碑是其他任务线里程碑的必要条件而相互关联。比如:新车的下线时间影响发布会的时间,相关法规测试的通过又影响车辆的下线时间等等

当任务线增多以及任务线之间的交叉越发频繁的时候,汇总的任务将会几何级数增加,这就是我们在项目过程中遇到的问题。于是我利用Excel+VBA完成了这个工作的自动化。主要实现的功能:

  • 自动将4个顾问手中分散的Excel文件汇集在一起形成一个大的总表,如下图
  • 各顾问手中的表格是按照部门维度来划分的,汇总后需要按照不同的维度来输出不同类型的表格,比如:按任务线输出表格、按责任人输出表格、所有延误任务的表格、所有需要资源重点投入任务的表格等等

在此基础之上,还要将上面提到的各种维度下的所有表格(大概有200多张),按要求格式粘贴到PPT中,每周提交给中国区的总部进行汇报和评估。密密麻麻的表格如下图。于是,我又写了一个程序将Excel中的表格输出到Powerpoint中,将一个秘书每次需要数小时才能完成的工作,简化成了一键发布,并可以在Excel中完成对PPT的更新。

这个项目的程序量不小,近似于写了一个迷你版的Microsoft Project来进行项目管理。

最后,下图中密密麻麻的PPT每周需要更新一次,每次都是快100张的工作量,然而基本上都是靠Excel来自动完成更新的。因为PPT的模版每次变化不大,我将这些模版记录下来,每周更新的时候只要根据Excel中最新的数据更改PPT中的数据即可。


VBA编程之案例4:构建Financial Model并根据结果倒推假设

一般的Financial Model都是根据重重假设计算最终结果。而在为某顶级手机品牌服务的过程中,我们却遭遇了逆向的尴尬。本来是根据地面销售人员的一定服务水平,计算所需要的销售人员数量;结果在项目过程中,总部已经确定好了销售人数的Head Count,转而要求我们根据HC确定服务水平。然而,服务水平不是一个单变量,是由零售店的覆盖率、销售拜访频率、拜访中的服务深度等多重因素来决定的,同时还可以根据一线至无线城市来变化。

于是只好再次寄出Excel+VBA法宝。先根据常规思路建立好Financial Model,得出HC的初步结果。然后写VBA程序,根据不同的情景、不同的优先级以及不同的权重来调节零售店的覆盖率、销售拜访频率、拜访中的服务深度等多因素,同时设定这几大因素的可接受范围,逐步逼近HC的预设值。

如果没有程序,以前基本是靠人工手动调节来凑结果,而且因为各种情景的不同,还需要多次调节。而通过程序,基本是自动完成,还可智能得设置优先级及权重,无需人工参与。

VBA编程之案例5:海量下载Bloomberg数据并完成分析

通过Bloomberg的VBA API,海量下载数百只目标股票的tick data以及order book。

并根据实现构建好的数学模型,在后台完成计算,将上述的实时数据转化成每只股票实时的trading cost,实时展现在交易员最常用的Excel界面中,方便交易员评估当下的交易成本以便于优化交易策略。

三、数组函数+VBA的项目:全栈项目

在项目中(

RIO是如何席卷大江南北的? - 数据冰山 - 知乎专栏

)对Excel的要求很综合。首先通过数组函数,对每年对RIO酒购买时刻的提及率按省进行统计。

其次,利用VBA程序,将上表中H列和I列的数据,按省份涂色到下图中的地图中。

(涂色部分来自于网上的一段程序,制作GIF动画的是自己完成的)

最后,再次利用VBA编程以及调用外部程序(GIFSICLE),将一幅幅图表合成在一起生成GIF动画。

最后的彩蛋,还可以用VBA来画油画,零基础成为用美术作品把妹撩汉的艺术青年(

Excel 有什么奇技淫巧,让你相见恨晚? - 何明科的回答

),下图把女神用Excel画成油画送给她。

————————————————————

更多文章关注我的专栏:

数据冰山 - 知乎专栏