close

小夥伴們好啊,今天給大家帶來的是一個用函數實現行列轉換的技巧。

如下圖所示,是一份員工名單:

這個表中的姓名只有一列,卻有40多行。打印之前,需要將A列姓名轉換為適合打印的5列多行。

接下來咱們就說說用函數公式如何來實現這樣的效果。

D2單元格輸入以下公式,向右向下複製:

=INDIRECT("a"&5*ROW(A1)-4+COLUMN(A1))&""

思路解析:

「5*ROW(A1) -4+COLUMN(A1)」部分,用於得到有規律的序列值,起始計算結果為2。

公式向下複製填充時ROW(A1)依次變為ROW(A2)、ROW(A3)……,計算結果分別為7、12……,即生成步長值為5的自然數序列。

公式向右複製填充時COLUMN(A1)依次變為COLUMN(B1)、COLUMN(C1)……,計算結果分別為3、4……即生成步長值為1的自然數序列。

這部分的計算結果與字符"a"連接成一個單元格地址「An」,最後用INDIRECT函數返回文本字符串所指定的引用,得到相應單元格的內容。

公式最後使用&"",目的是為了屏蔽在引用空白單元格時返回的無意義的0值。

使用Excel 2021或者是Office 365的同學,公式就簡單多了:

C2輸入以下公式,按回車即可:

=INDEX(A:A,SEQUENCE(500,5,2))&""

SEQUENCE是Office 365中特有的函數,專門用於生成序列值數組。常用語法為:

=SEQUENCE(行數,[列數],[初始值],[步長])

先使用SEQUENCE函數生成一個500行、5列,並且從2開始的序號,然後用INDEX函數從A列返回對應位置的內容。

你學會了嗎?

圖文製作:周慶麟

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()