如何在Excel中识别Current列重复值并关联No. Feeders列值
两种动态实现Excel按Current值合并No. Feeders的方案
方案一:Excel动态数组函数(适合365/2021版本)
假设数据表头在第1行,No. Feeders列是A列,Current列是C列,数据行从第2行开始(可根据实际列调整):
提取唯一Current值:在空白单元格(如E2)输入公式,获取所有不重复的Current值:
=UNIQUE(C2:C100)(将
C100替换为你数据的实际最后一行,或直接用C:C但建议限定范围提升效率)生成合并结果(带序号):在F2单元格输入以下动态数组公式,结果会自动溢出所有行,且数据变更时自动更新:
=SEQUENCE(ROWS(UNIQUE(C2:C100))) & ". " & BYROW(UNIQUE(C2:C100), LAMBDA(x, TEXTJOIN(", ", TRUE, FILTER(A2:A100, C2:C100=x)) & "对应" & x & " A"))执行后会直接输出类似示例的格式:
1. F4, F7, F11对应470.43 A
方案二:VBA自定义函数(兼容全版本Excel)
如果你的Excel版本不支持动态数组,可通过自定义函数实现动态更新:
按
Alt+F11打开VBA编辑器,右键点击当前工作簿>插入>模块,粘贴以下代码:Function MergeFeedersByCurrent(currentRange As Range, feederRange As Range, currentValue As Variant) As String Dim cell As Range Dim feeders As String feeders = "" '遍历Current列,匹配对应值并合并Feeders For Each cell In currentRange If cell.Value = currentValue Then If feeders <> "" Then feeders = feeders & ", " feeders = feeders & feederRange.Cells(cell.Row - currentRange.Row + 1).Value End If Next cell '返回格式化结果 If feeders <> "" Then MergeFeedersByCurrent = feeders & "对应" & currentValue & " A" Else MergeFeedersByCurrent = "" End If End Function使用自定义函数:
- 先在E列用
=UNIQUE(C2:C100)提取唯一Current值(旧版本可手动去重或用高级筛选) - 在F2单元格输入公式,下拉填充至所有唯一值行:
=MergeFeedersByCurrent(C2:C100, A2:A100, E2) - 若要添加序号,直接在公式前拼接序号,比如
=ROW()-1 & ". " & MergeFeedersByCurrent(C2:C100, A2:A100, E2)
- 先在E列用
动态更新设置:确保Excel开启自动重算(文件>选项>公式>勾选「自动重算」),修改数据后结果会自动刷新。
内容的提问来源于stack exchange,提问作者Ishan Khatri
相关产品推荐
相关产品推荐

