如何在Excel中计算字符:单元格或区域中的总字符或特定字符

  • Share This
Michael Brown

本教程介绍了如何在Excel中计算字符,你将学习如何在一个区域中获得总的字符数,以及在一个单元格或几个单元格中只计算特定的字符的公式。

我们之前的教程介绍了Excel的LEN函数,它可以计算一个单元格中的总字符数。

LEN公式本身很有用,但与其他函数如SUM、SUMPRODUCT和SUBSTITUTE联系起来,它可以处理更复杂的任务。 在本教程中,我们将仔细研究Excel中计算字符的几个基本和高级公式。

    如何计算一个范围内的所有字符

    当涉及到计算几个单元格中的总字符数时,立即想到的解决方案是获得每个单元格的字符数,然后将这些数字相加。

    =len(a2)+len(a3)+len(a4)

    =sum(len(a2),len(a3),len(a4))

    上述公式对小范围来说可能很有效,如果要计算更大范围内的总字符数,我们最好想出一些更紧凑的方法,例如SUMPRODUCT函数,它将数组相乘并返回乘积之和。

    下面是计算一个范围内的字符的通用Excel公式。

    =sumproduct(len( 范围 ))

    而你的现实生活中的公式可能看起来与此类似。

    =sumproduct(len(a1:a7))

    另一种计算一个范围内的字符的方法是将LEN函数与SUM结合起来使用。

    =sum(len(a1:a7))

    与SUMPRODUCT不同,SUM函数默认不计算数组,需要按Ctrl + Shift + Enter将其变成数组公式。

    正如下面的截图所示,SUM公式返回相同的总字符数。

    这个范围内的字符计数公式是如何工作的

    这是Excel中计算字符的最直接的公式之一。 LEN函数计算指定范围内每个单元格的字符串长度,并以数字数组的形式返回。 然后,SUMPRODUCT或SUM将这些数字相加,返回总的字符数。

    在上面的例子中,一个由7个数字组成的数组,代表A1至A7单元格中字符串的长度,并对其进行求和。

    注意:请注意,Excel的LEN函数是绝对计数的。 每个单元格中的所有字符 包括字母、数字、标点符号、特殊符号和所有空格(前导、尾随和字与字之间的空格)。

    如何计算单元格中的特定字符

    有时,你可能不需要计算单元格内的所有字符,而只需要计算某个特定字母、数字或特殊符号的出现次数。

    要计算一个给定的字符在一个单元格中出现的次数,可将LEN函数与SUBSTITUTE一起使用。

    =LEN( 电池 )-len(substitutional( 电池 , 特征 ,""))

    为了更好地理解这个公式,请考虑以下例子。

    假设你维护一个已交付项目的数据库,其中每个项目类型都有自己的唯一标识符。 每个单元格包含由逗号、空格或任何其他分隔符分隔的几个项目。 任务是计算一个给定的唯一标识符在每个单元格中出现了多少次。

    假设已交付项目的清单在B列(从B2开始),我们要计算 "A "出现的次数,公式如下。

    =len(b2)-len(substitution(b2, "a",""))

    这个Excel字符计数公式是如何工作的

    为了理解这个公式的逻辑,让我们把它分解成更小的部分。

    • 首先,你计算B2中的字符串总长度。

    LEN(B2)

  • 然后,你使用SUBSTITUTE函数来删除所有出现的字母" A 将B2中的""替换为空字符串("")。
  • 代替(b2, "a","" )

  • 然后,你计算字符串的长度,不需要" A "字样。
  • len(substitute(b2, "a","))

  • 最后,你要减去没有""的字符串的长度。 A "的总长度字符串。
  • 结果,你会得到 "删除 "的字符数,这相当于该字符在单元格中出现的总次数。

    你可以在某个单元格中输入字符,然后在公式中引用该单元格,而不是在公式中指定你要计算的字符。 这样,你的用户就可以计算他们在该单元格中输入的任何其他字符的出现次数,而不会篡改你的公式。

    注意,Excel的SUBSTITUTE是一个区分大小写的函数,因此上述公式也是区分大小写的。 例如,在上面的截图中,B3单元格包含3个 "A "的出现--两个大写,一个小写。 该公式只计算了大写的字符,因为我们向SUBSTITUTE函数提供了 "A"。

    不区分大小写的Excel公式来计算单元格中的特定字符

    如果你需要一个不区分大小写的字符数,在SUBSTITUTE里面嵌入UPPER函数,在运行替换之前将指定的字符转换为大写。 而且,一定要在公式中输入大写的字符。

    例如,要计算B2单元格中的 "A "和 "a "项,使用这个公式。

    =len(b2)-len(substitute(upper(b2), "a","" ))

    另一种方法是使用嵌套的Substitute函数。

    =LEN(B2)-LEN(SUBSTITUTE(SUBSTITUTE (B2, "A","), "A",")

    正如你在下面的截图中看到的,这两个公式都能完美地计算出指定字符的大写和小写出现次数。

    在某些情况下,你可能需要计算表格中许多不同的字符,但你可能不想每次都修改公式。 在这种情况下,在另一个函数中嵌套一个替代函数,在某个单元格(本例中为D1)中输入你想计算的字符,并通过使用UPPER和LOWER函数将该单元格的值转换成大写和小写。

    =len(b2)-len(substitute(b2, upper($d$1), ""), lower($d$1),"))

    或者,将源单元格和包含该字符的单元格都转换为大写或小写。 例如。

    =len(b2)-len(substitute(upper(b2), upper($c$1),"" )

    这种方法的好处是,无论在引用的单元格中输入的是大写还是小写字符,你的 不区分大小写的字符计数公式 将返回正确的计数。

    计算单元格中某些文本或子串的出现次数

    如果你想计算一个人有多少次 特定的字符组合 (即某些文本,或子串)出现在给定的单元格中,例如 "A2 "或 "SS",然后用上述公式返回的字符数除以子串的长度。

    区分大小写 公式。

    =(len(b2)-len(substitute(b2, $c$1,"")))/len($c$1)

    不区分大小写 公式。

    =(len(b2)-len(substitute(lower(b2),lower($c$1),"" )))/len($c$1)

    其中B2是包含整个文本字符串的单元格,C1是你要计算的文本(子串)。

    关于该公式的详细解释,请参见如何计算单元格中的特定文本/单词。

    如何在一个范围内计算特定的字符(s)

    现在你知道了一个计算单元格中字符的Excel公式,你可能想进一步改进它,以找出某个字符在一个区域中出现的次数。 为此,我们将采用前面例子中讨论的计算单元格中特定字符的Excel LEN公式,并把它放在可以处理数组的SUMPRODUCT函数中。

    总产品(len( 范围 )-len(substitutional( 范围 , 特征 ,"")))

    在这个例子中,该公式的形状如下。

    =sumproduct(len(b2:b8)-len(substitute(b2:b8, "a","))

    下面是另一个计算Excel范围内字符的公式。

    =sum(len(b2:b8)-len(substitute(b2:b8, "a",")))

    与第一个公式相比,最明显的区别是使用SUM而不是SUMPRODUCT。 另一个区别是它需要按Ctrl + Shift + Enter,因为SUMPRODUCT是为处理数组而设计的,而SUM只有在用于 阵列公式 .

    如果你不想在公式中硬编码字符,你当然可以在某个单元格中输入它,例如D1,并在字符计数公式中引用该单元格。

    =sumproduct(len(b2:b8)-len(substitute(b2:b8, d1,")))

    注意:当你计算一个特定的 "发生 "的情况时,你必须要有足够的耐心。 子串 在一个范围内(例如以 "KK "或 "AA "开始的订单),你需要将字符数除以子串的长度,否则子串中的每个字符都会被单独计算。 例如::

    =sum((len(b2:b8)-len(substitute(b2:b8, d1, "")) / len(d1))

    这个字符计数公式是如何工作的

    你可能还记得,SUBSTITUTE函数是用来用一个空的文本字符串("")替换所有出现的指定字符(本例中为 "A")。

    然后,我们将SUBSTITUTE返回的文本字符串提供给Excel LEN函数,使其计算出不含A的字符串长度。 然后,我们从文本字符串的总长度中减去该字符数。 这些计算的结果是一个字符数的数组,每个单元格有一个字符数。

    最后,SUMPRODUCT将数组中的数字相加,并返回范围内指定字符的总计数。

    一个不区分大小写的公式来计算一个范围内的特定字符

    你已经知道SUBSTITUTE是一个区分大小写的函数,这使得我们的Excel公式中的字符数也是区分大小写的。

    要使公式忽略大小写,请按照前面例子中演示的方法:不区分大小写的公式来计算单元格中的特定字符。

    特别是,你可以使用以下公式之一来计算一个范围内的特定字符,忽略了案例。

    • 使用UPPER功能,输入一个大写的字符。

      =sumproduct(len(b2:b8)-len(substitution(upper(b2:b8), "a",""))

    • 使用嵌套的SUBSTITUTE函数。

      =SUMPRODUCT(LEN(B2:B8)-LEN(SUBSTITUTE((B2:B8), "A",") , "a","))

    • 使用UPPER和LOWER函数,在某个单元格中输入大写或小写字符,并在公式中引用该单元格。

      =sumproduct(len(b2:b8)-len(substitution((b2:b8), upper($e$1), ""), lower($e$1), ""))

    下面的截图展示了最后一个公式的作用。

    提示:要计算一个人的出现次数 具体文本 (子串)的范围内,使用《如何计算范围内的特定文本/单词》中演示的公式。

    这就是在Excel中使用LEN函数计算字符的方法。 如果你想知道如何计算单词而不是单个字符,你会在我们的下一篇文章中发现一些有用的公式,请继续关注

    同时,你可以下载本教程中讨论的带有字符计数公式的样本工作簿,并查看页面末尾的相关资源列表。 感谢你的阅读,希望很快见到你

    Michael Brown is a dedicated technology enthusiast with a passion for simplifying complex processes using software tools. With more than a decade of experience in the tech industry, he has honed his skills in Microsoft Excel and Outlook, as well as Google Sheets and Docs. Michael's blog is dedicated to sharing his knowledge and expertise with others, providing easy-to-follow tips and tutorials for improving productivity and efficiency. Whether you're a seasoned professional or a beginner, Michael's blog offers valuable insights and practical advice for getting the most out of these essential software tools.