利用OFFSET+COLUMN+ROW这3个函数组合,我们可以将多行表格转成多列表格。
下图中,将B2:C10多行的单元格区域转成B12:J13多列的单元格区域。
具体操作步骤如下:
1、选中B12单元格,在编辑栏中输入公式:=OFFSET($B$2,COLUMN(B2)-2,ROW(B2)-2)&"",按回车键回车。
2、将公式向右填充至J12单元格,向下填充至J13单元格即可。
3、公式解析。
(1)COLUMN(B2):
COLUMN函数的功能是返回一个引用的列号。
COLUMN(B2)的意思是返回B2单元格所在列的列号,为2。当公式向右填充时,B2会变成C2、D2...,列号会依次递增。当公式向下填充时,B2会变成B3、B4...,列号不变。
(2)ROW(B2):
ROW函数的功能是返回一个引用的行号。
ROW(B2)的意思是返回B2单元格所在行的行号,为2。当公式向右填充时,B2会变成C2、D2...,行号不变。当公式向下填充时,B2会变成B3、B4...,行号会依次递增。
(3)=OFFSET($B$2,COLUMN(B2)-2,ROW(B2)-2):
OFFSET函数的功能是:以指定的引用为参照系,通过给定偏移量返回新的引用。
这里的$B$2就是参照系,COLUMN(B2)-2返回的结果为0,ROW(B2)-2返回的结果为0,代入公式的:=OFFSET($B$2,0,0),该公式的意思是:以B2单元格为参照系,向下移动0行,向右移动0列,也就是没移动,所以是B2单元格本身的内容“产品编号”。当公式填充到C3单元格时,公式变成:=OFFSET($B$2,1,0),该公式的意思是:以B2单元格为参照系,向下移动1行,向右移动0列,所以是B3单元格本身的内容“PCD00001”,以此类推。
(4)=OFFSET($B$2,COLUMN(B2)-2,ROW(B2)-2)&"":
公式后面使用连接符(&)与空字符串("")连接,有2个作用:当返回的数据是数值型时,加上&"",变成了文本型数据;当返回是空单元格数据时,比如当公式右拉填充至K12单元格时,公式=OFFSET($B$2,9,0),返回的结果是0,加上&"",就能把0屏蔽掉,显示为空。
4、完整的动图演示如下。
今天就跟大家分享到这里,这篇文章如果对您有帮助!