我在Google表格中有2列数据。 Column1是唯一的单词或句子(单词在句子中重复),Column2是每个单词或句子旁边的数字值(例如投票)。我试图从Column1中获取一个唯一单词的列表,然后从Column2中获得一个单词的值之和(投票),该单词单独出现或出现在句子中。
以下是我在Google表格中使用的数据示例:
Term Votes
apple 20
apple eat 100
orange 30
orange rules 40
rule why 50
这是最终结果如下:
Word Votes
apple 120
eat 100
orange 70
rules 40
rule 50
why 50
我现在做的方式很长,我不确定这是否是最佳解决方案。
这是我的解决方法:
JOIN
值在Column1中使用定界符“”,然后SPLIT
使用相同的定界符,然后将TRANSPOSE
分为一列。这样,我可以说出Column3中Column1中使用的所有单词的列表。UNIQUE
值,然后对Column3中的唯一值进行COUNTIF
。这样,我就可以通过引用所有单词的lsit来获得每个唯一单词的频率。TRANSPOSE
Column4和QUERY
Column1和Column2。公式看起来像=QUERY(Column1:Column2, "SELECT SUM(Column2) WHERE Column1 CONTAINS '" & referenceToUniqueWord & "'", 1)
。我首先必须转置的原因是因为查询公式输出了2个单元格的数据,即Text:sumColumn1和Number:“票数之和”。因为对于一个单元格的唯一单词我得到了两个单元格的数据,所以我无法将公式向下拖动,因此必须水平执行。QUERY
公式的文本sumColumn2。第三行是由各个QUERY
公式得出的实际投票总数。然后,我将这些行转置为列,并获得最终表I VLOOKUP
较早到达的频率值。此方法冗长,容易出错。如果列表很大,并且在初始JOIN
中也达到了50,000的错误,则此方法也不起作用。任何想法,以使其更好。我知道可以使用脚本轻松完成此操作,但我更希望仅使用公式即可完成。