有没有一种方法可以对工作表中的所有单词进行计数,同时进行特定的例外处理?

时间:2019-07-30 09:27:21

标签: google-sheets google-sheets-api google-sheets-formula

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

我当前使用的公式如下:

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

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

1 个答案:

答案 0 :(得分:0)

尝试:

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

关键是将CONCATENATE替换为query

诀窍是查询:

  • 该公式采用第三个参数:标头的行数
  • 第三个参数必须很大:2 ^ 99足够大
  • 然后标题行的数量> 1,查询公式将自动加入标题
  • 公式的第二个参数是查询字符串,它可以为空,从而提供默认的“全选”→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)

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