Mac版Excel如何合并相同Object ID对应的Object Value为逗号分隔列表
在Mac版Excel中实现同ID值合并的三种高效方法
针对你5000行的表格需求,以下是三种适配Mac版Excel的实用方案:
方法1:TEXTJOIN数组公式(适合Excel 365/2021及以上版本)
直接用公式快速生成结果,无需额外工具:
- 假设数据在A列(Object ID)、B列(Object Value),表头在第1行,在C2单元格输入公式:
=TEXTJOIN(",",TRUE,IF($A$2:$A$5001=A2,$B$2:$B$5001,"")) - 输入完成后按Command+Shift+Enter触发数组公式,再下拉填充到所有行即可。
说明:TEXTJOIN负责用逗号拼接符合条件的文本,IF筛选当前ID对应的所有Value,TRUE参数自动忽略空值,注意要把公式里的$A$2:$A$5001和$B$2:$B$5001替换成你实际的数据范围。
方法2:Power Query(高效稳定,适合大行数)
避免数组公式的计算压力,适合5000行这类规模的数据:
- 选中包含表头的数据区域,点击菜单栏数据→从表格/范围,勾选“我的表格有标题”后进入Power Query编辑器。
- 选中
Object ID列,点击转换→分组依据:分组列选Object ID,新列名设为Derived Column,操作选所有行,点击确定。 - 点击
Derived Column列右侧的展开按钮,选择提取值,分隔符选逗号,确认后得到ID与合并值的对应表。 - 点击主页→合并查询→合并查询作为新查询,左侧选原表、右侧选分组后的表,匹配列均选
Object ID,联接类型选左外部,确定后展开合并列,只勾选Derived Column。 - 点击主页→关闭并上载,结果将导出到新工作表,完全符合你的预期格式。
方法3:VBA宏(适合有编程基础的用户)
批量处理更灵活,适合自定义需求:
- 按
Option+F11打开VBA编辑器,点击插入→模块,粘贴以下代码:Sub MergeValuesByID() Dim ws As Worksheet Dim lastRow As Long Dim idDict As Object Dim i As Long Dim currentID As String Set ws = ActiveSheet lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row Set idDict = CreateObject("Scripting.Dictionary") ' 先存储每个ID对应的合并值 For i = 2 To lastRow currentID = ws.Cells(i, "A").Value If Not idDict.Exists(currentID) Then idDict(currentID) = ws.Cells(i, "B").Value Else idDict(currentID) = idDict(currentID) & "," & ws.Cells(i, "B").Value End If Next i ' 填充Derived Column列 For i = 2 To lastRow ws.Cells(i, "C").Value = idDict(ws.Cells(i, "A").Value) Next i Set idDict = Nothing MsgBox "处理完成!" End Sub - 返回Excel,按
F5运行宏即可(运行前建议备份数据)。
内容的提问来源于stack exchange,提问作者Ankit
相关产品推荐
相关产品推荐

