前兩天小編為令人煩惱的文本處理寫了一個SplitText,解決了拆分的煩惱,今天我們再來盤點一下文本的合并同類型,逆向拆分問題(再談) 閱讀前,提醒一下,本文涉及知識較多,全程原創(chuàng)干貨,信息量爆炸,難度較大。請先洗把臉,倒杯茶,靜心閱讀,如閱讀過程中,有頭疼、嘆氣、呆滯等不適,請及時收藏,慢慢理解(我是認真的~),想要全部吃透,需要特別“肝”!
小二,上菜! 上錯了,小二,上水果,尤其是“瓜”,多來點! 先說合并,再談拆分 合并同類項,效果先看一下,是不是很熟悉,這個需求很常見! 先說說函數法吧,昨天發(fā)的投票,目前來看大家偏愛函數較多,還沒投的可以投一下! 篇幅問題,我們采用簡述,需要詳解解析,我們另出文章或視頻。 函數方法,我們分兩種,一種是通用版本,一種是高版本新出的函數! 通用函數法 函數圈子,喜歡叫做“一勺匯”,下次別人說起,你應該知道不是,咱都是見過世面的! 公式:=MID(SUBSTITUTE(PHONETIC(OFFSET($A$1,MATCH(D2,$A$2:$A$16,),,COUNTIF(A:A,D2),2)),D2,"/"),2,99) 公式簡述: OFFSET函數,用于找到每一類的區(qū)域,使用PHONETIC直接合并 最后使用SUBSTITUTE,把我們的類別替換成你需要的分隔符,由于首列是類別,會多一個分隔符,MID用于容錯次問題 要點提示: 1、PHONETIC只能合并文本,其中如果有數值,需要先轉文本,否則失?。?/span> 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處理,也不是什么難事 這里我們大概寫一下,本次就不寫自定義函數了,有需要,后期我們再補充! 數組+字典的寫法 小結: 這樣一個常見問題,我們?yōu)槭裁匆v解這么多方法,為了讓你面對不同的場景有更多的選擇,可能對于合并小伙伴來說,只會其中的一兩種,或者有的根本沒聽說過,但是這會大大擴展你的思路。 最后,古人云:養(yǎng)成習慣,點贊“在看”!See You |
|
來自: Excel辦公實戰(zhàn) > 《待分類》