我有一列逗号分隔值,如下所示:
A
1 A, B, C, D, E
2 A, D, E, F, G
3 B, E, F, H
4 A, B, C, D, E, F, G, H
5 D
6 F, G
7 A, E, F, G
[...]
我希望得到所有这些值,但是要分开,所以我最终会得到一个列表/数组,其值为[" A"," B",&#34 ; C"" d"" E"" A"" d"" E" ," F"," G"," B"," E" ...]我可以传递到ARRAYFORMULA()
嵌套在里面一个功能。
答案 0 :(得分:2)
您不能对数组公式使用split,但可以在值右侧的帮助列中运行split函数:
=SPLIT(A1,",")
此外,模式不能处理文本值 - 仅限数字 - 您可能需要使用countif。
答案 1 :(得分:2)
要获取模式,请将第一个公式放在B列中。它会在每组字母的末尾添加逗号,以便拆分工作。然后第二个公式将找到模式。您可以隐藏B列。
=transpose(split(join(" ",arrayformula(A1:A7&",")),", "))
=ArrayFormula( index(B1:B, match( max(if(B1:B="",iferror(1/0),countif(B1:B,B1:B))), countif(B1:B,B1:B), 0 ) ) )
答案 2 :(得分:0)
要获得包含总计的表格,请使用以下公式:
=QUERY({TRANSPOSE(SPLIT(JOIN(", ",A1:A7),", ")),TRANSPOSE(SPLIT(JOIN(", ",A1:A7),", "))},"select Col1, count(Col2) group by Col1 order by count(Col2) desc label count(Col2) ''",0)
它会给出这样的结果:
E 5
F 5
A 4
D 4
G 4
B 3
C 2
H 2
如果你想得到字母“E”(模式),请使用:
=QUERY(QUERY({TRANSPOSE(SPLIT(JOIN(", ",A1:A7),", ")),TRANSPOSE(SPLIT(JOIN(", ",A1:A7),", "))},"select Col1, count(Col2) group by Col1 order by count(Col2) desc label count(Col2) ''",0),"select Col1 limit 1")