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

Excel中实现将二进制值转换为对应分类文本至Class列

在Excel中提取值为1的对应列标题到Class列

需求说明

你需要将每行中值为"1"的列的标题(犯罪类型)填充到同一行的Class列,期望效果如下:

ClassArsonBurglaryCriminalDamagetoPropertyLockVehicleRobberyTheft
Burglary010000
CriminalDamagetoProperty001000
Arson100000
LockVehicle000100
Robbery000010
Theft000001

下面是几种实用的实现方法:

方法1:INDEX+MATCH公式(兼容所有Excel版本)

假设你的数据结构和示例一致:Class列是A列,犯罪类型标题在第1行(B1:G1),数据从第2行开始。
在A2单元格输入以下公式,然后下拉填充到所有行:

=INDEX($B$1:$G$1,MATCH(1,$B2:$G2,0))
  • MATCH(1,$B2:$G2,0):定位当前行中值为1的单元格所在列的位置
  • INDEX($B$1:$G$1, ...):根据定位的位置,提取对应列的标题文本

方法2:XLOOKUP公式(Excel 365/2021及以上版本)

如果你的Excel是新版本,用XLOOKUP更简洁,A2单元格输入:

=XLOOKUP(1,$B2:$G2,$B$1:$G$1)

直接匹配值为1的单元格对应的标题,无需嵌套函数,下拉即可完成填充。

方法3:快速填充(无公式,操作简单)

适合数据量不大的场景:

  • 手动在A2单元格输入对应行的标题(比如示例里的Burglary)
  • 选中A2到最后一行的Class列单元格
  • 按下快捷键Ctrl+E,Excel会自动识别规律并完成所有填充

方法4:Power Query(适合批量/重复处理)

如果需要经常处理这类数据,用Power Query更高效:

  1. 选中整个数据区域,点击「数据」选项卡 → 「从表格/区域」(勾选「我的表格有标题」)
  2. 在Power Query编辑器中,选中所有犯罪类型列(B到G列),点击「转换」选项卡 → 「逆透视列」→ 选择「逆透视其他列」
  3. 此时会生成「属性」(原列标题)和「值」两列,筛选「值」列等于1的行
  4. 将「属性」列重命名为「Class」,删除多余的「值」列
  5. 点击「关闭并上载」,结果将生成新的表格,完全符合你的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 00:05:39