Excel學習筆記 行列轉換

2022-09-17 13:27:11 字數 2471 閱讀 9272

目錄一行(列)轉多行多列

功能

以指定的(單元格或相連單元格區域的引用)為參照系,通過給定偏移量得到新的引用。返回的引用可以是乙個單元格也可以是乙個區域(可以指定行列數,即陣列)。

語法

=offset( reference, rows, cols, [height], [width])

=offset(參照單元格, 行偏移量, 列偏移量, 返回幾行, 返回幾列)

引數解釋

最後2個引數不指定時,預設返回1行1列。

例項

輸入公式:=offset(a1,1,1,1,1) -- 返回a1的右下角單元格

輸入公式:=sum(offset(a1,1,1,2,2)) -- 返回a1的右下角2*2單元格,並進行求和

可通過f9按鈕檢視資料。

另外,也可以通過選定2*2單元格,再進行輸入公式,按住三鍵ctrl+shift+enter進行陣列計算。

三鍵(ctrl+shift+enter) -- 陣列計算

複製源資料--右鍵--選擇性貼上--勾「轉置」,確定。

$表示絕對引用,可按f4直接切換。

方法

一、方法二只能一次性轉置,後期無法隨時更新資料。

結合offset函式與row/column函式進行巢狀使用,即可實現。

1.一列轉多列多行(或多行多列)

①先列後行,比如一列資料轉為四列多行。

在目標區域第乙個單元格輸入以下公式,然後向右拉到第4列,再下拉直到出現空白。

=offset($a$1,column(a1)-1+(row(a1)-1)*4,)&""

②先行後列,比如一列資料轉為四行多列。

在單元格輸入以下公式,然後向下拉到第4行,再右拉直到出現空白。

=offset($a$1,row(a1)-1+column(a1)*4-4,)&""

2.一行轉多列多行(或多行多列)

①先列後行,比如一行資料轉為三列多行。

同樣,此例在單元格輸入以下公式,然後向右拉到第3列,再下拉直到出現空白。

=offset($a$1,,(column(a1)-1)+(row(a1)-1)*3,)&""

②先行後列,比如一列資料轉為三行多列。

在單元格輸入以下公式,然後向下拉到第3行,再右拉直到出現空白。

=offset($a$1,,(row(a1)-1)+(column(a1)-1)*3,)&""

3.多行多列轉一列

①先向下引用源資料,再向右引用。

單元格輸入以下公式,下拉直到出現空白。

=offset($a$1,mod(row(a6),6),row(a6)/6-1,)&""

②先向右引用源資料,再向下引用。

單元格輸入以下公式,下拉直到出現空白。

=offset($a$1,row(a5)/5-1,mod(row(a5),5))&""

4.多行多列轉一行

多行多列資料轉成單行的情況實際應用中應該不算常見,不過這裡也一併整理了,若需要可直接套用公式。

①先向右引用源資料,再向下引用。

單元格輸入以下公式,右拉直到出現空白。

=offset($a$1,int(column(f1)/6)-1,mod(column(f1),6))&""

②先向下引用源資料,再向右引用。

單元格輸入以下公式,右拉直到出現空白。

=offset($a$1,mod(column(e1),5),int(column(e1)/5)-1)&""

①row()返回行號,比如row(a2)=2;

②column()返回列號,比如column(f1)=6;

③mod()求餘數,比如mod(1,5)=1,即1÷5餘數是1,再比如mod(5,5)=0,因為5被5整除,沒有餘數;

④上面每個公式最後都加了&"",作用是把引用空單元格得到的0去掉,顯示為空白;

⑤上面公式中用到不少逗號,(英文半形狀態下),不能隨意省略或移動位置,每乙個小豆芽都有它存在的意義。

參考鏈結1:excel中offset函式的使用方法

參考鏈結2:excel行列互轉的三種方法

參考鏈結3:excel中一列(行)轉多行多列或多行多列轉一列(行)

層次查詢 行列轉換學習筆記

level 語法 select level column,expr.from table where condition start with condition connect by prior column1 column2 column1 prior column2 舉例 按照級別對emp員工...

Oracle 行列轉換筆記

工作中經常會用到這個場景,但是發現每次都會忘記要怎麼做,這裡特將oracle進行行轉列進行乙個歸納總結 使用pivot進行動態行轉列 首先建立乙個測試表course create table ps t ly test course id number 11 primary key,name varc...

mysql行列轉換 mysql行列轉換

1.一維轉二維 上圖為成績表中資料,現希望將資料轉換為下圖。靜態 轉化為二維表後的列名及列數是確定不變的,本例中即course只有數學 語文 英語這三門課。select s name,max if course 數學 score,0 as 數學,max if course 語文 score,0 as...