根据另一列中的值将数据分组到一列中

时间:2016-06-09 01:29:51

标签: google-sheets

我的数据如下所示

email id           subject of interest
ramesh@axito.com       Java,C++
mnp@axito.com            VB
ramesh@axito.com        Python
mohan@axito.com        Java,C++
mnp@axito.com            JS
rohan@axito.com         C#

但我需要的格式如下 -

email id           subject of interest
ramesh@axito.com       Java,C++,Python
mnp@axito.com            VB,JS
mohan@axito.com        Java,C++
rohan@axito.com         C#

有人可以告诉我该怎么做?

2 个答案:

答案 0 :(得分:1)

首先,使用=unique(A2:A)创建唯一电子邮件地址列表。假设这是在C列中完成的。

然后在单元格D2中输入=join(",", filter(B$2:B, A$2:A=C2))并将此公式拖动到columd D.

说明:filter仅保留B列中带有匹配电子邮件的条目; join将它们连接到以逗号分隔的列表中。

答案 1 :(得分:1)

尝试使用查询功能:

=QUERY({A:B,A:B},"select Col1, Count(Col2) where Col1 <> '' group by Col1 pivot Col4")

同样尝试这个公式,这是单一的公式解决方案:

={UNIQUE(FILTER(A2:A,A2:A>0)),TRANSPOSE(
   SPLIT(
      ", "&join(", ",
         ARRAYFORMULA(
            if(query(A:B,"select A where not A is null order by A",0)=
               query(A:B,"select A where not A is null order by A limit "&COUNT(query(A:B,"select A where not A is null",0))-1,1),"","|")
             & query(A:B,"select B where not A is null order by A",0)
             & " "
         )
      )
   ,", |",0)
)}