如何将交叉引用表转换为行列组合的三列格式?Excel专用工具/函数咨询
如何将交叉引用表转换为行列组合的三列格式?Excel专用工具/函数咨询
嗨,我来帮你搞定这个转换需求!把交叉引用表转成「行标签+列标签+对应值」的三列格式,Excel里有好几种实用的方法,我给你拆解清楚:
方法一:Power Query(强烈推荐,适合大数据量)
这是Excel里处理这类格式转换最省心的工具,操作一次后还能重复使用:
- 选中你的交叉表全部数据(包括表头行和最左列的行标签)
- 切换到「数据」选项卡,点击「从表格/区域」(旧版Excel可能在「获取和转换数据」分组里找「从表格」)
- 进入Power Query编辑器后,选中所有列标题列(就是除了最左列行标签之外的所有列)
- 切换到「转换」选项卡,点击「逆透视列」(如果只选了部分列,就选「逆透视其他列」)
- 这时数据已经自动变成三列了,默认列名是「属性」「值」这类,你可以双击列名改成自己需要的名称
- 最后点击「关闭并上载」,转换好的表格就会出现在新工作表里啦
方法二:公式组合(适合小数据量,无需额外工具)
如果你的表格不大,用公式组合也能快速搞定。假设你的交叉表:
- A列是行标签(A2:A100)
- B1:Z1是列标题
- B2:Z100是对应的值
可以在空白区域(比如D2、E2、F2)输入以下公式:
- 第一列(行标签):
=INDEX($A$2:$A$100,INT((ROW(D2)-2)/COLUMNS($B$1:$Z$1))+1) - 第二列(列标题):
=INDEX($B$1:$Z$1,MOD(ROW(E2)-2,COLUMNS($B$1:$Z$1))+1) - 第三列(对应值):
=INDEX($B$2:$Z$100,INT((ROW(F2)-2)/COLUMNS($B$1:$Z$1))+1,MOD(ROW(F2)-2,COLUMNS($B$1:$Z$1))+1)
输入完成后,选中这三个单元格一起下拉,直到出现错误值就停止,最后删掉带错误的行就完成了。
方法三:数据透视表逆透视(快捷替代方案)
如果你对透视表更熟悉,也可以用这个方法:
- 先复制一份你的交叉表数据,避免破坏原表
- 选中复制的数据,插入数据透视表到新工作表
- 在透视表字段列表里,把行标签列拖到「行」区域,所有列标题拖到「列」区域,数值列拖到「值」区域
- 右键点击透视表中的任意值单元格,选择「显示值为」→「无计算」,确保显示原始数值
- 右键点击行标签列的单元格,选择「展开/折叠」→「展开整个字段」(如果有分组的话)
- 最后选中整个透视表,复制后右键选择性粘贴为「值」,再整理成三列格式即可
总结一下:大数据量优先用Power Query,高效还能一键刷新;小数据量用公式或者透视表都很方便,根据你的习惯选就行~
备注:内容来源于stack exchange,提问作者M. G.
相关产品推荐
相关产品推荐

