excel行列转置有四种方法:一、transpose函数静态转置,需选对目标区域并用ctrl+shift+enter确认;二、index+row+column构建动态单向转置,支持拖拽扩展;三、sequence+index实现全自动二维动态转置,仅限microsoft 365/excel 2021;四、filter+transpose实现带条件的动态转置,自动响应数据变化。

如果您希望在Excel中将行数据转换为列数据,或将列数据转换为行数据,TRANSPOSE函数是实现静态转置的核心工具;而结合其他函数构建动态行列转置公式,则可响应源区域变化自动更新结果。以下是具体使用方法:
一、基础TRANSPOSE函数的静态转置操作
TRANSPOSE函数属于数组函数,用于将单元格区域的行列方向互换,输出结果为一个垂直或水平数组,需通过数组输入方式确认。该函数本身不具动态性,但结构稳定、执行效率高。
1、选中目标区域,其行列尺寸必须与源区域的列行数完全一致。例如源区域为3行5列,则目标区域需选中5行3列。
2、在编辑栏中输入公式:=TRANSPOSE(A1:E3),其中A1:E3为待转置的原始区域。
3、按Ctrl+Shift+Enter三键组合完成数组公式的输入(Excel 365或Excel 2021用户可直接按Enter)。
4、转置结果将一次性填充至所选区域,且各单元格内容与源区域严格对应,修改源数据后结果同步更新。
二、使用INDEX+ROW+COLUMN构建动态单向转置公式
该方法无需预选目标区域,支持向下或向右拖拽扩展,适用于源数据行数或列数可能变动的场景。公式通过行列索引动态定位源单元格,实现“随拉随算”的效果。
1、假设源数据位于A1:C10(3列10行),要在E1开始横向生成首行转置结果(即原第一行A1:C1变为E1:G1)。
2、在E1单元格输入:=INDEX($A$1:$C$10,COLUMN(A1),ROW(A1))。
3、向右拖拽填充至G1,此时COLUMN(A1)依次变为COLUMN(B1)、COLUMN(C1),返回1、2、3,对应提取原区域第1、2、3列第1行数据。
4、若需纵向展开全部10行转置结果,可在E2输入相同公式并向下拖拽至E10,此时ROW(A1)递增为ROW(A2)…ROW(A10),返回1至10,逐行提取原区域对应行首列值。
三、利用SEQUENCE函数实现全自动二维动态转置(仅限Microsoft 365及Excel 2021)
SEQUENCE函数可生成连续整数数组,配合INDEX可构造出完整行列坐标矩阵,从而在单个单元格内输出整个转置区域,无需手动拖拽,且源区域尺寸变更时结果区域自动适应。
1、确认源区域地址,例如设为B2:D5(3列4行)。
2、在目标起始单元格(如F2)输入:=INDEX($B$2:$D$5,SEQUENCE(COLUMNS($B$2:$D$5),,1,1),SEQUENCE(1,ROWS($B$2:$D$5),1,1))。
3、该公式中,第一个SEQUENCE生成列数×1的垂直序列(即1,2,3),作为行号索引;第二个SEQUENCE生成1×行数的水平序列(即1,2,3,4),作为列号索引。
4、公式执行后,F2:H5区域将自动填充转置结果,且当源区域扩展为B2:E6时,只需调整公式中$B$2:$D$5为$B$2:$E$6,输出区域会同步变为F2:I6。
四、借助FILTER+TRANSPOSE实现带条件的动态转置
当需要仅转置满足特定条件的数据行(如非空、大于某值、含指定文本)时,可先用FILTER筛选子集,再嵌套TRANSPOSE完成方向转换。此组合在数据清洗与报表生成中尤为实用。
1、设原始数据在A2:B20,其中A列为分类标识,B列为数值,现需转置所有A列等于“销售部”的B列数值。
2、在D2单元格输入:=TRANSPOSE(FILTER(B2:B20,A2:A20="销售部"))。
3、若结果需横向排列,该公式直接输出一行;若需纵向排列,外层改用TRANSPOSE(FILTER(...))并按数组方式输入,或改用INDEX+SEQUENCE组合重构方向。
4、当A列新增“销售部”记录时,FILTER自动捕获新行,TRANSPOSE实时更新转置结果,全程无须干预。










