如何在Excel中基于ID列表横向返回关联的唯一Animal值?
Excel 按ID横向汇总关联动物的公式方案
原始数据(A1:B10区域)
| A | Animal | |
|---|---|---|
| 1 | ID | Animal |
| 2 | TEST1 | Zebra |
| 3 | TEST2 | Zebra |
| 4 | TEST4 | Zebra |
| 5 | TEST1 | Giraffe |
| 6 | TEST2 | Giraffe |
| 7 | TEST4 | Monkey |
| 8 | TEST5 | Monkey |
| 9 | TEST5 | Cat |
| 10 | TEST1 | Cat |
预期汇总效果
| ID | Animal | Animal | Animal |
|---|---|---|---|
| TEST1 | Zebra | Giraffe | Cat |
| TEST2 | Zebra | Giraffe | |
| TEST3 | |||
| TEST4 | Zebra | Monkey | |
| TEST5 | Monkey | Cat |
适用Excel 365/2021(带动态数组功能)
- 生成不重复ID列表:在D2单元格输入
=UNIQUE(A2:A10),回车后自动列出所有独有的TEST ID。如果需要TEST3这类原始数据里没有的ID,直接在列表里手动添加即可。 - 横向汇总关联动物:在E2单元格输入
=TOROW(FILTER($B$2:$B$10,$A$2:$A$10=$D2,""),,TRUE),回车后会自动将当前ID对应的所有动物横向排列,无匹配数据的位置留空。将该单元格下拉、右拉即可覆盖所有ID和需要的列。
适用旧版Excel(无动态数组功能)
用数组公式实现,以E2单元格为例:
输入 =IFERROR(INDEX($B$2:$B$10,SMALL(IF($A$2:$A$10=$D2,ROW($A$2:$A$10)-ROW($A$2)+1,""),COLUMN(A:A))),"")
输入完成后,按 Ctrl+Shift+Enter 触发数组公式(不要直接回车),然后将单元格向右填充到所需列,再向下填充到所有ID行。无匹配动物的位置会显示空值。
内容的提问来源于stack exchange,提问作者KirklandReds
相关产品推荐
相关产品推荐

