如何根据单个列标识符合并 Excel 行数据而不丢失数据?

How do I merge rows of Excel data based on a single column identifier without data loss?

我在 Excel 中有事件跟踪数据,有点像这样。

事件 姓名 电子邮件 参加 1 参加 2 参加 3
事件 1 乔@电子邮件
事件 2 乔@电子邮件 没有
事件 1 鲍勃 鲍勃@电子邮件 没有
事件 1 萨拉 Sara@email
事件 2 萨拉 Sara@email
事件 3 萨拉 Sara@email
事件 2 雷@电子邮件
事件 3 雷@电子邮件 没有

我正在尝试合并/折叠数据,以便每个姓名和电子邮件都是唯一的行(使用电子邮件作为唯一标识符)并合并参加行数据。空白单元格对于以后的工作也很重要(此人没有注册该活动)。最终数据应如下所示:

姓名 电子邮件 参加 1 参加 2 参加 3
乔@电子邮件 没有
鲍勃 鲍勃@电子邮件 没有
萨拉 Sara@email
雷@电子邮件 没有

我已经尝试过诸如添加帮助列以标识重复行、过滤和各种查找版本之类的操作,但我总是被卡住。我在网上找到的大多数解决方案都显示了连接数据、使用组或数据透视表,这些都没有得到我需要的最终结果,或者使用了像 AbleBits 这样的商业插件。我在 SO () 上看到了类似的声音 post,但它并没有完全符合我的情况,而且解决方案似乎对我不起作用(除非我没有做对)。有没有办法使用 Excel 公式或常规菜单选项来获得我的结果?如果有更复杂的解决方案,例如VBA 或 Power Query,请提供详细步骤,因为我不熟悉这些工具。我可能会导出数据并在 R 中解析它,但我正在寻找原生 Excel 解决方案。

谢谢!

您可以在单独的列中执行 =UNIQUE(C1:C100) 并将这些值复制并粘贴到它们自身(假设电子邮件范围在 C2:C100 并且 headers 在第一个行)。

然后在相邻的列中执行类似 =CONCAT(FILTER(D:D0, $C:$C0=$H2)) 的操作,然后向下和向右拖动(其中 H 列包含唯一电子邮件列)。然后再次简单地复制并粘贴值并删除旧列。