1

我有一张从 Google 表单填充的表格。它带有一个公司名称列和一个员工姓名。公司列可以具有相同或重复的值,但员工列不能。那么,我如何才能获得一个公司名称,其中包含所有员工姓名?

在此处输入图像描述

4

2 回答 2

1

如果您使用的是 Google 电子表格,您可以查看UNIQUE并使用函数。FILTER这是一个例子:

在此处输入图像描述


中的公式D2

=UNIQUE(A2:A)

中的公式E2

  • 选项1

    =TRANSPOSE(FILTER(B:B,A:A=D2))
    
  • 选项 2,上面可能会很快变得迟缓,所以也许可以改用:

    =TRANSPOSE(FILTER(B$2:INDEX(B:B,COUNTA(B:B)),A$2:INDEX(A:A,COUNTA(A:A))=D2))
    
  • 选项 3,即使使用QUERY也是一种可能性:

    =TRANSPOSE(QUERY({$A$2:INDEX($B:$B,COUNTA(B:B))},"Select Col2 where Col1='"&D2&"'"))
    
  • 选项 4,找到了一种只使用单个公式的方法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,公式将自动更新您所需的输出:

在此处输入图像描述

于 2019-08-11T08:50:30.970 回答
0

单细胞解决方案:

=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))), "♦")})

0

于 2019-08-11T14:07:01.403 回答