首页 > 解决方案 > 计算逗号分隔的列列表中的唯一值

问题描述

在一个专栏中,我有一个用逗号(和空格)分隔的对诸如“您听什么音乐类型?”之类的问题的回答列表。

Alternative, EDM, Electronic, Hip Hop, 
Drum & Bass (D&B), Indie, House, R&B, Rap, Rock
Indie, House, R&B, Rap, Rock,
Rap, Rock

我想要一个返回响应的唯一值的函数。所以像

UNIQUE(SPLIT({A:A})

(虽然这不太奏效)。所需的输出是一列独特的,例如:

Rock
Rap
...
Hip Hop

标签: google-sheets

解决方案


如果您的数据从 A1 列开始,请尝试以下公式:

=QUERY(SORT(UNIQUE(FLATTEN(ARRAYFORMULA(TRIM(SPLIT(FILTER(A1:A,LEN(A1:A)),",",1,1)))))),"where Col1 <>''",0)

这将获取 A 列中的数据,忽略空白单元格,将单元格拆分为逗号,修剪任何前导或尾随空格,将结果列“展平”为一列,获取唯一值,对其进行排序,然后删除任何空白行。

更新:上述公式的更有效版本是:

=QUERY(UNIQUE(IFERROR(FLATTEN(ARRAYFORMULA(TRIM(SPLIT(A1:A,",",1,1)))))),"where Col1 <>'' order by Col1")

请注意,FLATTEN 是一个不受支持的功能,可能会在某些时候从 Google 表格中删除。如有必要,还有其他方式来执行其功能。

Matt King 提供的关于使用FLATTEN.

如果由于某种原因这不起作用,请分享您的工作表样本。


推荐阅读