Table of contents
本教程介绍了如何在Excel中通过使用LEN函数与其他Excel函数相结合来计算单词,并提供了区分大小写和不区分大小写的公式来计算单元格或区域中的总单词/文本。
Microsoft Excel有几个有用的函数,几乎可以计算所有的东西:COUNT函数可以计算带有数字的单元格,COUNTA可以计算非空白单元格,COUNTIF和COUNTIFS可以有条件地计算单元格,LEN可以计算文本字符串的长度。
不幸的是,Excel没有提供任何内置的工具来计算字数。 幸运的是,通过组合几个函数,你可以做出更复杂的公式来完成几乎任何任务。 而我们将使用这种方法来计算Excel中的字数。
如何计算一个单元格中的总字数
要计算单元格中的字数,可使用以下LEN、SUBSTITUTE和TRIM函数的组合。
LEN(TRIM( 电池 ))-len(substitutional( 电池 ," ",""))+1在哪里? 电池 是你要计算字数的单元格的地址。
例如,要计算A2单元格中的字数,使用这个公式。
=len(trim(a2))-len(replacement(a2," ","))+1
然后,你可以向下复制该公式来计算A列其他单元格中的单词。
这个计字公式如何运作
首先,你使用SUBSTITUTE函数删除单元格中的所有空格,用一个空的文本字符串("")代替,以便LEN函数返回没有空格的字符串的长度。
len(substitute(a2," ","))
之后,你从字符串的总长度中减去不含空格的字符串长度,并在最后的字数上加1,因为一个单元格中的字数等于空格数加1。
此外,你还可以使用TRIM函数来消除单元格中的额外空格(如果有的话)。 有时,工作表可能包含很多不可见的空格,例如单词之间有两个或更多的空格,或者在文本的开头或结尾不小心输入了空格字符(即前导和尾随空格)。 所有这些额外的空格会使你的字数计算出现偏差。 为了防止这种情况,在在计算字符串的总长度时,我们使用TRIM函数来删除所有多余的空格,除了单词之间的单个空格。
改进了正确处理空单元格的公式
如果不是有一个缺点,上面这个计算单词的公式可以说是完美的--它对空单元格返回1。 为了解决这个问题,你可以添加一个IF语句来检查空单元格。
=if(a2="", 0, len(trim(a2))-len(substitute(a2," ","))+1)
正如你在上面的截图中所看到的,该公式对空白单元格返回零,而对非空单元格返回正确的字数。
如何计算单元格中的特定字数
要计算某个单词、文本或子串在单元格中出现的次数,请使用以下公式。
=(LEN( 电池 )-len(substitutional( 电池 , 词 ,"")))/LEN( 词 )
例如,让我们计算一下""的数量。 月球 "出现在A2单元格中。
=(LEN(A2)-LEN(SUBSTITUTE(A2, "月亮",")))/LEN("月亮")
与其在公式中直接输入要计算的单词,不如在某个单元格中输入,并在公式中引用该单元格。 因此,你将得到一个更通用的公式来计算Excel中的单词。
提示:如果你打算将你的公式复制到多个单元格,请确保用$符号固定对包含要计算的单词的单元格的引用。 例如。
=(len(a2)-len(substitute(a2, $b$1,"")))/len($b$1)
这个公式是如何计算一个单元格中特定文本的出现次数的
- SUBSTITUTE函数从原始文本中删除指定的单词。
在这个例子中,我们从位于A2的原始文本中移除B1单元格中的输入词。
substitute(a2, $b$1,"" )
在这个例子中。 len(substitute(a2, $b$1,""))
返回A2单元格中删除所有出现的""字样中包含的所有字符后的文本长度。 月球 ".
(len(a2)-len(replacement(a2, $b$1,"")))
这个操作的结果是目标词的所有出现中所包含的字符数,在这个例子中是12(3个""的出现)。 月球 ",各4个字符)。
除了计算单元格中某些单词的数量,你还可以用这个公式来计算 任何文本的出现 (子串)。 例如,你可以计算文本" 挑选 "出现在A2单元格。
计算单元格中特定字数的大小写敏感公式
你可能知道,Excel的SUBSTITUTE是一个区分大小写的函数,因此基于SUBSTITUTE的单词计数公式默认是区分大小写的。
不区分大小写的公式来计算一个单元格中的特定单词
如果你需要计算一个给定单词的大写和小写出现次数,请使用SUBSTITUTE中的UPPER或LOWER函数,将原始文本和你要计算的文本转换为相同的大小写。
=(LEN( 电池 )-len(替代(upper( 电池 ),UPPER( 文本 ),"")))/LEN( 文本 )或
例如,要计算B1单元格中的单词在A2单元格中出现的次数,可以使用这个公式,忽略不计。
=(len(a2)-len(substitute(lower(a2),lower($b$1),"" )))/len($b$1)
如下面的截图所示,无论该词是以大写字母(B1单元格)、小写字母(D1单元格)还是句子大小写(C1单元格)输入的,该公式都会返回相同的词数。
计算一个范围内的总字数
要想知道某个单元格包含多少字,可以采用计算单元格中总字数的公式,将其嵌入SUMPRODUCT或SUM函数中。
=sumproduct(len(trim( 范围 ))-len(substitutional( 范围 ," ",""))+1)或
=SUM(LEN(TRIM( 范围 ))-len(substitutional( 范围 ," ",""))+1)SUMPRODUCT是为数不多的可以处理数组的Excel函数之一,你可以通过按回车键以通常的方式完成这个公式。
为了使SUM函数能够计算数组,应该在数组公式中使用,按Ctrl+Shift+Enter键而不是通常的Enter键完成。
例如,要计算A2:A4范围内的所有单词,请使用以下公式之一。
=sumproduct(len(trim(a2:a4))-len(substitute(a2:a4," ","))+1)
=sum(len(trim(a2:a4))-len(replacement(a2:a4," ","))+1)
在一个范围内计算特定的字数
如果你想计算一个特定的单词或文字在一个单元格范围内出现的次数,可以使用类似的方法--用公式计算一个单元格中的特定单词,并将其与SUM或SUMPRODUCT函数结合。
=sumproduct((len( 范围 )-len(substitutional( 范围 , 词 ,"")))/LEN( 词 ))或
=SUM((LEN( 范围 )-len(substitutional( 范围 , 词 ,"")))/LEN( 词 ))请记得按Ctrl+Shift+Enter来正确完成数组SUM公式。
例如,要计算C1单元格中输入的单词在A2:A4范围内的所有出现次数,使用这个公式。
=sumproduct((len(a2:a4)-len(substitution(a2:a4, c1,")))/len(c1))
正如你所记得的,SUBSTITUTE是一个 区分大小写 函数,因此上述公式可以区分大写和小写文本。
为了使该公式 不区分大小写 ,使用UPPER或LOWER功能。
=sumproduct((len(a2:a4)-len(substitution((upper(a2:a4)),upper(c1),"")))/len(c1))
或
=sumproduct((len(a2:a4)-len(substitution((lower(a2:a4)),lower(c1),"")))/len(c1))
这就是在Excel中计算单词的方法。 为了更好地理解并可能逆向研究这些公式,欢迎下载Excel计算单词工作簿样本。
如果本教程中讨论的公式都没有解决你的任务,请查看以下资源清单,它们展示了Excel中计算单元格、文本和单个字符的其他解决方案。