转置行列数据并可实时更新

实务中,经常碰到需要将横向数据转换为竖式排列的问题,如图所示:

常见的方法有选择性粘贴-转置、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列。


实际操作可在公众号(不正经会计师)后台回复:数据转置,提取文中所用表格。

你可能感兴趣的:(转置行列数据并可实时更新)