有没有办法在进行特定例外时计算 sheet 上的所有单词?

Is there a way to count all words on a sheet while making specific exceptions?

我目前正在尝试在单个单元格中显示特定 sheet 上所有单词的单词数。

我目前使用的公式如下所示:

=ARRAYFORMULA(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(CONCATENATE(Armies!B3:D&CHAR(32)) , ">>>" , "") , "Description WIP" , "") , "%N/C%" , "") , "\n" , ""))

如您所见,此公式将 sheet "Armies" 中特定范围内的所有单词放入一个单元格中,而 "ignoring" 字符串如 ">> >","Description WIP" 等(然后我只是简单地在一个单独的公式中计算该单元格中的单词)。问题是一个 Google Sheet 单元格只能包含 5000 个字符。有什么方法可以一步完成吗?

尝试:

=ARRAYFORMULA(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(query(Sheet1!A1:A,,2^99) , ">>>" , "") , "Description WIP" , "") , "%N/C%" , "") , "\n" , ""))

关键是把CONCATENATE换成query

诀窍在于查询:

  • 公式接受第三个参数:header
  • 的行数
  • 第三个参数必须是一个大数:2^99 足够大
  • 则header行数>1,查询公式自动加入header
  • 公式第二个参数为查询字符串,可以为空,默认为"select all"→select *

我的示例使用 1 列进行了测试A1:A,更多的列是查询的两倍:

=ARRAYFORMULA(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(query(transpose(query(Sheet1!A1:B,,2^99)),,2^99) , ">>>" , "") , "Description WIP" , "") , "%N/C%" , "") , "\n" , ""))

此示例适用于 2 列 A1:B,因为它使用第二个查询: query(transpose(query(Sheet1!A1:B,,2^99)),,2^99)

内部查询给出多列,外部查询+转置将结果转换为单个单元格。