
假設有資料內容是有分隔符號
以下列為例,分隔符號是"-"
A-B |
AA-BB |
A-BB |
AA-BB |
1-1 |
99-99 |
A-45 |
若資料是不會再變動的,我們可以利用EXCEL的資料剖析功能
把這些資料利用分隔符號-區分開來就好了


如果不用資料剖析,在OFFICE 2013以後的版本,有個快速填入的功能,你可以事先把資料的第一行按照你要的方式分割,再點選快速填入,就可以把資料拆分了

但是如果資料經常在變動
又需擷取裡面的字串出來
那就得用函數來做
這邊需要用到left mid find三個函數
left是從左側擷取字串,
以AA-BB為例,我要擷取AA,公式就是=left(儲存格,2)
2表示我要從左側第一個字開始擷取兩個字元=AA

mid是從中間擷取字串
以AA-BB為例,要擷取BB,公式=mid(儲存格,4,2)
4表示第四的字串(就是B),2表示我要擷取2個字元=BB

但如果今天我的資料會變動成
A-B
A-BB
AA-B
那就沒辦法用直接上面方式來擷取字串
必須找出"-"在字串裡面的順序,才能夠正確的擷取字元
這時就必須使用到find函數
以AA-BB為例,公式=find("-",儲存格,1)
"-"是 我要搜尋的字串
1表示我要從儲存格的第一個字元開始搜尋
但是不管我設定從第幾個字串開始搜尋
回傳的結果都是從左邊第一個字元開始數 =3
現在我們把前面兩個函數加進來看
以AA-BB為例
"-"之前的AA,我們的公式如下
=LEFT(儲存格,FIND("-",儲存格,1)-1)
也就是我只要擷取到"-"的前一個字元就停止
所以把原本的2改成FIND("-",儲存格,1)-1
"-"之後的BB,公式如下
=MID(儲存格,FIND("-",儲存格,1)+1,2)
我要從"-"之後的下一個字串開始擷取,
所以我把原來的3,改成FIND("-",儲存格,1)+1

這樣子就可以利用函數來將有分隔符號的資料區隔開來了
如果有兩個以上的分隔符號
例如2014/7/15 2017/12/7這樣的資料
第一個/不用函數,固定是第五個字
要找第二個/
=find("/",儲存格,6)
這樣就會跳過第一個/去找第二個了