在Excel表中,有時我們需把單列的數據轉換成多行多列的數據,如下圖1樣式:
例表中的A列為從「A~Z」26個英文字母,當然也可以為其他類型的數值,這裡只是舉例。區域「C1:G6"為單列數據轉換成功後的效果。如果數據量不大,我們當然可以使用」笨「方法,一個一個的來回複製、粘貼,要是數據量大了,是不是也頭大了?
今天,我就推薦給各位一個簡便快速的方法,使用Excel的函數INDIRECT,只需一拖一拉就可完成,幾秒鐘的事,快速準確!
我們先來認識一下INDIRECT函數。此函數返回由文本字符串指定的引用。立即對引用進行計算,並顯示其內容。
語法
INDIRECT(ref_text, [a1])
參數:
Ref_text 必需。 對包含 A1 樣式的引用、R1C1 樣式的引用、定義為引用的名稱或對單元格的引用作為文本字符串的單元格的引用。
A1 可選。 一個邏輯值,用於指定包含在單元格 ref_text 中的引用的類型。
如果 a1 為 TRUE 或省略,ref_text 被解釋為 A1-樣式的引用。
如果 a1 為 FALSE,則將 ref_text 解釋為 R1C1 樣式的引用。
我們現在初步了解了INDIRECT函數的語法和使用參數,下面我們就來看單列數據是怎麼轉換成多行多列數據的,先看下圖2的公式:
我們把這條公式填入C1單元格裡,看一下該公式裡的參數,a1參數已忽略,ref_text參數為:"A"&5*ROW(A1)-5+COLUMN(A1),
公式中的「5」表示要生成的表格為5列,ROW(A1)返回的值為「A1」所在的行號為1,同理COLUMN(A1)返回的值為「A1」所在的列號為1,通過四則運算得出ref_text的值為「A1",那麼INDIRECT("A1")=A,如下圖3
然後,我們按住滑鼠左鍵按下圖4的操作方法,先右拉5列,再往下拉,直到出現」0「值就完成了轉換。是不是很簡單?這公式大家可以直接複製來用,只需修改列數值就行。
EXCEL使用if函數,只需輕輕一拉即可自動匯總同類項的值
EXCEL一個函數解決跨表引用計算的問題