如何在Google Sheets中按特定例外统计工作表单词总数?
解决Google Sheets跨区域单词统计(避开单元格字符限制)
完全可以一步完成统计,而且能避开单个单元格5000字符的限制——核心思路是不合并所有内容到单个单元格,而是直接逐个处理每个单元格的内容,计算每个单元格的单词数后累加。
这里有两个版本的公式,你可以根据需求选择:
简化版(用LET函数提升可读性)
Google Sheets支持LET函数,可以帮我们简化重复的代码,让公式更清晰:
=LET( cleaned, SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(Armies!B3:D, ">>>", ""), "Description WIP", ""), "%N/C%", ""), CHAR(10), ""), trimmed, TRIM(cleaned), wordCounts, IF(LEN(trimmed)=0, 0, LEN(trimmed) - LEN(SUBSTITUTE(trimmed, " ", "")) + 1), SUM(wordCounts) )
公式各部分解释:
cleaned:对Armies!B3:D区域的每个单元格进行清理,移除你指定的字符串和换行符(用CHAR(10)代替\n更适配Google Sheets)trimmed:去掉每个清理后单元格的首尾空格,避免空内容或多余空格干扰计数wordCounts:计算单个单元格的单词数:如果清理后无内容则计0;否则通过「总长度 - 移除所有空格后的长度 +1」得到单词数(这个逻辑是基于“单词数=空格间隔数+1”)SUM(wordCounts):把所有单元格的单词数累加,得到最终总数
兼容旧版的无LET版本
如果你的Google Sheets版本不支持LET,可以用这个稍长但兼容的公式:
=SUM(ARRAYFORMULA( IF( LEN(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(Armies!B3:D, ">>>", ""), "Description WIP", ""), "%N/C%", ""), CHAR(10), "")))=0, 0, LEN(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(Armies!B3:D, ">>>", ""), "Description WIP", ""), "%N/C%", ""), CHAR(10), ""))) - LEN(SUBSTITUTE(TRIM(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(Armies!B3:D, ">>>", ""), "Description WIP", ""), "%N/C%", ""), CHAR(10), "")), " ", "")) + 1 ) ))
这个方法完全绕开了合并内容的步骤,所以不管你的区域有多少内容,都不会触发单个单元格的字符限制,直接一步得到总单词数。
内容的提问来源于stack exchange,提问作者Danny Fast
相关产品推荐
相关产品推荐

