一.多条件查找
两组公式分别是:
=VLOOKUP(E2&F2,IF({1,0},A2:A10&B2:B10,C2:C10),2,0)
=INDEX(C:C,MATCH(E2&F2,A:A&B:B,0),1)
(注意,两组公式都是数组公式,Enter,shitf,ctrl一起按)
当数量级较大的时候(一千以上),INDEX+MATCH这公式要比VLOOK+IF快得多
二. sumproduct的用法
1、语法结构。
SUMPRODUCT(array1,array2,array3……)。
其主要作用是返回给定数组对应的乘积之和。
SUMPRODUCT中SUM是求和的意思,PRODUCT是相乘的意思,总意思就是相乘之后再求和。
2、基础用法。
目的:计算总销售金额。
方法:
在目标单元格中输入公式:=SUMPRODUCT(C3:C9,D3:D9)。
3、单条件求和
目的:计算“上海区”的销售总额。
方法:
在目标单元格中输入公式:=SUMPRODUCT((F3:F9="上海")*(C3:C9*D3:D9))。
备注:
3.1、对于单条件求和,本来用SUMIF函数就可以搞定。公式:=SUMIF(F3:F9,"上海",E3:E9)。
3.2、或者用多条件求和的SUMIFS也可以搞定:=SUMIFS(E3:E9,F3:F9,"上海")。
4、多条件求和。
目的:求“上海区”“王东”的销售总额。
方法:
在目标单元格中输入公式:=SUMPRODUCT((B3:B9="王东")*(F3:F9="上海")*(C3:C9*D3:D9))。
备注:
1、对于多条件求和,本身是SUMIFS函数的功能。公式:=SUMIFS(E3:E9,B3:B9,"王东",F3:F9,"上海")。
5、不重复计数。
目的:求和销售员的总人数。
方法:
在目标单元格中输入公式:=SUMPRODUCT(1/COUNTIF(B3:B9,B3:B9))。
6、“小组内”排名。
目的:求每个区域内销售额的排名。
方法:
在目标单元格中输入公式:=SUMPRODUCT(($F$3:$F$9=F3)*($ E$3:$E$9>E3))+1。
7.横竖多条件求和
=SUMPRODUCT(('8月地面'!$H$2:$U$2=Sheet1!$N$3)*('8月地面'!$H$5:$U$5=Sheet1!$B3)*('8月地面'!$G$6:$G$160=Sheet1!D$2),'8月地面'!$H$6:$U$160)
三. index+sumproduct+row 模糊匹配长字符串
根据短字符串来匹配出包含它的长字符串的所属网址
=INDEX(B:B,SUMPRODUCT(COUNTIF(D2,"*"&$A$1:$A$8&"*")*(ROW($1:$8))))
利用INDIRECT求出最后的非空单元格(A列中间不能有空格),全动态写法:
=INDEX(A:A,SUMPRODUCT(COUNTIF(D4,"*"&INDIRECT("$A$1:$A$"&COUNTIF(A:A,"<>"&""))&"*")*(ROW(INDIRECT("$A$1:$A$"&COUNTIF(A:A,"<>"&""))))))
注意:这是数组esc公式,需要三键一起按
(星号匹配,row函数化为数组)
四.区域化为列
=OFFSET($A$1,MOD(ROW(A1)-1,2),INT((ROW(A1)-1)/2))
区域是多少行就除以多少,本例是2行
五.vlookup查找两个表
vlookup要查找的表超过excel最大行数,需要分开两个表,这时可以用以下公式查找
=IFERROR(VLOOKUP(A3,第一个表!A:E,2,0),VLOOKUP(A3,第二个表!A:E,2,0))
当从第一个表找不到就从第二个表查找