行中最常出现的单词列表

时间:2017-11-19 17:11:45

标签: google-sheets spreadsheet

我正在寻找一种方法来显示(在Google电子表格中)该行中最常出现的单词,但如果它不是一个单词我想显示所有这些单词以分号分隔具有相同的发生次数。

解释

例如,我想用下面的值填充最后一列:

+---+------+------+------+------+------+-------------------+
|   |  A   |  B   |  C   |  D   |  E   |         F         |
+---+------+------+------+------+------+-------------------+
| 1 | Col1 | Col2 | Col3 | Col4 | Col5 | Expected response |
| 2 | A    | A    | C    | D    | E    | A                 |
| 3 | A    | A    | B    | B    | B    | B                 |
| 4 | A    | A    | B    | B    | E    | A, B              |
| 5 | A    | B    | C    | D    | E    | A, B, C, D, E     |
+---+------+------+------+------+------+-------------------+

这是我所取得的成就(细胞F2的公式):

=INDEX(A2:E2; MODE(MATCH(A2:E2; A2:E2; 0)))

但它并不像我期望的那样在第4和第5行工作。

2 个答案:

答案 0 :(得分:1)

这适用于Office 365 Excel,但可能不会在Excel中在线,因为它是一个数组公式。

=TEXTJOIN(", ",TRUE,INDEX(A2:E2,,N(IF({1},MODE.MULT(IF(((MATCH(A2:E2,A2:E2,0)=COLUMN(A2:E2))*(COUNTIF(A2:E2,A2:E2)=MAX(COUNTIF(A2:E2,A2:E2)))),COLUMN(A2:E2)*{1;1}))))))

作为数组公式,需要在退出编辑模式时使用Ctrl-Shift-Enter而不是Enter来确认。如果操作正确,则Excel会将{}放在公式周围。

enter image description here

编辑:

按照您现在的需要使用Google表格进行操作:

=join(", ",filter(A2:E2,column(A2:E2)=match(A2:E2,A2:E2,0),countif(A2:E2,A2:E2)=max(countif(A2:E2,A2:E2))))

enter image description here

答案 1 :(得分:0)

F2:

=JOIN(",",SORTN(TRANSPOSE(A2:E2),1,1,ARRAY_CONSTRAIN(FREQUENCY(MATCH(A2:E2,A2:E2,0),COLUMN(A2:E2)),COUNTA(A2:E2),1),0))

请参阅语法@ https://support.google.com/docs/table/25273