當前位置: 妍妍網 > 辦公

新同事發來一個Excel客戶資訊表,氣的想辭職!結果寫了一個萬能提取公式!

2024-06-17辦公

小明的新同事昨天發來的一個客服資訊表,氣的小明想辭職!

這是一個只有一列的員工資訊表(如下圖A列),內容極其混亂。要求提取出收貨人、手機號和地址(如下圖BCD列)

  • 有的沒聯系人

  • 有的號碼前沒有手機,有的是手機,有的是手機號

  • 有的分隔符是分號,有的是逗號

  • 收貨人、手機號和地址的前後順序也不一致。

  • 可以有不少同學想試試Ctrl + E,蘭色就替你們試一下最簡單的手機號:

    放棄幻想,小明只能想法寫公式,結果還真寫出來一個萬能提取公式。

    =LET(X,TEXTSPLIT(IF(COUNTIF(A3,"*收貨人*")=0,"收貨人: "&A3,A3),{",","收貨人","地址",":","手機","手機號"},,1),SORTBY(X,LEN(X),1))

    是不是被長長的公式嚇到了?嘿嘿,別怕,等蘭色把整個公式思路解析後就會明白原理,相們對於新手來說肯定會有很多收獲的。

    思路解析:

    自從textsplit函式問世,拆分字元變得無比簡單。本例也不例外,也要用到它。但問題是有的資訊少了收獲人,所以需要補齊(如果缺其他項,同樣方法)

    =IF(COUNTIF(A3,"*收貨人*")=0,"收貨人: "&A3,A3)

    註:收獲人後 個空格(一般人名最多4個字)

    接下來就可以用textsplit函式拆分了

    =TEXTSPLIT(IF(COUNTIF(A3,"*收貨人*")=0,"收貨人: "&A3,A3), {",","收貨人","地址",":","手機","手機號"} ,,1)

    註:大號括{ }內是所有可能的拆分符。

    新問題來了,拆分出來的是亂序的。這時該sortby出場了,利用收貨人、手機號和地址的字串長度進行排序。最終公式為:

    =LET( X ,TEXTSPLIT(IF(COUNTIF(A3,"*收貨人*")=0,"收貨人: "&A3,A3),{",","收貨人","地址",":","手機","手機號"},,1), SORTBY( X ,LEN( X ),1) )

    註:因為sortby要兩次使用拆分後的內容,為了簡化公式,用定義名稱(x)的函式 LET

    蘭色說 :雖然蘭色進行了說明,估計不是有很多同學看不太懂公式的含義,原因是大家對新函式沒見過或不熟悉。上周六介紹了 let、Lambda 等4個新函式用法( 教程也同步更新到了蘭色的函式大全大教程中 ),本周日上午蘭色將大家繼續學習新函式的用法,想學的點下面預約

    如果你沒時間看直播或想看視訊講解,可以購買蘭色的四合一大全教程。 包括 Excel表格92個函式用法(更新至148集) 119個使用技巧 透視表從入門到精通50集 圖表從入門到精通185集 ,。詳情點選下方連結: