首页 > 解决方案 > 将值包含逗号的列中的每一行拆分为转置行

问题描述

所以我有以下格式的数据:

数据

我想把它总结成这样的另一张纸:

输出

所以我可以TRANSPOSE(SPLIT(A1:A))单独使用

我可以用来ARRAYFORMULA(SPLIT(A:A))在一个范围内运行它,但是我似乎不能同时使用它们来达到相同的效果

总结

A 列包含汽车名称的逗号分隔值

我想将所有汽车名称作为另一张表中的行并添加对它们的计数

标签: google-sheets

解决方案


您可以使用以下公式获得整个迷你报告:

=ArrayFormula(QUERY(FLATTEN(TRIM(SPLIT(A2:A,","))),"Select Col1, COUNT(Col1) Where Col1 > '@' GROUP BY Col1 LABEL COUNT(Col1) ''"))

SPLIT将在逗号处拆分 A2:A 中的每个条目(如果有的话),并将导致每个空白行出错(稍后处理)。

TRIM删除任何逗号拆分后的空格。

FLATTEN从所有结果(单词、空白和错误)中创建一列。

QUERY(...,"Select Col1, COUNT(Col1) Where Col1 > '@' GROUP BY Col1 LABEL COUNT(Col1) ''")以该FLATTEN列中的所有内容和COUNT每个GROUPed 的名称开头,排除WHERECol1 中的值不是 > '@' 符号的任何内容(这将排除所有空白和错误)。最后,LABEL将去掉多余的“count”标题,否则会COUNT(Col1)QUERY.

或者,您可以先用 a排除错误FILTER,然后使用 的WHERE部分QUERY排除空白:

=ArrayFormula(QUERY(FLATTEN(TRIM(SPLIT(FILTER(A2:A,A2:A<>""),","))),"Select Col1, COUNT(Col1) WHERE Col1 Is Not Null GROUP BY Col1 LABEL COUNT(Col1) ''"))


推荐阅读