excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel数据中有字符*如何匹配处理?

收到粉丝提问: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)

鉴于题主的这类数据,想要实现精准匹配,需要先去掉字符“*”作为通配符时的特殊含义,在使用公式去做匹配即可实现想要的效果了。

在使用时,要根据自身的实际情况去做调整哦。若还有疑问,欢迎留言哦~

想了解更多精彩内容,快来关注

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接