如何使用Microsoft Excel的INDEX、MATCH、ROW公式实现表格转目标结果
Excel按唯一ID合并多行到单行的公式方案
Excel 365/2021及以上版本方案(支持自动溢出)
假设原始数据存放在Sheet1工作表,A列为唯一标识ID,B列为需要横向展开的对应值,目标结果在Sheet2生成:
- 步骤1:提取不重复ID,在
Sheet2的A2单元格输入公式:=UNIQUE(Sheet1!A2:A1000)
公式会自动向下溢出所有去重后的ID,无需手动下拉填充 - 步骤2:匹配ID对应的所有值横向展示,在
Sheet2的B2单元格输入公式:=TRANSPOSE(FILTER(Sheet1!B:B,Sheet1!A:A=A2,"无匹配值"))
公式会自动向右溢出当前ID对应的所有属性值,下拉到最后一行ID即可完成全部匹配
Excel 2019及更早版本方案
低版本无溢出函数,使用数组公式实现:
- 步骤1:提取不重复ID:选中
Sheet1A列,点击顶部「数据」选项卡→「高级筛选」→选择「将筛选结果复制到其他位置」→勾选「选择不重复的记录」,设置复制到Sheet2A列即可 - 步骤2:匹配对应值,在
Sheet2的B2单元格输入公式:=IFERROR(INDEX(Sheet1!$B:$B,SMALL(IF(Sheet1!$A:$A=$A2,ROW(Sheet1!$A:$A),99999),COLUMN(A1))),"")
输入完成后按Ctrl+Shift+Enter三键触发数组计算,先向右拖动填充到足够容纳最多属性的列数,再选中整行公式向下拖动填充所有ID行即可
补充说明
如果需要横向展开的属性有多列,只需调整公式中对应的数据引用范围即可适配。
内容的提问来源于stack exchange,提问作者Muchammad Miftachul Arif
相关产品推荐
相关产品推荐

