阅: 4256 | 回: 3

-
积分:0
-
财富值:0.0
-
身份:普通用户
在Excel中, 有一个身份独特的小星星(*),千万不要小看他,就是这个小小的精灵,总让新手们觉得难以捉摸。
说它身份独特,是因为星号(*)除了表示运算符乘号,还具有通配符的身份,用来表示任意多个字符。
与之对应的还有半角的问号“?”,问号也是通配符的一种,表示的是单个字符。
既然身份特殊,就要有特殊的处理规则。如下图所示,需要将单元格中的星号(*)批量替换为“待评估”。



在某些公式中,星号(*)则表示通配符。如公式:
=SUMIF(A:A,”HK*”,B:B)
就是表示如果A列中以字符“HK”开头,则计算所对应的B列之和。
常用的支持通配符的函数包括:SUMIF、SUMIFS、COUNTIF、COUNTIFS、AVERAGEIF、AVERAGEIFS等等。
除了使用星号(*)作为通配符按模糊条件进行汇总之外,星号(*)还有另一个特殊的用途:如下图所示,需要标注身份证号码是否重复。
如果直接使用下面的公式判断,将无法得到正确结果。
=IF(COUNTIF(B:B,B2)>1,"重复","")

这是因为COUNTIF函数在处理文本型数字时,会自动按数值进行处理,而Excel的最大精度只有15位,超过15位部分全部按0进行处理,所以对于18位的身份证号码出现了错误判断。
可以在公式中加上一个星号(*),以实现正确判断。
=IF(COUNTIF(B:B,B2&"*")>1,"重复","")

如果需要精确查找含有星号(*)的内容,也需要进行特殊的处理。如下图所示,需要根据D2单元格中的指定产品型号查询对应的供货商,E2单元格公式为:
=INDEX(B:B,MATCH(D2,A:A,))

由于D2单元格中包含星号(*),MATCH函数查找时就会默认将星号按通配符处理,在B列中返回前两个字符是“6S”、最后一个字符是“A”的位置。如果有多个符合条件的结果,MATCH函数只能返回第一个的位置,所以女神如花傻傻分不清了。
使用以下公式可以返回正确的结果:
=LOOKUP(1,0/(A2:A8=D2),B2:B8)

我的个性签名