Excel如何用函數將單列數據分成多列?

這樣的,不要那種自動排序什麼的方法,如圖,比如A列B列,以B列為條件,將所有B列中重複項為「粉塵」的A列B列數據放到D列E列中,將所有B列重複項為「雜訊」的數據放到G列H列。如何實現呢?
PS:只用函數來實現,因為我還有後續計算,不想用數據透視表。


公式:

=IFERROR(INDEX(OFFSET($A$1,,,COUNTA($A:$A)),SMALL(IF(OFFSET($B$1,,,COUNTA($A:$A))=D$1,ROW(OFFSET($B$1,,,COUNTA($A:$A))),2^20),ROW(A1))),"")

效果圖:

Warning!!Warning!!Warning!!
下面是餅乾小劇場時間…

為什麼要用數組公式?

- 能裝逼么?
- 不能…
- 哦,那我沒什麼好說的
- ╭( ̄▽ ̄)╯╧═╧
ε=ε= 鍵 ε=ε= 盤 ε=ε= 在 ε=ε= 飛 ε=ε= 舞 ε=ε=┌(; ̄◇ ̄)┘

- 真的只要寫一個公式么?
- 嗯哼 ( ? ?ω ?? )?
- 真的能自動排序/篩選/判斷么?
- 嗯哼 ( ? ?ω ?? )?
- 真的可以追加數據么?
- 嗯哼 ( ? ?ω ?? )?
- 我要學我要學!?ω?
- 會玩俄羅斯套娃么?(′?ω?`)
- (..??_??..)?

如何寫一長串別人看不懂又恰好能解決問題的數組公式?

這個問題要分成三個部分

一、如何解決問題?

解決問題幫數組沒啥關係,多半是基本功沒有掌握好(乛 з乛)
哎哎哎…別走啊…有!有套路!…說!我都說!_(:з」∠)_

構造判斷序列-排序-構造行號序列-取值

具體地說:
1、"=" 設置條件 C列 =C1="粉塵"
2、Row 取行號 D列 =Row()
3、IF 構造判斷序列 E列 =IF(C1,D1,2^20)
4、Small/Large 排序 F列 =SMALL($E$1:$E$12,D1)
5、Index/Offset 取結果 G列 =INDEX($A$1:$A$12,F1)

因為和數組沒關係加上我的懶癌又發作了就不展開了,結果如下圖:

可以看到再給G列套一個IfError就解決了題主的問題 (? ?? _ ?? )?

二、如何寫數組公式?

跟著我左手右手一個慢動作 ? (┌?。?)┌
1、玩俄羅斯套娃 OTZ Or2 orz
2、Ctrl + Shift + Enter

=IFERROR(INDEX($A$1:$A$12,SMALL(IF($B$1:$B$12=D$1,ROW($B$1:$B$12),2^20),ROW(B1))),"")

再對D1做一個下拉列表的話,你懂得!(? ?? _ ?? )?

(┘ ̄︶ ̄)┘

( ^ o ^ ) ( ^ o ^ ) ( ^ o ^ )

└( ̄︶ ̄└)

(/ ^ o ^ )/ (/ ^ o ^ )/ (/ ^ o ^ )/

咳咳…是時候展現真正的逼格了!( ?? .? ?? )?
三、如何讓別人看不懂
你只要在不使用表格和名稱的情況下稍微擴充一丟丟功能…

( ̄ε(# ̄)☆╰╮o( ̄皿 ̄///) 講人話!

還記得之前有說能追加數據么? (′?ω(# `)

- 把 Range 用 Offset 代替

這樣不管 A 列有多少數據都不用改公式:

=IFERROR(INDEX(OFFSET($A$1,,,COUNTA($A:$A)),SMALL(IF(OFFSET($B$1,,,COUNTA($A:$A))=D$1,ROW(OFFSET($B$1,,,COUNTA($A:$A))),2^20),ROW(A1))),"")

其他的像:

- 把欄位列數用 Match 代替:根據列欄位名定位列
- 使用 Indirect 引用:無視插入行或列對引用的影響

比如把類型也寫一個數組公式去重取出來
然後根據電腦的性能填充一下!( ?? .? ?? )?

懶癌患者的福音!
然後 7 秒之後你就不想看自己寫的公式了 ( ̄ー ̄ )

=IFERROR(INDEX(OFFSET($B$1,,,COUNTA($B:$B)),SMALL(IF(MATCH(OFFSET($B$1,,,COUNTA($B:$B)),OFFSET($B$1,,,COUNTA($B:$B)),0)=ROW(OFFSET($B$1,,,COUNTA($B:$B))),ROW(OFFSET($B$1,,,COUNTA($B:$B))),2^20),COLUMN(A1))),"")

Fin


推薦閱讀:

如何學好excel高級應用?
怎麼查找excel文件中包含前三位特定數字 後四位特定數字的電話號碼 中間四位不管 ?
怎樣從零基礎學習EXCEL?
Excel 有什麼好用的技巧,讓你相見恨晚?

TAG:MicrosoftExcel | Excel公式 | Excel函數 |