我们实际工作中拿到的数据内容可能存在不是很规范的问题,但是里面包含某部分关键字,通过这些关键字,一样能整理出想要的数据结果。
第一种:使用"*"通配符,进行求和计数及匹配;
问题1:对有广东关键字的地址进行求和与计数?
求和公式:SUMIFS(B:B,A:A,"广东"&"*")
计数公式:COUNTIFS(A:A,"广东"&"*")
问题2:对有广州关键字的地址进行求和和计数?
求和公式:SUMIFS(B:B,A:A,"*"&"广州"&"*")
计数公式:COUNTIFS(A:A,"*"&"广州"&"*")
问题3:(一对一匹配)匹配带有南沙关键字的地址的数量?
公式:VLOOKUP("*"&D2&"*",A:B,2,0)
问题4:(一对多匹配)匹配带有南沙关键字的地址的数量和状态?
F2单元格输入公式:INDEX($A:$C,MATCH("*"&$E$2&"*",$A:$A,0),MATCH(F1,$A$1:$C$1,0))
直接向左拉,INDEX+MATCH函数实现一对多匹配结果
解题思路:
通配符是一种特殊语句,主要有星号(*)和问号(?),用来模糊搜索,其中?代表单个字符,*代表任何字符。
与普通方式求和计数查找匹配,有一点不同在于,数据的不规范性,只能模糊含有某些关键字,这时用"*"通配符来处理就很好的解决我们的问题。
第二种:FILTER+ISNUMBER+FIND函数妙用;
问题1:对有广州关键字的地址进行求和和计数?
求和公式:SUM(FILTER(B:B,ISNUMBER(FIND(E2,A:A))))
计数公式:COUNTA(FILTER(B:B,ISNUMBER(FIND(E2,A:A))))
问题3:(一对一匹配)匹配带有南沙关键字的地址的数量?
公式:FILTER(B:B,ISNUMBER(FIND(E2,A:A)))
问题4:(一对多匹配)匹配带有广州关键字的地址的数量和状态?
公式:FILTER(C:C,(ISNUMBER(FIND(E2,A:A))*(ISNUMBER(FIND(F2,B:B)))))
解题思路:
FIND函数用来判断关键字是否存在,例如"南沙",默认从第一个字符开始查找的话,在A4单元格就有满足"南沙"的内容,在A4单元格的第5个字符位置,结果输出5。
ISNUMBER用来判断是否为数值,当我们用ISNUMBER来判断FIND函数的结果5,检验的内容为数字,将返回TRUE,这时FILTER就会查找出对应结果。
相反,如果FIND函数无法查找到关键字在单元格内容中的字符位置,ISNUMBER将返回FALSE,将无法查找出结果。