Excel没有内置统计字数的功能,但可以用一些变通的方法,这里提供几个方法

驾驭信息纵横科技 2024-01-31 21:34:19

是否需要计算Excel工作簿中某个单元格或单元格范围内的单词数?

出于多种原因,你可能需要计算文本数据中的字数。也许你有逗号分隔的列表,需要计算每个列表中的项目数。

不幸的是,Excel没有内置的单词计数方法。但是有一些聪明的方法可以得到你需要的结果。

这篇文章将向你展示如何在Excel中计算文本数据中的单词数。

用LEN和SUBSTITUTE函数统计字数

第一种方法将使用LEN和SUBSTITUTE函数的组合来确定文本字符串中的空格字符数。

每个单词都用空格隔开,所以可用通过空格的数量多少加1就可用得到单词的字数,公式是:

=LEN(B3)-LEN(SUBSTITUTE(B3," ",""))+1

上面的公式将返回单元格B3中的字数。

函数SUBSTITE(B3, " ", "")获取单元格B3中的文本,并将所有空格字符替换为空字符。这将删除文本中的所有空格。

函数LEN将返回文本字符串中的字符总数。然后,你可以使用它来获取原始文本LEN(B3)中的字符数以及删除空格LEN时文本中的字符数量LEN(SUBSTITUTE(B3," ",""))。

当你取它们之间的差值时,你就会得到文本中的空格总数。当你加1时,这就是单词总数。

警告:文本中的每个单词之间可能并不总是只有一个空格。如果是这样的话,那么上面的方法不会得到字数。

你可以首先使用TRIM功能来确保你的文本没有多余的空格。它还将删除文本中的任何前导空格或尾随空格,这将保证基于空格计数的字数是准确的:

=LEN(TRIM(B3))-LEN(SUBSTITUTE(TRIM(B3)," ",""))+1

上面的公式将首先从文本中删除多余的空格,然后根据单词之间的空格返回单词计数。

使用TEXTSPLIT和COUNTA函数计数单词

计算文本中单词数的另一种公式方法是先将文本拆分为单独的单元格,然后计算由此产生的单元格数。

可以使用名为TEXTSPLIT的动态数组函数来执行此操作。这允许你根据任何分隔字符拆分文本。

你可以使用此功能根据空格字符拆分文本。然后,你可以使用COUNTA函数来计算作为单个单词的拆分值的数量。

这意味着你实际上不需要将文本拆分到工作簿中。它们仅在内存中的公式计算过程中被拆分。

=COUNTA(TEXTSPLIT(B3," ",,TRUE))

上面的公式将返回单元格B3中文本的字数。TEXTSPLIT(B3," ",,TRUE)部分将根据空格字符分割文本。

这里的TRUE参数会跳过分割过程中由于文本可能有多余空格而创建的任何空白值。这将帮助你根据空格获得准确的字数。

现在,你可以使用COUNTA函数对拆分结果进行计数。

用Power Query计数单词

Power Query是获取字数的另一种可能方式。

如果你已经从外部源导入数据或执行其他数据转换,那么这可能是理想的选择。

1、选择你的数据表。

2、转到“数据”选项卡。

3、选择“从表/范围”选项。

这将打开功率查询编辑器,你可以在此处添加字数。

4、转到编辑器中的“添加列”选项卡。

5、选择“自定义列”选项。

这将打开“自定义列”公式编辑器。

6、为新列命名。

List.Count(Text.PositionOf([Text]," ",Occurrence.All))+1

7、在自定义列公式输入区域中输入上述公式,其中[Text]是要计算单词的文本列。

8、按下“确定”按钮。

这将创建一个包含单词计数结果的新列。

Text.PositionOf函数将创建文本中每个空格字符的位置列表。List.Count函数然后对这个列表进行计数,得到空格的总数,然后将其加1,得到单词计数。

现在你可以将其加载回Excel。转到编辑器的“开始”选项卡,然后单击“关闭并加载”命令。然后从“导入数据”菜单中选择“表格”选项,然后按“确定”按钮。

这会将数据和新词计数列加载到所选位置的新表中。

使用VBA计数单词

没有为计数单词而构建的Excel函数,但你可以使用VBA为此目的构建自己的自定义函数。

然后,你将能够通过对自定义函数的简单引用来获得字数。

转到“开发工具”选项卡,然后单击功能区“代码”部分中的Visual Basic选项。或者,也可以按键盘上的Alt+F11打开visual basic编辑器。

Function WORDCOUNT(rng As Range)

Dim arrText() As String

Dim tempCount As Long

tempCount = 0

For Each c In rng

arrText = Split(c.Value, " ")

tempCount = tempCount + (UBound(arrText) + 1)

Next c

WORDCOUNT = tempCount

End Function

转到visual basic编辑器的“插入”选项卡,然后选择“模块”选项以添加新模块。然后将上述代码放入模块中。

该代码创建了一个名为WORDCOUNT的函数,该函数可以像Excel工作簿中的任何其他函数一样使用。

WORDCOUNT函数获取一个范围引用,然后将该范围中所有单元格的字数相加。

它通过循环遍历每个单元格并根据空格字符将文本拆分为一个数组来实现这一点。数组中的项数加1就是该单元格的字数。

此代码为每个单元格添加此项,以在循环通过范围时创建单词计数的运行总数。

现在可以在工作表中使用上面的公式来计算B3:B7范围内的单词数量。

=WORDCOUNT(B3:B7)

使用Office脚本计数单词

你也可以使用Office脚本来获取字数。

你可以选择一个范围,然后运行脚本,该脚本将返回基于整个范围的计数。

转到“自动”选项卡,然后选择“新建脚本”选项。

function main(workbook: ExcelScript.Workbook) {

//getselected range

let rng = workbook.getSelectedRange();

let rows = rng.getRowCount();

let cols = rng.getColumnCount();

var wordCount = 0;

//loop through selected cells

for (let i = 0; i < rows; i++) {

for (let j = 0; j < cols; j++) {

//count words and add to running total

let currCell = rng.getCell(i, j).getValue().toString().trim();

wordCount = wordCount + currCell.split(" ").length;

};

};

console.log(wordCount)

};

这将打开代码编辑器,你可以粘贴上面的代码并按“保存脚本”按钮。

代码将循环遍历所选区域中的每个单元格,并根据空格字符拆分文本。然后,它计算拆分项目的数量,并将其添加到运行总数中。

按下运行按钮,代码将计数所选范围内的单词,并将结果写入代码编辑器日志。

使用Microsoft Word计数单词

此方法允许你计算任何选定范围内的单词数,但也需要使用Microsoft Word。

你可以从Excel中复制值的范围,然后将它们粘贴到Word中的新文档中。然后,你将能够使用word中的字数统计功能。

这可能不是最优雅的解决方案,但对于那些一次性的用例,它会很快完成任务。

1、从Excel复制区域。

2、在Microsoft Word中打开一个新文档,然后粘贴区域。

3、转到Word中的“审阅”选项卡。

4、单击“校对”部分中的“字数统计”命令。

5、这将向你显示一个弹出窗口,其中包含各种统计信息,包括文档中的字数。

结论

Excel没有字数统计功能,但使用其他一些方法仍然可以获得相同的结果。

组合LEN和SUBSTITUTE函数或COUNTA和TEXTSPLIT函数的公式将获得所需的计数。

或者,你可以使用VBA构建自己的自定义函数,该函数可以在工作簿中的任何位置使用。这将有助于简化输入。

其他高级选项,如使用Power Query或Office Scripts计数也是可能的。

你甚至可以使用另一个应用程序通过复制和粘贴一次性字数来完成这项工作。

0 阅读:2

驾驭信息纵横科技

简介:Learn to live, and then live to learn.