Excel中如何转置多行并拼接表头与行名生成新列名
多行数据转置为拼接列名的单行表格公式方案
原始数据
| duration | NJ | NY | NV |
|---|---|---|---|
| 30daynew | 3 | 5 | 10 |
| 30dayrepeat | 35 | 55 | 5 |
| 30daysubscribe | 50 | 90 | 9 |
目标数据
| NJ-30daynew | NJ-30dayrepeat | NJ-30daysubscribe | NY-30daynew | NY-30dayrepeat | NY-30daysubscribe | NV-30daynew | NV-30dayrepeat | NV-30daysubscribe |
|---|---|---|---|---|---|---|---|---|
| 3 | 35 | 50 | 5 | 55 | 90 | 10 | 5 | 9 |
Google Sheets 实现公式
生成拼接表头
在目标区域的首个单元格输入:
=FLATTEN(ARRAYFORMULA(B1:D1 & "-" & TRANSPOSE(A2:A4)))
TRANSPOSE(A2:A4)将左侧duration列转置为横向B1:D1 & "-" & TRANSPOSE(A2:A4)完成城市名与duration的拼接FLATTEN将二维拼接结果展平为单行表头
生成对应数据行
在表头下方的单元格输入:
=FLATTEN(TRANSPOSE(B2:D4))
TRANSPOSE(B2:D4)转置原始数据区域FLATTEN展平为单行数据
Excel 365/2021+ 实现公式
生成拼接表头
在目标区域的首个单元格输入:
=TOROW(B1:D1&"-"&TRANSPOSE(A2:A4))
TRANSPOSE(A2:A4)转置duration列B1:D1&"-"&TRANSPOSE(A2:A4)拼接列名与行标识TOROW将二维数组转换为单行表头
生成对应数据行
在表头下方的单元格输入:
=TOROW(TRANSPOSE(B2:D4))
TRANSPOSE(B2:D4)转置原始数据区域TOROW转换为单行数据
内容的提问来源于stack exchange,提问作者Polk011
相关产品推荐
相关产品推荐

