(根据王佩丰Excel学习视频整理)
一、认识数组
1.数组生成原理
例:
只限定销售区域的金额:=SUM(($A$2:$A$22=K8)*$E$2:$E$22)
首先判定第一列($A$2:$A$22)中每一个单元格的值是否等于K8,K9,K10,K11,得到Ture或False,即1或0.再用得到的数组列与金额列($E$2:$E$22)相乘,求和即可。完成公式后,注意使用ctrl+shift,再按enter才能显示结果
同时限定销售区域和部门的金额:
=SUM((($A$2:$A$22=K15)*($B$2:$B$22=L15))*$E$2:$E$22)
首先判定第一列($A$2:$A$22)中每一个单元格的值是否等于K8,K9,K10,K11,得到Ture或False,即1或0,再判定第二列($B$2:$B$22)中每一个单元格的值是否等于L15,L16,L17,L18,将两列结果相乘,为1的即为既满足K列条件又满足L列条件的值,将其与金额列相乘,再求和即可。注意使用ctrl+shift,再按enter才能显示结果
2.SUMPRODUCT函数
如果使用SUMPRODUCT函数对1中结果求和,则直接按enter即可,不需要再按ctrl+shift
二、LOOKUP函数基本应用
1.认识Lookup函数
例:
公司名称可以很容易通过Vlookup函数获得。
那么如果利用Lookup呢?
错误示范:=LOOKUP(G4,A:A,B:B)
错误原因是Lookup实现的是模糊匹配
正确示范:=LOOKUP(0,0/($A$2:$A$92=G4),$B$2:$B$92)
什么时候Lookup会找得准确呢,只有当除了要找的数其余值全为错误时。
判别要找的客户ID列(G4,G5,G6......)与$A$2:$A$92中每个单元格的值是否相等,此时会得到一个只含1个True,其余均为False的数组。
如何能使此数组变为只有一个值是正确值的列呢?用一个数除它即可。这样会得到一个只含1个0,其余均为错误的数组。
此时再让Lookup在此组数据里找0,返回公司所在列数据即可。注意使用ctrl+shift,再按enter才能显示结果
当然,在新版本Excel中使用=VLOOKUP(G4,A:B,2,0)更为方便
2.Lookup函数精确匹配
例:
=LOOKUP(0,0/(($A$2:$A$13=I6)*($B$2:$B$13=J6)),$D$2:$D$13)
当然,在新版本Excel中使用=SUMIFS(D:D,A:A,I6,B:B,J6)更为方便