使用单元格中的CSV计算列中单词的频率

时间:2014-03-28 11:28:17

标签: google-sheets formula

我的工作表中有一个列,其中包含通过Google表单复选框提交的表单值。由于表单中的多选项,这会在工作表中生成逗号分隔值(CSV)列表。一个例子:

screenshot

我想计算每个“标签”的使用频率。产生类似的东西:

screenshot

我找到了这个公式(归功于@AdamL),这非常适合计算整列完整连接中单个单词的频率:

=ArrayFormula(QUERY(TRANSPOSE(SPLIT(JOIN(" ";B3:B);" ")&{"";""});"select Col1, count(Col2) group by Col1 order by count(Col2) desc limit 10 label Col1 'Word', count(Col2) 'Frequency'";0))

但是,我找不到修改它的方法,用逗号(或逗号和空格)分割成生成的字段,而不仅仅是空格(当然,它会在每个字段中产生单个字)。希望这是有道理的。

尝试将Join中的分隔符替换为“”到“,”和“,” - 没有快乐:(

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

  

将其修改为用逗号(或逗号和空格)分割成生成的字段,而不仅仅是空格

您需要触摸的JOINSPLIT功能。而不是SPLIT(JOIN(" ";B3:B);" "),请尝试:

SPLIT(JOIN(", ";B3:B);", ")
            ^^         ^^  

这样,JOIN会将单元格与两个字符的分隔符", "放在一起,这是与表单相同的分隔符。然后,SPLIT将获取", "的每个JOIN和表单中的=ArrayFormula(QUERY(TRANSPOSE(SPLIT(JOIN(", ",B2:B),", ",false)&{"";""}),"select Col1, count(Col2) group by Col1 order by count(Col2) desc limit 10 label Col1 'Word', count(Col2) 'Frequency'",0)) ,并将各个术语分开。单词之间的空间将存活下来。

你将拥有:

{{1}}

screenshot