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

如何在Excel中将Status单列转多列并保留唯一ID及关联字段?

解决Excel中Status字段转置为多列并保留唯一ID的问题

方法一:Power Query(推荐大数据量场景)

这是处理大规模数据集最高效的方式,步骤如下:

  • 选中原始数据区域,点击「数据」选项卡 → 「从表格/区域」(Excel 2016及以上版本),确认数据包含表头,进入Power Query编辑器
  • 若同一ID#对应的Location和Date有重复值,先选中这三列,右键选择「分组依据」:分组列选ID#,操作选「所有行」生成新列,再通过展开提取唯一的Location和Date
  • 选中Status列,点击「转换」选项卡 → 「透视列」:值列选择Status(若只需标记状态是否存在,可先添加自定义列=1,再用该列作为值),高级选项选「不要聚合」(确保同一ID同一状态仅显示一次)
  • 点击确定后,所有Status类别会自动转为单独列,每行对应唯一ID#,同时保留Location和Date
  • 点击「关闭并上载」,将结果导出到新工作表

方法二:公式法(适合中小数据量)

依赖Excel 365/2021的动态数组功能:

  • 生成唯一ID列表:在空白列输入=UNIQUE(A:A)(A列为原始ID列)
  • 提取Location:对应唯一ID行输入=XLOOKUP($F2, $A:$A, $B:$B)(F列为唯一ID列,B列为原始Location列),下拉填充
  • 提取Date:同理输入=XLOOKUP($F2, $A:$A, $C:$C)(C列为原始Date列)
  • 生成Status列:以Status"A"为例,输入=IF(COUNTIFS($A:$A, $F2, $D:$D, "A")>0, "A", "")(D列为原始Status列),复制公式到其他Status类别列并下拉

方法三:修正数据透视表操作

你之前的问题是未正确放置字段,调整后即可使用:

  • 插入数据透视表,将ID#、Location、Date全部拖到「行」区域(需确保同一ID#对应的Location和Date唯一,否则会生成多行)
  • 将Status拖到「列」区域,再把Status拖到「值」区域,值字段设置为「计数」或「最大值」(按需显示状态内容或存在标记)
  • 最后将透视表中的空值替换为空白,即可得到目标格式

注:大数据量下优先选Power Query,公式法可能出现卡顿;透视表适合数据量适中且Location/Date与ID#严格一一对应的场景

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 00:45:04