实务中,经常碰到需要将横向数据转换为竖式排列的问题,如图所示:
常见的方法有选择性粘贴-转置、TRANSPOSE数组公式,但都有相应的缺点。如选择性粘贴-转置不能实时更新,TRANSPOSE数组公式不能在转置后数据上修改。下面将依次讲解选择性粘贴-转置、TRANSPOSE数组公式转置的方法,并重点讲解如何利用index函数克服以上两种方法的缺陷,对行列数据进行转置。
一、选择性粘贴-转置
1、操作方法:
(1)选择需转置区域,复制(ctrl+C);
(2)选择放置位置,右键-选择性粘贴-转置
(3)完整动图如下:
2、缺点
不能保持实时更新,需要每次更新时转置一次。
二、数组公式
1、操作方法:
(1)选中需转置区域, 在公式栏输入=transpose($A$2:$F$8)
(2)同时按下ctrl+shift+enter三键,数组运算得出结果。
(3)完整动图如下:
延伸阅读:
相对引用变绝对引用:选择A2:F8单元格,并按住F4或者FN+F4,可变成绝对引用$A$2:$F$8。
2、缺点
(1)拖动时范围易出错:拖动的时候容易超出范围,同时按三键后才会出现错误提示,但又无法单独删除多余部分,只能重新操作。
(2)不能单独修改个别单元格公式
(3)不能套用单元格格式
三、利用index函数实时更新行列转置数据
1、操作方法:
(1)选择放置区域首个单元格, 在公式栏输入=INDEX($A$2:$F$8,COLUMN(A1),ROW(A1))
(2)向右向下拖动公式即可。
2、延伸阅读:
index函数:
index(array,row_num,column_num) ,其中array表示我们要引用的区域,row_num表示要引用的行数,column_num表示要引用的列数,最终结果就是区域内行列交叉处的内容。
COLUMN函数:COLUMN(reference), 得到Reference所在列。
ROW函数:ROW(reference), 得到Reference所在行。
运用:
COLUMN(B3)=2,ROW(B3)=3
由于需要将数据转置,所以将取得的列数作为index函数中的行,将取得的行数作为index函数中的列。
$A$2:$F$8为需要转置区域所在位置。
INDEX($A$2:$F$8,COLUMN(B3),ROW(B3))函数结合起来就表示定位到$A$2:$F$8区域中第2行第3列。
实际操作可在公众号(不正经会计师)后台回复:数据转置,提取文中所用表格。