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

Excel对大小写不怎么敏感,当然对于我们总是使用汉字来查询,也经常会忽略这个问题,毕竟大小写数要是针对英文字母,在实际工作中,可能会因为这种英文大小写不作区分的问题,导致数据计算错误。例如:物料编码,物料编码中通常是英文字母与数字的组合,如果出现A1与a1,在大部分的Excel函数中,都会被认为是A1=a1。

如果,刚好A1与a1分别代表两种物料,那么你在统计的时候就会当成是一种物料来统计,会出现很尴尬的情况。

今天的这篇文章就是来介绍4个能够区分大小写的Excel函数:

  • CODE:返回文本字符串中第一个字符的数字代码
  • EXACT:比较两个文本字符串,如果它们完全相同,则返回 TRUE,否则返回 FALSE
  • FIND:在第二个文本串中定位第一个文本串,并返回第一个文本串的起始位置的值
  • SUBSTITUTE:在文本字符串中用 new_text 替换 old_text

简单来说这四个函数可以区分大小写:

CODE('A')=CODE('a')=FALSE

EXACT('A1','a1')=FALSE

FIND('A1','a1')=#VALUE!

SUBSTITUTE('A1','a1','')='A1'

我们知道了这四个函数能够区分大小写,还要知道该如何应用到实际的工作中,总的来说有三个方面的应用:

字符匹配

字符替换、字符查找、字符统计、字符串拆分等等,字符替换使用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函数进行相关的统计。


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

(0)

相关推荐

  • 问与答130:如何比较两列文本是否完全相同?

    excelperfect Q:最近,我的一项任务是需要比较包含多行数据的两列中,每行对应列的文本是否完全相同.例如,列A中有一系列文本,列B中也有一系列文本,比较A1中的文本是B1中的文本是否完全相同 ...

  • Excel常用函数之REPLACE

    OK,还记得昨天的SUBSTITUTE替换函数嘛?它是查找和替换指定的特定某些字符. 详情请戳:[SUBSTITUTE函数] 今儿个我们学习它的兄弟函数REPLACE函数,也是一种查找与替换函数,它和 ...

  • 替换字符函数的使用方法

    替换字符函数的使用方法 替换函数有2个,第一个是SUBSTITUTE,第二个是REPLACE 一,SUBSTITUTE 语法:=SUBSTITUTE(text,old_text,new_text,[i ...

  • 统计重复次数,这样做超简单,隔壁同事都看呆!

    作者:小花 编辑:妮妮 相比于数值运算,Excel 对字符的处理,通常都要复杂的多. 因此需要我们花更多的精力和脑力来学习. 今天,小花给大家详细拆解,如何处理字符串计数问题. 小眼睛要看着老师哦! ...

  • 票选华山论剑

    点击上方 蓝色 文字  关注我们吧! 送人玫瑰,手有余香,请将文章分享给更多朋友 动手操作是熟练掌握EXCEL的最快捷途径! 在上一篇中向朋友们介绍了一次统计多个关键字的技巧,尤其是在财务应用上非常方 ...

  • Excel公式技巧96:区分大小写查找

    有时候,我们需要执行区分大小写的查找.如下图1所示,由字母a.t.l.a和s的不同大小写组成的字符串,现在要查找字符串"AtLaS"对应的数量. 图1 可以使用下面的数组公式: = ...

  • 查找替换函数,substitute和replace你知道它们的区别吗?

    -01- substitute 1)函数说明 这个函数是查找替换中替换的函数版,意思是根据指定的文本,将字符串中的部分字符串以新字符串替换.函数结构如下: text:第一参数,必须有.包含有要替换字符 ...

  • Excel函数code和char

    原创作者 | 李锐 微信公众号 | Excel函数与公式(ID:ExcelLiRui) 微信个人号 | (ID:ExcelLiRui520) 关键字:code,char Excel函数code和cha ...

  • Excel办公应用:Small函数统计第几最小值

    Excel职场实战:Small函数统计第几最小值

  • Excel中“or”和“and”函数的公式如何书写

    在Excel中如何书写"or"和"and"函数的公式,下面来看看小编的实例讲解吧! 1.下面打开Excel表格,要将两次考核的成绩进行评比,第二次考核大于80或 ...

  • Excel表格中求差函数公式怎么样使用

    在excel在使用中有时需要求两个数据的差,该怎么做呢?下面给大家分享Excel表格中求差函数公式的使用. 材料/工具 电脑,excel 方法 1 首先在电脑上找到Excel工作表. 2 双击点开ex ...

  • 学 习 Excel 中 的 文 本 函数!(上 篇)

    Excel函数分类有很多,比如财务.查找与引用.逻辑.文本等等!文本算是常用且必须掌握的一组!今天我们就来通过几个小案例,带大家愉快的学习文本函数,内容过多,分两次来讲,本次上篇! 大家都很忙,所以, ...

  • Excel多表计算,函数太复杂,数据透视不会用,用合并计算5秒搞定

    Excel多表计算,函数太复杂,数据透视不会用,用合并计算5秒搞定

  • DSUM——Excel中最强大的求和函数,没有之一

    在excel中条件求和想必大家都不陌生,这个可以说是我们工作中经常遇到的问题,常见的条件求和函数有sumif以及sumifs,但是还有一个更加强但知道的人却非常少的函数,他就是dsum函数,dsum相 ...

  • 做Excel不用这5个函数?那你可能错过了一个亿……

    本文作者:明镜在心 本文审核:小爽 本文编辑:雅梨子.竺兰 嗨,小伙伴们好呀!我是明镜在心.   今天我们来一起学习下计数家族那些事.   说到计数,大家最先想到的应该是用计算器吧.   但一个时代有 ...

  • Excel中的这个“万能函数”你用过吗?一个顶四个,简单又实用

    Hello,大家好,今天跟大家分享一个Excel中的最强大的求和函数,他就是--SUMPRODUCT函数,很多人都将其称之为"万能函数",条件求和,条件计数等一些常用的功能他就能轻 ...