如何將excel多行多列按橫向輸出變?yōu)橐涣校?/p>
我來(lái)試著回答一下:實(shí)例問(wèn)題看起來(lái)比較簡(jiǎn)單,其本質(zhì)是個(gè)列轉(zhuǎn)行的問(wèn)題,只是結(jié)果展示依然以列來(lái)標(biāo)識(shí)而已。以下的回答適用于excel的行轉(zhuǎn)列處理。
1、簡(jiǎn)單的行列轉(zhuǎn)換,使用Excel提供的復(fù)制—>選擇性粘貼—>轉(zhuǎn)置即可。這種適用于關(guān)鍵列中的沒(méi)有相同數(shù)據(jù)的,如:
2、復(fù)雜一點(diǎn)的,使用Excel提供公式來(lái)解決:
A、確定新的列頭,比如題目中的A1/A2/A3是新的列頭:
-復(fù)制原有數(shù)據(jù)列,粘貼到任意空白位置,刪除重復(fù)項(xiàng),得到?jīng)]有重復(fù)值的列頭
-將新的列頭值從列轉(zhuǎn)為行(參考1中的步驟)
B、第二步需要做的是基于新的列頭的值(如“A1”),查找原來(lái)的數(shù)據(jù)中,與“A1”相匹配的值,如“asd”,并把“asd”填到“A1”的下方;為了方便演示,我將數(shù)據(jù)整理成如下形式,下面將使用Excle的行列標(biāo)引來(lái)表示公式:
寫(xiě)公式前的提醒:最后使用數(shù)組公式(有大括號(hào)包起來(lái)),寫(xiě)好公式后使用Ctrl+Shift+Enter完成輸入,分步解讀中直接說(shuō)明邏輯
C、現(xiàn)在在D2格子中開(kāi)始一步一步寫(xiě)公式:
-在B1:B5中查找D1,使用if公式,如果相等,則返回BI:B5的行號(hào),否則任意返回一個(gè)值(盡量大一點(diǎn),方便后面使用small函數(shù)):if($B$1:$B$5=D$1,row($B$1:$B$5),1000)
對(duì)D2來(lái)說(shuō),上述公式返回的值為:{1,1000,1000,1000,1000}
-用small函數(shù)將if函數(shù)得到的一串值進(jìn)行升序排列,并和B1對(duì)應(yīng)的行號(hào)做對(duì)比,鎖定對(duì)應(yīng)的行號(hào):small(if($B$1:$B$5=D$1,row($B$1:$B$5),1000),row(B1))
對(duì)D2來(lái)說(shuō),上述公式返回的值為:small({1,1000,1000,1000,1000},1)=1
-基于上一步找到的行號(hào),在A1:A5中查找對(duì)應(yīng)的值,使用index函數(shù):
index($A$1:$A$5,small(if($B$1:$B$5=D$1,row($B$1:$B$5),1000),row(B1)))
對(duì)D2來(lái)說(shuō),上述公式返回的值為:index($A$1:$A$5,1)=asd
D、基于C步驟的解讀,可以看到最終D2的公式為:{=index($A$1:$A$5,small(if($B$1:$B$5=D$1,row($B$1:$B$5),1000),row(B1)))}
其中{}是錄入公式結(jié)束后,按Ctrl+Shift+Enter得到的:
E、拖拽光標(biāo)填充剩下的格子,自動(dòng)得到計(jì)算結(jié)果。對(duì)于#REF!部分,使用“查找和選擇”中的定位功能,定位后直接刪除就可以:
F、對(duì)于上述過(guò)程,可以使用Excel自帶的“公式求值”功能完成每一步的檢查:
End.