Excel是一款功能强大,操作灵活的工具,除了自己学习探索外,参考别人的经验和方法也是十分有效的提高途径。一起来看达人是如何用Excel施展魔法的吧~! 以下内容转自何明科在问题“Excel 有哪些可能需要熟练掌握而很多人不会的技能?”下的回答。 在咨询公司、VC/PE/Hedge Fund等基金混迹多年,一直靠着Excel的各种技巧安身立命和升职加薪。可能是因为程序员出身的原因,在学会以上各个答案提到的装逼炫酷图表、快捷键和一些略复杂的函数(VLookup等)之外,总是希望从更深的层次去探索Excel及各类Office软件,直到遇到了数组函数和VBA编程。这些技能一旦掌握能将工作效率提高数倍甚至是十倍以上,然而周围却很少有人掌握。
数组函数和VBA编程,简直就是为程序员而生的: 数组函数充满了数据库的思维,而VBA本身就是彻头彻尾的编程,再加之各种接口,atv直播,能够将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)) (责任编辑:本港台直播) |