在實際工作中,有時我們需要將EXCEL兩列數值的內容合併成一列連貫的內容,最簡單的做法就是用連結符「&」連結兩個單元格,下圖,A列和B列是EXCEL常用詞語中英文對照表的部分內容,若想A、B兩列的內容同時顯示在一列當中,我們只要在D4單元格中輸入=A2&B2公式就OK了。
如果,我們還想把A、B兩列的內容依次在同一列中顯示,有沒有解決的辦法呢?
D2單元格中輸入以下公式,向下複製至單元格顯示空白為止。
=OFFSET($A$2,(ROW(A1)-1)/2,MOD(ROW(A1)-1,2))&""
下面,我們對這個公式的運行邏輯作一個梳理:
公式以「(ROW(A1)-1)/2」部分的計算結果作為OFFSET函數的行偏移參數,在D2單元格中的計算結果為0。ROW函數使用了相對引用,在公式向下複製時計算結果依次為了0、0.5、1、1.5…從0開始構成了一個步長值為0.5遞增序列。OFFSET函數對參數會自動去尾取整,因而,ROW函數生成的序列在OFFSET中的作用相當於0、0、1、1…也就是說,公式每向下複製兩行,OFFSET偏移的行數增加1。
「MOD(ROW(A1)-1,2」部分的計算結果作為OFFSET函數列偏移參數,在D2單元格中的計算結果為0。在公式向下複製時計算結果依次為0、1、0、1。。。即從0開始構成了一個0和1的循環列。
用OFFSET函數以A2單元格為基點,使用ROW函數和MOD函數構建的有規律的序列作為行、列的偏移量,就完成了數據轉置。如果OFFSET函數返回的引用為空單元格,公式結果將返回0,&" "部分就是用於屏蔽無意義的0值。