牛X的行列互轉公式【Excel分享】

  牛X的行列互轉

一、多行多列轉一列(4列轉1列)

1、公式截圖

牛X的行列互轉公式【Excel分享】

2、公式

=INDEX($A$1:$D$7,INT(ROW(A4)/4),MOD(ROW(A4),4) 1)&”

3、公式解釋

index函數這裡用了3個參數的格式,第1參數數據源;第2參數返回數據源那一列?;第3參數:返回數據源那一列?

index函數的第2參數下拉公式要產生循環的4個1,4個2,4個3,用這個函數=INT(ROW(A4)/4),row(A4)返回4,除以4,再取整

index函數的第3參數的列下拉公式要產生循環的1,2,3,4,用這個MOD(ROW(A4),4) 1,MOD(ROW(A4),4)產生循環的0;1;2;3,mod函數是取餘函數,所以還要加1,這樣便產生了12;3;4

二、一列轉多行多列(1列轉4列)

1、公式截圖

牛X的行列互轉公式【Excel分享】

2、公式

=IF(COLUMN(A1)<=4,INDEX($A$1:$A$40,ROW(A1)*4-4 COLUMN(A1))&”,”)

3、公式解釋

這個公式難在如何產生下圖這樣的數據,下拉,右拉得到C1:F3這種數據,如果你會這個,這個題就解出來了

牛X的行列互轉公式【Excel分享】

下拉公式一行時,行就要在原來的基礎上加4了,所以ROW(A1)*4,為什麼還要減掉4呢?因為第1列不要加4,直接加上列序號1,2,3,4;得到公式=ROW(A1)*4-4 COLUMN(A1)

最後用index函數,由於只有一列,所以index函數要2個參數就可以了INDEX($A$1:$A$40,ROW(A1)*4-4 COLUMN(A1))

有的朋友會問,為什麼後面還要&”,這是為了屏蔽0值

有的朋友又會問, 為什麼還要加個if判斷,COLUMN(A1)<=4是為了右拉超過4列會報錯,因為我們這裡是1列轉多行4列