Google sheets 计算多列中出现的单词数

Google sheets 计算多列中出现的单词数,google-sheets,ranking,google-sheets-formula,Google Sheets,Ranking,Google Sheets Formula,我有一个这样的电子表格,其中的值a-E是来自表单的相同选项: +------+------+------+ | Opt1 | Opt2 | Opt3 | +------+------+------+ | A | A | B | | B | C | A | | C | C | B | | A | E | C | | D | B | E | | B | E | D | +------+----

我有一个这样的电子表格,其中的值a-E是来自表单的相同选项:

+------+------+------+
| Opt1 | Opt2 | Opt3 |
+------+------+------+
|   A  |   A  |   B  |
|   B  |   C  |   A  |
|   C  |   C  |   B  |
|   A  |   E  |   C  |
|   D  |   B  |   E  |
|   B  |   E  |   D  |
+------+------+------+
我想做一个排名,显示每个选项中选择最多的选项。我已经有了,其中Rank是选项的排名,number是选项的计数:

+------+------+------+
| Rank | Opt1 | Numb |
+------+------+------+
|   1  |   A  |   2  |
|   1  |   B  |   2  |
|   3  |   C  |   1  |
|   3  |   D  |   1  |
+------+------+------+ (I have 3 of these, one for each option)
我现在想对3个选项做一个总结,做相同的排名,但加入选项。可能是这样的:

+------+------+------+
| Rank |Opt123| Numb |
+------+------+------+
|   1  |   B  |   5  |
|   2  |   A  |   4  |
|   2  |   C  |   4  |
|   4  |   E  |   3  |
|   5  |   D  |   2  |
+------+------+------+
最简单的方法是从三个排名表或原始的三个数据列中获取数据

我该怎么做

我已经有了获得选项名称、计数和排名的公式,但我不知道如何让它们与多个列一起工作

我拥有的(F列是数据列之一):

另一页上的B栏:

=SORT(UNIQUE(FILTER('Form Responses'!F2:F;NOT(ISBLANK('Form Responses'!F2:F)))); RANK(COUNTIF('Form Responses'!F2:F; UNIQUE(FILTER('Form Responses'!F2:F;NOT(ISBLANK('Form Responses'!F2:F))))); COUNTIF('Form Responses'!F2:F; UNIQUE(FILTER('Form Responses'!F2:F;NOT(ISBLANK('Form Responses'!F2:F))))); TRUE); FALSE)
C栏:

=ArrayFormula(COUNTIF('Form Responses'!F2:F; FILTER(B2:B;NOT(ISBLANK(B2:B)))))
A栏:

=ARRAYFORMULA(SORT(RANK(FILTER(C2:C;NOT(ISBLANK(C2:C))); FILTER(C2:C;NOT(ISBLANK(C2:C))))))
编辑:

合并列:

=TRANSPOSE(split(join(",",D2:D,E2:E),","))
合并2个cols,不是很干净,但可以工作。(与此相同)

完整公式:

=SORT(UNIQUE(FILTER(TRANSPOSE(split(join(",",D2:D,E2:E),","));NOT(ISBLANK(TRANSPOSE(split(join(",",D2:D,E2:E),",")))))); RANK(COUNTIF(TRANSPOSE(split(join(",",D2:D,E2:E),",")); UNIQUE(FILTER(TRANSPOSE(split(join(",",D2:D,E2:E),","));NOT(ISBLANK(TRANSPOSE(split(join(",",D2:D,E2:E),","))))))); COUNTIF(TRANSPOSE(split(join(",",D2:D,E2:E),",")); UNIQUE(FILTER(TRANSPOSE(split(join(",",D2:D,E2:E),","));NOT(ISBLANK(TRANSPOSE(split(join(",",D2:D,E2:E),","))))))); TRUE); FALSE)

排序后可以进行转置。

谢谢,但“A”必须是动态的,因为我有80多个选项,为每个选项做这个根本不实际。此外,并非所有的80个左右的选项都出现在所有列中,如果没有人选择它,它将不会出现。我不知道我是否足够清楚,但例如,在我的第一个示例中,Opt1列没有出现任何“E”。因此,我必须首先以某种方式将三列中的所有选项组合起来,使它们唯一,然后将它们作为一个数组公式放入COUNTIF条件中。我被困在连接所有3列选项的第一部分。你只有3列吗?如果是,那么您应该能够使用这种方法。您目前使用的使“A”动态的方法应该可以工作。也许我遗漏了什么…我会试试这个,谢谢,但我想我已经尝试过类似的东西,因为一个专栏没有另一个专栏的记录,我的计数下降了。我会试着看看是什么原因造成的,我也认为如果我能让它充满活力的话,这种方法应该是有效的。我在这里尝试过这种方法,它有点奏效。我可以用这个答案把3列选项连接起来,但是当我把它们放在一起时,排序函数将所有选项按照等级进行排序,但它不起作用,它只是按字母顺序对它们进行排序,而这与我之前的排序唯一的区别是this使用countif+countif+countif,评估需要几秒钟。