Excel多行转多列

时间:2021-09-05 10:28:44

                                                                               通过代码将Excel中的行数据批量转换为列数据
一、在显示转换后的首个单元格内输入以下代码:
=OFFSET($A$1,COLUMN(A1)+CEILING(ROW(A1),10)/10*4-5,MOD(ROW(A1)-1,10))

然后公式往右、往下拖动。




公式具体解释:

•OFFSET函数是偏移函数,实现对单元格A1,进行偏移。


•偏移行数,是原来的列数(因为要转置)。


COLUMN(A1)表示求出原来的列号

CEILING(ROW(A1),10)/10*4-5表示对原来行号进行按10的倍数,进行取整(向上取整)

然后除以10乘以4减去5,这样就得到新的列号的偏移量。

用这个偏移量,加上之前得到的原来的列号,就得到现在需要偏移的行数。




•偏移列数,是原来的行数,取余数(因为是分段进行转置)


ROW(A1)-1是表示计算单元格行号减去1

然后使用余数函数MOD,对其取模10的余数,这样就得到实际偏移的列数。