如何统计excel中的字数?
我一直希望 Excel 有一个选项,那就是计算单元格中的单词数。如果您使用的是 MS Word,状态栏中有一个内置选项,可以显示工作表中有多少个单词。
但是对于Excel来说,却没有这样的选项来统计字数。您可以计算包含文本但不包含实际单词的单元格数量。
如您所知,在 Excel 中我们有函数,您可以使用它们来计算几乎任何内容。您可以创建一个公式来计算单元格中的单词数。
今天,在本文中,您将学习如何计算 Excel 中单个单元格、一系列单元格甚至整个工作表中的单词数。我还将向您展示如何计算一系列单元格中的特定单词。
1.计算单个单元格中的单词数
要计算单元格中的单词数,必须将 LEN 函数与SUBSTITUTE 函数结合起来。公式为(文本位于单元格 A1 中):
=LEN(A1)-LEN(SUBSTITUTE(A1," ",""))+1
当您使用此公式引用单元格时,结果将返回 7。是的,单元格中总共有 7 个单词。
怎么运行的
在我们讨论这个公式之前,先这样想一下。在一个正常的句子中,如果有八个单词,那么这些单词中肯定会有 7 个空格。正确的?
这意味着您将始终比空格多一个单词。这个想法很简单:如果你想计算单词数,计算空格并加一。要理解这个公式,您需要将其分为三个部分。
在第一部分中,您使用 LEN 函数来计算单元格 A1 中的字符数。在第二部分和第三部分中,您将 SUBSTITUTE 与 LEN 结合起来,删除单元格中的空格,然后计算字符数。此时你有一个像这样的方程。
带空格的字符总数和不带空格的字符总数。当你将这两个数字相减时,就得到了空格的数量,最后你需要加一。它在结果中返回 7,这是单元格中的单词总数。
重要提示:当您使用上述公式时,即使单元格为空,它也会返回 1,因此最好用 IF 函数包装它以避免此问题。
=IF(ISBLANK(A2),0,LEN(A2)-LEN(SUBSTITUTE(A2," ",""))+1)
此公式将首先检查单元格,并且仅在单元格中有值时才返回字数计数。
2.使用UDF
除了上面的公式之外,我还编写了一些代码来为此创建 UDF 。此代码将帮助您创建一个仅返回字数的自定义函数。简而言之,您不需要组合功能。
Function MyWordCount(rng As Range) As Integer MyWordCount = UBound(Split(rng.Value, " "), 1) + 1 End Function
让我告诉你如何使用它。
- 首先,将此代码输入到 VBA 编辑器中。
- 然后返回电子表格并输入“=MyWordCount(”并引用您有值的单元格。
它会返回字数。
相关: Excel 中的公式栏
3.计算单元格范围内的单词数
现在让我们进入下一个级别。在这里,您必须计算一系列单元格而不是单个单元格中的单词数。好消息是您只需要使用上面使用的相同公式(只需进行简单的更改)即可。公式为:
=SUMPRODUCT(LEN(A1:A11)-LEN(SUBSTITUTE(A1:A11," ",""))+1)
在上面的公式中,A1:A11 是单元格区域,当您输入公式时,结果会返回 77。
怎么运行的
该公式的工作原理与第一种方法相同,但仅向前迈出了一小步。唯一的区别是您将其包装在 SUMPRODUCT 中并引用整个范围而不是仅一个单元格。
您知道 SUMPRODUCT 可以接受表吗?因此,当您使用它时,它会返回一个数组,其中每个单元格都有一个字数。最后,它将这些数字相加并告诉您该列中的单词数。
4. 整个工作表的字数统计
该代码是我在工作中使用的有用的宏代码之一,它可以帮助您计算工作表中的所有单词。
Sub Word_Count_Worksheet() Dim WordCnt As Long Dim rng As Range Dim S As String Dim N As Long For Each rng In ActiveSheet.UsedRange.Cells S = Application.WorksheetFunction.Trim(rng.Text) N = 0 If S <> vbNullString Then N = Len(S) – Len(Replace(S, " ", "")) + 1 End If WordCnt = WordCnt + N Next rng MsgBox "There are total " & Format(WordCnt, "#,##0") & " words in the active worksheet" End Sub
当您运行它时, 它将显示一个消息框,其中包含活动工作表中的单词数。
相关: Excel 中的 VBA 是什么
5. 计算某个范围内的特定单词/文本字符串
在这里你有不同的情况。假设您需要计算一系列单元格中的特定单词或检查某个值在列中出现的次数。
让我们举个例子:下面有一个由四个单元格组成的区域,您需要从这个区域中计算单词“Monday”出现的次数。
为此,公式为:
=SUMPRODUCT((LEN(D6:D9)-LEN(SUBSTITUTE(D6:D9,"Monday","")))/LEN("Monday"))
当你输入它时,它会返回到“星期一”这个词的倒计时。是 4。
重要提示:它返回范围中的单词数(单词频率) ,而不是包含该单词的单元格数。星期一在三个牢房里有四次。
怎么运行的
要理解这个函数,您需要将其分为四个部分。在第一部分中,LEN 函数返回单元格中字符数的数组。
第二部分通过删除单词“Monday”返回单元格字符计数数组。
在第三部分中,LEN 函数返回关键字“Monday”的字符长度。
之后,用第二部分减去第一部分,然后除以第三部分,它返回一个数组,其中包含每个单元格的“星期一”单词数。
在第四部分中,SUMPRODUCT 返回该数组的总和并给出该范围内“星期一”的数量。
获取 Excel 文件
结论
每当您在单元格或单元格区域中键入文本时,您都可以使用这些方法来控制字数统计。我希望有一天 Excel 能够获得这个选项来统计字数。但是,现在,您拥有所有这些很棒的方法。
您最喜欢哪种方法?请务必在评论部分与我分享您的想法,我很乐意听取您的意见。请不要忘记与您的朋友分享这篇文章,我相信他们会喜欢的。