You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于指定条件生成对应值数组的Excel函数问题求助

解决Excel按ID横向分组提取姓名的问题

适用Excel 365/2021(动态数组版本)

直接在Sheet2的B2单元格输入以下公式,公式会自动横向填充该ID对应的所有姓名,空列自动留空:

=TRANSPOSE(FILTER(Sheet1!$B$2:$B$10,Sheet1!$A$2:$A$10=A2))
  • 把Sheet1!$B$2:$B$10和Sheet1!$A$2:$A$10替换成你实际的数据源范围
  • 下拉公式到所有ID行即可

适用旧版Excel(需数组公式确认)

如果你用的是不支持动态数组的旧版Excel,按以下步骤操作:

  1. 选中Sheet2中B2到E2的单元格(对应Name1到Name4列)
  2. 输入以下公式:
=IFERROR(INDEX(Sheet1!$B$2:$B$10,SMALL(IF(Sheet1!$A$2:$A$10=$A2,ROW(Sheet1!$A$2:$A$10)-ROW(Sheet1!$A$2)+1),COLUMN(A:A))),"")
  1. 必须按Ctrl+Shift+Enter组合键完成数组公式的确认(输入完公式不要直接回车)
  2. 选中B2:E2区域,下拉到所有ID行

你之前用SMALL/ROW失败的常见原因:

  • 未正确计算行偏移:ROW(Sheet1!$A$2:$A$10)-ROW(Sheet1!$A$2)+1是把数据源的行号转换成相对位置,少了这一步会引用错误的行
  • 未选中整列范围再按数组确认:单独输入单个单元格的数组公式无法横向匹配多个姓名
  • COLUMN引用错误:COLUMN(A:A)用于对应第1个、第2个...姓名,逻辑错位会导致结果空白或错误

注意事项

  • 确保Sheet1的数据源范围包含所有行,若数据会动态增加,建议把Sheet1的数据转换成Excel表格(Ctrl+T),公式会自动扩展范围
  • 如果某个ID的姓名数量超过4列,只需扩展选中的列数即可

内容的提问来源于stack exchange,提问作者tryingtolearnexcel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 03:46:02