如何生成唯一 "combos" 的三列列表?

How can I generate a three column list of unique "combos"?

我有三栏信息。例如:颜色、型号、年份。

我可以使用“唯一”指令在三个新列中生成颜色、型号、年份的每个唯一组合吗?

例如

color   model    year
red     sedan    2016
red     sedan    2020
black   truck    2018 

谢谢!

假设您的三个 headers 与您的数据 运行 A2:C 在 A1、B1 和 C1 中。假设您想要 E:G 中的独特组合。首先,确保整个范围 E:G 为空。然后把下面的公式放在E1中:

=ArrayFormula({A1:C1;SPLIT(FLATTEN(UNIQUE(FILTER(A2:A,A2:A<>""))&"|"&TRANSPOSE(FLATTEN(UNIQUE(FILTER(B2:B,B2:B<>""))&"|"&TRANSPOSE(UNIQUE(FILTER(C2:C,C2:C<>"")))))),"|")})

该公式首先从 A1:C1 重现 headers。

首先将每个 UNIQUE 模型(来自 FILTER 删除空白的列表)与每个 UNIQUE 年(来自也被编辑的列表)连接起来形成组合FILTER删除空格),每个空格之间有一个竖线符号作为分隔符,SPLIT 稍后将使用。

该组合网格被 FLATTEN 编辑成一个列,然后再次与 UNIQUEFILTER 编辑的颜色列表连接,然后再次与管道符号作为分隔符。再一次,整个结果网格 FLATTEN 编入一列。

最后,SPLIT作用于管道符号,将三块分开到headers下各自的列中。

尝试:

=INDEX({A1:C1; UNIQUE(QUERY(SPLIT(FLATTEN(FLATTEN(A2:A&"×"&
 TRANSPOSE(B2:B))&"×"&TRANSPOSE(C2:C)), "×"),
 "where Col3 is not null"))})

任务很简单:取 A 列并将其与转置的 B 列合并。将输出展平为一列并将其与转置的 C 列合并,然后再次将其展平为一列。然后将其拆分并查询出所有少于 3 列的组合。接下来,运行它通过unique去重。