无需Power Query,用Excel单元格函数将含重复表头表格转无重复多列
用Excel函数实现重复表头表格转无重复多列组合(无需Power Query)
核心思路
利用UNIQUE()提取无重复的行、列表头,再通过序列函数生成所有表头组合,最后匹配原始数据完成转换。
步骤1:提取无重复表头
假设原始表格的行表头在A2:A10区域,列表头在B1:E1区域:
- 提取无重复行表头:在空白单元格(比如
F2)输入=UNIQUE(A2:A10),按回车后自动填充所有无重复行表头 - 提取无重复列表头:在空白单元格(比如
G1)输入=UNIQUE(B1:E1),按回车后自动填充所有无重复列表头
步骤2:生成所有表头组合
先计算无重复表头的数量:
- 无重复行表头数量:在空白单元格输入
=COUNTA(F:F)(假设F列仅包含提取的行表头),记为行总数 - 无重复列表头数量:在空白单元格输入
=COUNTA(G:G)(假设G列仅包含提取的列表头),记为列总数
接下来生成组合序列:
- 在空白列(比如
K2)输入序列函数:=SEQUENCE(行总数*列总数,1,1,1),生成从1到总组合数的连续序号 - 匹配对应行表头:在
L2输入=INDEX(F:F,INT((K2-1)/列总数)+2),下拉填充到所有行,自动对应每个组合的行表头 - 匹配对应列表头:在
M2输入=INDEX(G:G,MOD(K2-1,列总数)+1),下拉填充到所有行,自动对应每个组合的列表头
步骤3:匹配原始数据
在N2输入函数匹配原始表格中的对应数据:
=INDEX($B$2:$E$10,MATCH(L2,$A$2:$A$10,0),MATCH(M2,$B$1:$E$1,0))
下拉填充后,每个表头组合会自动匹配到原始表格中的对应数值。
注意事项
- 如果原始表格中存在同一行表头+列表头的重复项,
UNIQUE()提取的表头会自动去重,生成的组合不会重复;若需要汇总重复项的数据,可将INDEX()替换为SUMIFS()函数 - 函数中的单元格区域请根据你的实际表格范围调整
内容的提问来源于stack exchange,提问作者Chiao-ling Wang
相关产品推荐
相关产品推荐

