Excel区分大小写的4个函数:Code/Exact/Find(B)/Substitute

您所在的位置:网站首页 excel大小函数 Excel区分大小写的4个函数:Code/Exact/Find(B)/Substitute

Excel区分大小写的4个函数:Code/Exact/Find(B)/Substitute

2024-07-17 19:07| 来源: 网络整理| 查看: 265

字符匹配

字符替换、字符查找、字符统计、字符串拆分等等,字符替换使用SUBSTITUTE非常方便,查找使用FIND,字符统计与字符床拆分就要花些时间来研究一下。

字符串拆分主要是定位,通过对某个字符的位子的确定,拆分字符串,有个经典组合:

TRIM+MID+SUBSTITUTE+REPT+ROW+LEN

这个组合在经典函数组合专栏里有详细的介绍,可以到我的专栏里了解一下。

字符统计需要将字符串拆成单个的字符,通常会用到这样一个公式:

MID(A2,ROW(INDIRECT("$1:"&LEN(A2))),1)

这个公式的含义是将A2单元格内的字符串拆分成单个字符。

接下来的4种统计方法里都要用到这个组合:

我们先来看一个不使用区分大小写函数时的统计结果:

=COUNT(0/(MID(D$12,ROW(INDIRECT("$1:"&LEN(D$12))),1)=F12))

我们直接使用MID拆分组合来写条件,然后用COUNT统计字符个数,结果是大写与小写字母的统计数量是一样的,整明COUNT对大小写不敏感。

1、EXACT+COUNT

这个公式的含义是把D12单元格中的字符串拆分成单个字符,然后使用EXACT函数一个一个的与F12进行比较,统计结果是TRUE的个数。

=COUNT(0/EXACT(MID($D$12,ROW(INDIRECT("$1:"&LEN($D$12))),1),F12))

2、FIND+COUNT

这个公式的含义是把D12单元格中的字符串拆分成单个字符,组成一个数组,然后使用FIND函数与F12进行比对,统计比对的结果。

=COUNT(0/FIND(F12,MID(D$12,ROW(INDIRECT("$1:"&LEN(D$12))),1)))

3、SUBSTITUTE+COUNT

这个思路就有点不同,不使用大小写区分函数的那个组合与这个很相近,区别是这个组合使用SUBSTITUTE函数用空格替换掉了F12的字符,然后把这个新的字符串拆分成单个字符,然后统计这个字符串数组里面的空格的个数。

=COUNT(0/(MID(SUBSTITUTE(D$12,F12," "),ROW(INDIRECT("$1:"&LEN(D$12))),1)=" "))

4、CODE+SUM

CODE函数与上面三个函数不同,CODE只对首字母起作用,就是说CODE函数只能一个字符一个字符的转换编码,不适用于字符串。把D12单元格中的字符串拆分成单个字符后,对每个字符用CODE函数解码,然后于F12的解码值进行对比,统计TRUE的数量。

=SUM((CODE(MID(D$12,ROW(INDIRECT("$1:"&LEN(D$12))),1))=CODE(F12))*1)

字符匹配中都用到了拆分字符组合,基本原理差不多,前三种可以用于字符串匹配,第四种只能单个字符匹配。

查找

工作中我们用到最多的是VLOOKUP函数,用来查找数据非常方便,但是VLOOKUP函数对大小写不敏感:

我们在使用VLOOKUP函数查找得到的结果是不正确的,对A1查找得到的是a1对应的结果,所以必须使用区分大小写函数,才能得到正确的结果。

1、EXACT+LOOKUP

我们用的是经典的二分法公式,EXACT函数直接比较数据表中的ID列于目标表格中对应的ID,作为区分条件,然后用LOOKUP查询对应的数据表中数值列中对应的结果。

=LOOKUP(1,0/(EXACT(数据[ID],[@ID])),数据[数值])

2、FIND+LOOKUP

同样的,使用FIND比对数据,作为LOOKUP查询的条件,查找结果。

=LOOKUP(1,0/FIND([@ID],数据[ID]),数据[数值])

3、SUBSTITUTE+INDEX+MATCH

SUBSTITUTE函数到ID列中替换掉目标ID字符串,然后用MATCH函数对空值进行匹配,然后用INDEX查找对应的数值。

=INDEX(数据[数值],MATCH("",SUBSTITUTE([@ID],数据[ID],),))

4、CODE+TEXTJOIN

CODE函数只能对单个字符起作用,所以不那么灵便,最好的使用方法是做辅助列,相当于把原有的ID列全部解码成数字组成的新ID,然后就可以使用VLOOKUP函数,通过新的ID进行匹配查找,这里也用到了把字符串拆分成单个字符的组合,还用到了TEXTJOIN这个新函数,用“-”将每个字符的数字编码连接起来。

=TEXTJOIN("-",TRUE,CODE(MID(A3,ROW(INDIRECT("1:"&LEN(A3))),1)))

区分大小写查找的四种组合中,CODE函数稍微逊色一些,不能够直接使用公式得到查找结果,需要用在辅助列上,话说回来,辅助列也是解决问题的方法之一,善用辅助列,可以简化公式。

运算

运算与查找的情况很接近,不小心也会出现统计错误:

我们直接使用SUNIFS/COUNTIFS函数进行统计,得到的结果都是两两相同,整明大多数的计算类的函数都对大小写不敏感,包括SUM、COUNT、SUMPRODUCT

1、EXACT+SUM/COUNT/SUMPRODUCT

三种组合都很好理解,就是使用EXACT比对结果作为计算条件

=SUM(数据[数值]*EXACT(数据[ID],F21))

=COUNT(0/EXACT(数据[ID],F21))

=SUMPRODUCT(数据[数值]*EXACT(数据[ID],F21))

2、FIND+SUM/COUNT/SUMPRODUCT

FIND的组合中需要解决不匹配就出现错误值的情况,需要使用IFERROR来过滤掉错误值,这样才能得到想要的结果。

=SUM(数据[数值]*IFERROR(FIND(F29,数据[ID]),0))

=COUNT(0/FIND(F29,数据[ID]))

=SUMPRODUCT(数据[数值]*IFERROR(FIND(F29,数据[ID]),0))

3、SUBSTITUTE+SUM/COUNT/SUNPRODUCT

SUBSTITUTE函数用空值,替换目标ID,让后让替换后的ID列与空值作比较,根据比较结果计算相关的数值。

=SUM(数据[数值]*(SUBSTITUTE(数据[ID],F37,)=""))

=COUNT(0/(""=SUBSTITUTE(F37,数据[ID],)))

=SUMPRODUCT(数据[数值]*(""=SUBSTITUTE(数据[ID],F37,)))

4、CODE

与查找中的用法相同,作为辅助列,可以使用SUMIFS/COUNTIFS函数进行相关的统计。

通过上面的介绍,相信你如果遇到大小写区分问题,肯定也能找到,对应的解决方案。返回搜狐,查看更多



【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3