根据另一行的条件在一行中获取多个值转置
Get multiple value in one row transpose based on criteria on another row
我有一个从 Google 表单填充的 sheet。它带有一列公司名称和员工姓名。 company 列可以具有相同或重复的值,但 employee 列不能。那么,我怎样才能得到一个公司名称,所有员工姓名排成一行?
如果您使用 Google 电子表格,您可以研究 UNIQUE
and FILTER
函数。这是一个例子:
公式 in D2
:
=UNIQUE(A2:A)
公式 in E2
:
选项 1
=TRANSPOSE(FILTER(B:B,A:A=D2))
选项 2,上面的代码会很快变慢,所以也许可以改用:
=TRANSPOSE(FILTER(B:INDEX(B:B,COUNTA(B:B)),A:INDEX(A:A,COUNTA(A:A))=D2))
选项3,即使使用QUERY
也是可能的:
=TRANSPOSE(QUERY({$A:INDEX($B:$B,COUNTA(B:B))},"Select Col2 where Col1='"&D2&"'"))
选项 4,Found 一种在 E2
中只使用单个公式的方法:
=ARRAYFORMULA(ARRAY_CONSTRAIN(TRIM(SPLIT(TRIM(TRANSPOSE(QUERY(IF(TRANSPOSE(D2:INDEX(D:D,COUNTA(D:D)))=A2:INDEX(A:A,COUNTA(A:A)),B2:INDEX(B:B,COUNTA(B:B))&"|",),,9^99))),"|")),COUNTA(D2:INDEX(D:D,COUNTA(D:D))),100))
这样当您将数据添加到列 A:B
时,公式将自动更新您想要的输出:
单细胞解决方案:
=ARRAYFORMULA({SORT(UNIQUE(INDIRECT("A2:A"&COUNTA(A2:A)+1))),
SPLIT(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(ISNUMBER(QUERY(QUERY(A2:B,
"select count(A) where A is not null group by A pivot B", 0),
"offset 1", 0)), QUERY(QUERY(A2:B,
"select count(A) where A is not null group by A pivot B", 0),
"limit 0", 1)&"♦", )),,999^99))), "♦")})
我有一个从 Google 表单填充的 sheet。它带有一列公司名称和员工姓名。 company 列可以具有相同或重复的值,但 employee 列不能。那么,我怎样才能得到一个公司名称,所有员工姓名排成一行?
如果您使用 Google 电子表格,您可以研究 UNIQUE
and FILTER
函数。这是一个例子:
公式 in D2
:
=UNIQUE(A2:A)
公式 in E2
:
选项 1
=TRANSPOSE(FILTER(B:B,A:A=D2))
选项 2,上面的代码会很快变慢,所以也许可以改用:
=TRANSPOSE(FILTER(B:INDEX(B:B,COUNTA(B:B)),A:INDEX(A:A,COUNTA(A:A))=D2))
选项3,即使使用
QUERY
也是可能的:=TRANSPOSE(QUERY({$A:INDEX($B:$B,COUNTA(B:B))},"Select Col2 where Col1='"&D2&"'"))
选项 4,Found 一种在
E2
中只使用单个公式的方法:=ARRAYFORMULA(ARRAY_CONSTRAIN(TRIM(SPLIT(TRIM(TRANSPOSE(QUERY(IF(TRANSPOSE(D2:INDEX(D:D,COUNTA(D:D)))=A2:INDEX(A:A,COUNTA(A:A)),B2:INDEX(B:B,COUNTA(B:B))&"|",),,9^99))),"|")),COUNTA(D2:INDEX(D:D,COUNTA(D:D))),100))
这样当您将数据添加到列 A:B
时,公式将自动更新您想要的输出:
单细胞解决方案:
=ARRAYFORMULA({SORT(UNIQUE(INDIRECT("A2:A"&COUNTA(A2:A)+1))),
SPLIT(TRIM(TRANSPOSE(QUERY(TRANSPOSE(IF(ISNUMBER(QUERY(QUERY(A2:B,
"select count(A) where A is not null group by A pivot B", 0),
"offset 1", 0)), QUERY(QUERY(A2:B,
"select count(A) where A is not null group by A pivot B", 0),
"limit 0", 1)&"♦", )),,999^99))), "♦")})