繁体   English   中英

Countif或counta google Spreadsheets计算单词出现次数

[英]Countif or counta google Spreadsheets to count word appearances

我想计算在谷歌电子表格中显示特定单词的次数(每行)。
我的电子表格看起来像这样(而?是我想要计算结果的区域):
表格1
|评论|提及交货|提及价格|提到服务|
|快速交货,非常好的支持|?|?|?|
|质量价格太高了。 包裹被损坏|?|?|?|
|电子邮件支持快速且有用| 0?|?|?|

表2(表1评论应与之比较的所有单词):
|提到交货|提到价格|提到服务|
|交货|价格|支持|
|航运|昂贵|服务|
|箱| - |电话|

在计算了表2中表达的表中显示的表中有多少单词后,表1应该如下所示:
|评论|提及交货|提及价格|提到服务|
|快速交货,非常好的支持| 1 | 0 | 1 |
|质量价格太高了。 包装破损| 1 | 1 | 0 |
|电子邮件支持快速而有用| 0 | 0 | 1 |

我尝试使用我无法工作的countif函数,现在正在使用counta,它的运行方式与预期相似(不使用表2),但我希望在表2中添加更多单词时自动调整公式:

=COUNTA(Filter(Split(D2," "),"delivery")) + COUNTA(Filter(Split(D2," "),"shipping"))
有什么解决方案吗?

假设F2包含注释,而列A列出与传递相关的单词。 以下公式计算注释中出现的A列中的单词数。 它需要字边界,因此“任性”不会被误认为是“价格”,而是允许一些复数形式,因此“价格”在“盒子”中的“价格”和“盒子”中被识别。

=sum(arrayformula(n(regexmatch(F2, "\b" & filter(A2:A, len(A2:A)) & "e?s?\b"))))

说明

  1. filter(A2:A, len(A2:A))准备单词列表,省略空格。
  2. “\\ b”强制执行字边界,而“e?s?” 允许复数形式。
  3. regexmatch返回True或False,具体取决于F2中的注释是否匹配。
  4. n将True转换为1,将False转换为0。
  5. sum(arrayformula(...))说:对每个单词执行上述操作,并添加结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM