Excel中如何根据单元格条件将列转换为行并关联对应内容?
Excel数据转换解决方案
原始数据
| Omschrijving | AMM | AM | FG | G | K-MOTRED | MINI | BPM-RVM-MOTRED | STM-RMI-MOTRED |
|---|---|---|---|---|---|---|---|---|
| 1 x magneetplug | 1 | 1 | 1 | 1 | 1 | 1 | ||
| 2 x afwaterings gat zijde 3 | ||||||||
| 2 x magneetplug | 1 | |||||||
| 3 x afwateringskanaal zijde 6 | ||||||||
| 3 x waterafvoer zijde B | 2 | |||||||
| 4 x afwateringsgat A-zijde | ||||||||
| 4 x afwateringskanaal A-zijde | ||||||||
| Draairichtingspijl links | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
| Flens en pasvlak meegespoten | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 |
需求说明
提取所有含数字的单元格,将该列标题、对应行的Omschrijving内容、单元格数字组合成新行,忽略空白单元格。预期结果如下:
| 列标题 | Omschrijving内容 | 数值 |
|---|---|---|
| AMM | 1 x magneetplug | 1 |
| AM | 1 x magneetplug | 1 |
| FG | 1 x magneetplug | 1 |
| G | 1 x magneetplug | 1 |
| K-MOTRED | 1 x magneetplug | 1 |
| BPM-RVM-MOTRED | 1 x magneetplug | 1 |
| BPM-RVM-MOTRED | 2 x magneetplug | 1 |
| K-MOTRED | 3 x waterafvoer zijde B | 2 |
| AMM | Draairichtingspijl links | 2 |
| AM | Draairichtingspijl links | 2 |
| FG | Draairichtingspijl links | 2 |
| G | Draairichtingspijl links | 2 |
| K-MOTRED | Draairichtingspijl links | 2 |
| MINI | Draairichtingspijl links | 2 |
| BPM-RVM-MOTRED | Draairichtingspijl links | 2 |
| STM-RMI-MOTRED | Draairichtingspijl links | 2 |
| AMM | Flens en pasvlak meegespoten | 2 |
| AM | Flens en pasvlak meegespoten | 2 |
| FG | Flens en pasvlak meegespoten | 2 |
| G | Flens en pasvlak meegespoten | 2 |
| K-MOTRED | Flens en pasvlak meegespoten | 2 |
| MINI | Flens en pasvlak meegespoten | 2 |
| BPM-RVM-MOTRED | Flens en pasvlak meegespoten | 2 |
| STM-RMI-MOTRED | Flens en pasvlak meegespoten | 2 |
实现方法
方法一:Power Query(推荐,批量处理高效)
这是操作最简单的方式,无需复杂公式:
- 选中原始数据区域(包含表头),点击顶部菜单栏「数据」→「从表格/区域」,确认弹窗中「我的表格有标题」已勾选,点击「确定」进入Power Query编辑器。
- 在编辑器里,选中
Omschrijving列,点击「转换」→「逆透视列」→「逆透视其他列」。此时表格会自动转为3列:Omschrijving、属性(原列标题)、值(原单元格内容)。 - 筛选掉空白行:点击
值列的筛选按钮,取消勾选「(空白)」,点击「确定」。 - 调整列顺序:按住
属性列拖到最左侧,接着是Omschrijving,最后是值。 - 点击「主页」→「关闭并上载」,结果会自动导入到新工作表,就是你要的格式。
方法二:公式法(适合数据量较小的场景)
假设原始数据在Sheet1的A1:I9区域,在新工作表Sheet2中输入以下公式:
- A1(列标题):
=INDEX(Sheet1!$B$1:$I$1,INT((ROW(A1)-1)/9)+1) - B1(Omschrijving内容):
=INDEX(Sheet1!$A$2:$A$10,MOD(ROW(A1)-1,9)+1) - C1(数值):
=INDEX(Sheet1!$B$2:$I$10,MOD(ROW(A1)-1,9)+1,INT((ROW(A1)-1)/9)+1)
下拉填充这三个公式,直到出现错误值,最后删除C列为空白或错误的行即可。
内容的提问来源于stack exchange,提问作者Lars Nijkamp
相关产品推荐
相关产品推荐

