Excel行列互換,有哪些簡便方法?
看了大家的回答,提到了幾種解決思路,我這裡分享一個indirect函數實現方法。
案例:
怎麼把 A 列數據快速填充到黃色區域?按先行後列的習慣排列?
解決方案:
在黃色區域的第一行第一列輸入以下公式,向右向下拖動:
=IF(COLUMN(A1)<5,INDIRECT("A"&4*ROW(A1)-4+COLUMN(A1))&"","")
公式詳解:
1. INDIRECT(ref_text,[a1])
1) indirect 函數引用的是文本參數,加「」和不加「」的用法不同,比如下圖
=INDIRECT("a1"):文本引用,引用 A1 單元格所在的文本,即 b1
=INDIRECT(a1):地址引用, A1 單元格內的 b1 被當作地址,該地址的內容為 」excel"
* 如果各位看官有任何一門計算機語言的編程基礎,就比較容易理解了,加""相當於返迴文本值,不加相當於引用變數值。
2) [a1] 參數可選,為True或省略時,是常規的A1引用樣式,為FALSE時,則是R1C1引用樣式。
3) 回到本案例,INDIRECT("A"&4*ROW(A1)-4+COLUMN(A1))&"":
- 「4*ROW(A1)-4+COLUMN(A1)」部分的計算結果為 1,公式向下複製時,ROW(A1) 依次變為ROW(A2)、ROW(A3)…,計算結果分別為 5、9、13、17、21,就生成了一個步長為4的自然數序列。重要的是,COLUMN(A1)、COLUMN(A2)…的值在向下複製時,不變化!
- 公式向右複製時,COLUMN(A1)依次變為COLUMN(B1)、COLUMN(C1)…,計算結果分別為2、3、4,就生成了一個步長為1的自然數序列。而這時,ROW(A1)、ROW(B1)…的值在向右複製時,不變化!
- &"":是為了讓公式向下拖動到黃色區域以下時,返回空值,如果不加這段,空值區域就會顯示 0。
4) IF(COLUMN(A1)<5,..,""):
- 這段代碼是為了控制向右拖動最多 4 列,即不超過黃色區域,超過就返回空值。
- 如果不加這段代碼,向右拖動就會一直順序顯示數據列
在Excel中,如何進行行列間的相互轉換呢?今天我們就一起來看看這個問題吧。
一、行列互換利用「選擇性粘貼」功能,先複製表格,然後選擇「選擇性粘貼」,勾選「轉置」功能,就可以實現行列互轉。
我們可以先將每一列的內容都複製到剪貼板中,然後再進行粘貼。
也可以通過錯位引用的方法。
在A5單元格中輸入「=B1」,進行錯位引用,接複製A列中的所有數據,選擇「選擇性粘貼」中的數值,將公式轉換成數值,就可以將數據轉成一列了。
三、一列變多列同樣使用錯位引用的方法。在C1單元格中輸入「=C6」(C6為第二列開頭),向下向右填充公式,然後複製D1:G5區域,選擇「選擇性粘貼」,點擊數值。就能將一列變成多列。
四、函數轉換1、一行轉一列:
=INDEX(A$5:I$5,ROW(A1))
2、一列轉一行:
=INDEX($A1:$A9,COLUMN(A1))
3、一行轉多行:
先行後列:
=INDEX($A$1:$I$1,(ROW(A1)-1)*3+COLUMN(A1))
先列後行:
=INDEX($A$1:$I$1,(COLUMN(A1)-1)*3+ROW(A1))
舉例:批量行列互換整理數據
如下圖所示,有一張員工姓名表,現在需要對員工進行分組,總共分成三個組,每7人為一組。我們可能需要對姓名一部分一部分的進行轉置,如果重複「選擇性粘貼è轉置」的操作,將會浪費我們很多時間,有沒有更快的解決辦法呢?
【解決辦法】
遇見將一列數據改為多列時,我們通常採用函數進行整理,但寫起來比較麻煩,也不容易理解和變通。有時候使用查找替換的方法,可以帶來意想不到的效果。
【操作步驟】
1. 在目標單元格C2中輸入「&A2」。
2. 滑鼠放在單元格右下角,當滑鼠變成實心十字形時向右拖動兩個單元格,出現「&A3」「&A4」。
3. 同理輸入「&A5」「&A6」「&A7」。
4. 選中C2:E3,向下拖拽,顯示如下圖所示數據表格。
5. 打開「開始」è「查找和選擇」è「替換」(或者直接按下快捷鍵Ctrl+H),進行如下圖所示設置,單擊「全部替換」。
6. 我們希望看到的數據表完成了。
更多財稅職場學習資訊,關注秀財網
將excel的行列互換,是我們會經常遇到的操作。當然,如果數據少,憑著多年的Ctrl+C、Ctrl+V,行列互換不在話下,但如果數據量一多呢?我們該如何是好?
如下表,如果繼續添加姓名,表格將變得很長,非常不符合我們的閱讀習慣。
如果換一種方式顯示,看起來就舒服多了。
下面,我們就來探討一下,如何快速進行行列互換
第1種 -選擇性粘貼-
excel的粘貼非常強大,可以解決很多難題,有時間自習君將會專門寫一篇相關的文章。
其中選擇性粘貼就有轉置的功能,可直接實現行列互換
第2種 -TRANSPOSE-
其實,用函數實現excel行列互換的辦法有很多,但有一個函數就是為「行列轉置」而生——transpose函數。
transpose函數的語法為:transpose(array)
transpose函數只有一個參數array:要轉換的工作表區域。
這個函數名稱看起來很長,但因為參數少,操作起來並不難,具體可看GIF示範
注意:
1、首先要選擇一個區域用於顯示結果(區域大小要正確)
2、輸入函數後,按ctrl+shift+enter三鍵結束(由於這是一個數組公式,所以要按ctrl+shift+enter三鍵結束此公式,否則不能返回正確結果。)
用方法2有一個特點:自動生成的區域無法直接修改,源數據變更後,新區域會自動變更。
推薦閱讀:
※柱形圖配上趨勢箭頭,瞬間高大上
※當Excel遇上Echarts,Smartbi讓數據透視更美
※剛入門的小白用Python操作excel表格!使工作效率提升一倍不止!
※Excel插件_E靈7.2版,強大的製表輔助神器
※跟大仙兒學數據分析,從熟練Excel開始(一)