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函數 |