前兩天小編為令人煩惱的文本處理寫了一個SplitText,解決了拆分的煩惱,今天我們再來盤點一下文本的合併同類型,逆向拆分問題(再談)
閱讀前,提醒一下,本文涉及知識較多,全程原創乾貨,信息量爆炸,難度較大。請先洗把臉,倒杯茶,靜心閱讀,如閱讀過程中,有頭疼、嘆氣、呆滯等不適,請及時收藏,慢慢理解(我是認真的~),想要全部吃透,需要特別「肝」!
小二,上菜!
上錯了,小二,上水果,尤其是「瓜」,多來點!
先說合併,再談拆分
合併同類項,效果先看一下,是不是很熟悉,這個需求很常見!
先說說函數法吧,昨天發的投票,目前來看大家偏愛函數較多,還沒投的可以投一下!
篇幅問題,我們採用簡述,需要詳解解析,我們另出文章或視頻。
函數方法,我們分兩種,一種是通用版本,一種是高版本新出的函數!
通用函數法
函數圈子,喜歡叫做「一勺匯」,下次別人說起,你應該知道不是,咱都是見過世面的!
公式:=MID(SUBSTITUTE(PHONETIC(OFFSET($A$1,MATCH(D2,$A$2:$A$16,),,COUNTIF(A:A,D2),2)),D2,"/"),2,99)
公式簡述:
OFFSET函數,用於找到每一類的區域,使用PHONETIC直接合併
最後使用SUBSTITUTE,把我們的類別替換成你需要的分隔符,由於首列是類別,會多一個分隔符,MID用於容錯次問題
要點提示:
1、PHONETIC只能合併文本,其中如果有數值,需要先轉文本,否則失敗!
2、每個類別需排序,亂序無果
新函數法
2016及365新出了幾個文本函數,其中TextJoin和Cancat算是一個亮點,小編這裡未激活對應的版本,不過WPS已同步出現(功能基本一致),這裡我們在WPS中給大家演示一下!
公式(數組):=TEXTJOIN("/",TRUE,IF($A$2:$A$16=D2,$B$2:$B$16,""))
公式簡述:TEXTJOIN(分隔符,是否忽略是文本,需要連接的字符串)
第三參數,判斷是否和合併類別一致,一致返回名稱,否則返回空,第二參數忽略空,結果OK
要點提示:基礎函數特性,數據可亂序,這點強於通用函數做法
前兩天的SplitText,很多小夥伴,就留言PQ不香嗎?好像不PQ一下,總感覺缺少點啥,好在小編正好PQ也懂點皮毛,今天我們就讓他完整一下吧!
PQ函數法
上Power Query(PQ)演示版本:2016(自帶),其他版本:百度安裝插件
PQ函數法(PQ不熟的小夥伴,可簡單了解跳過)
PQ函數公式:= Table.TransformColumns(Table.Group(源,"類別",{"合併",each [名稱]}),{"合併",each Text.Combine(_,"/")})
函數簡述:Table.Group按照類別分組,使用Text.Combine可以實現按照指定分隔符合併對應的List文本
要點提示:Table.Group可以全局分組也可以局部分組,所以PQ中我們也可以亂序,這裡用的全局分組
當然PQ函數不熟的小夥伴,也可以直接手動操作菜單,也是OK的
PQ技巧操作法
PQ技巧操作(動畫演示):
過程中我們使用空格先合併,是為了使用修整功能,刪除收尾空格,然後替換你需要的分隔符,如果使用函數Text.Combine則不考慮
VBA法
當然,我們也可以使用VBA處理,也不是什麼難事
這裡我們大概寫一下,本次就不寫自定義函數了,有需要,後期我們再補充!
數組+字典的寫法
小結:
這樣一個常見問題,我們為什麼要講解這麼多方法,為了讓你面對不同的場景有更多的選擇,可能對於合併小夥伴來說,只會其中的一兩種,或者有的根本沒聽說過,但是這會大大擴展你的思路。
最後,古人云:養成習慣,點讚「在看」!See You
這裡是【易辦公 早下班】的 Excel辦公實戰
--THE END--