
收到粉丝提问:Excel数据中有字符*时,如何处理?Excel数据中有字符*如何匹配处理?
例如一:2200*1030*80和2200*1030*180这2个数据,用COUNTIFS查重时,如果条件为2200*1030*80,会判定2200*1030*180也符合,在需要精准匹配的情况下,这种如何处理?
例如二:2200*1030*80和2200*1030*180这2个数据,用MATCH查询位置时,如果条件为2200*1030*80,会判定2200*1030*180也符合,在需要精准匹配的情况下,这种如何处理?
如下图所示:

在Excel的函数公式中使用字符”*”,它属于通配符的一种,表示任意数量的字符。如,2200*.80, 可以匹配2200.150.80、2200.1.80、2200.10.80等。
第一种情况下,如果条件为2200*1030*80,用COUNTIFS查重时,得到的结果都为2, 2200*1030*180也在符合条件的范围内;
COUNTIFS使用时,由于“2200*1030*80”存在两个“*”,这将匹配任何包含 2200、1030 或 80 的字符串,包括它们的组合。因此,2200*1030*80和2200*1030*180都符合条件。
在需要精准匹配的情况下,此时,我们可以借助波浪号(~),使通配符“*”只表示这个符号本身,作为普通字符使用,而不代表特殊含义。
即我们可以在单元格中输入这个公式:=COUNTIFS(A1:A3,"2200~*1030~*80")
其中"2200~*1030~*80",表示“2200*1030*80”,这里波浪号 ~ 是转义字符,在这个公式中,它用于将字符“*”转化为普通字符,而不是通配符。
因此,起到精准匹配的目的。

第二种情况下,以“2200*1030*80”作为条件,用MATCH查询位置时,得到的结果为2,这个“2”表示的是2200*1030*80在A1:A3范围内的位置是第二个。
但正确的结果应该返回3,这是因为“2200*1030*80”作为条件时,MATCH函数将其中的字符“*”视为通配符,会判定2200*1030*180也符合。
在需要精准匹配的情况下,同样的,我们还是借助波浪号(~),使通配符“*”只表示这个符号本身,作为普通字符使用,而不代表特殊含义。
即我们可以在单元格中输入这个公式:=MATCH("2200~*1030~*80",A1:A3,0)

理解的转化原理后,其实我们可以直接使用SUBSTITUTE函数来快速转化,这样就不需要手动依次去修改公式中的条件了。
SUBSTITUTE 函数用于在字符串中替换特定文本。它可以帮助我们在某一段文本中找到指定的子字符串,并将其替换为新的子字符串。
第一种情况下,可以使用这个公式:=COUNTIFS(A1:A3,SUBSTITUTE(A2,"*","~*"))
第二种情况下,可以使用这个公式:=MATCH(SUBSTITUTE(A2,"*","~*"),A1:A3,0)

鉴于题主的这类数据,想要实现精准匹配,需要先去掉字符“*”作为通配符时的特殊含义,在使用公式去做匹配即可实现想要的效果了。
在使用时,要根据自身的实际情况去做调整哦。若还有疑问,欢迎留言哦~
想了解更多精彩内容,快来关注