
文、意如老師
續上一篇 — 聯成電腦分享:Excel擷取所需字元、字串(上) 如何在一大串字串(資料)中,更進階的擷取我們所要的資料呢?這就是今天要跟大家分享的主題。
任務一:認識FIND( )函數,找出關鍵字在第幾個位置
任務二:認識LEN( )函數,抓取字串共有幾個字
任務三:綜合應用 — 實作題:
3-1在完整Email中抓取@前的帳號
3-2在完整日期中(0000-00-00)中,在第1個”- “後,找出月份
任務四:練習題
4-1在完整日期中(0000-00-00)中,在第2個”-“後 , 找出日
4-2 在一串數字中找到自己所需資訊
任務一:認識FIND( )函數,找出關鍵字在第幾個位置
公式:=FIND(find_text,within_text,[start_num]])
說明:此公式可以找出想抓的字串在第幾個位置
參數1(find_text):要抓取的關鍵字
參數2(within_text):範圍(儲存格)
參數3(start_num):要從第幾個字開始找(可省略)
範例:在A2儲存格上輸入原始資料日期 (1956-07-11),接下來我們要取的第1個 ”- ”在第幾個位置,以及第2個 “ - ”在第幾個位置 。
第1個 ”- ”在第幾個位置?
1. 使用find() 函數
2. 第一個參數為要尋找的 ”- ”關鍵字
3. 第二個參數為範圍 A2 儲存格內的資料
完整公式如下:=FIND("-",A2)
執行結果:第1個 ”- ”在第5個位置

第2個 “ - ”在第幾個位置?
1. 使用find() 函數
2. 第一個參數為要尋找的 ”- ”關鍵字
3. 第二個參數為範圍 A2 儲存格內的資料
4. 第三個參數為要從第幾個字開始找,這裡要從剛剛找出來的位置”5 ”的後面再繼續往下找,所以需要將5+1
將第三個參數:再打一次公式 FIND("-",A2) 可得到5 ,但是要從第6個位置開始所以要+1
完整公式如下:=FIND( "-", A2 , FIND("-",A2)+1)
執行結果:第2個 ”- ”在第8個位置

任務二:認識LEN( )函數,抓取字串共有幾個字
公式:=LEN(text)
說明:此公式可以算出共有幾個字(包含空格)。
參數1(text): 要計算的字串
範例:在A2儲存格上輸入原始資料 (Hello world!),接下來使用LEN( )函數來數這個字串共幾個字。
完整公式如下:=LEN(A2)
執行結果:共12個字

任務三:綜合應用 — 實作題
3-1在完整Email中抓取@前的帳號。
原始檔資料如下:

@前面的帳號字數都不一樣,因此要抓取前必須先算出@在第幾個字
完整公式:=FIND("@",A2)

接下來配合使用LEFT( )函數,來抓取左邊數過來幾個字,所以先算出@在第幾個字後再減掉1個位置,就是要抓取帳號的字數
再複習一下LEFT( )函數:=LEFT(1.範圍,2.從左邊數過來要抓幾個字)
完整公式:=LEFT(A2,FIND("@",A2)-1)
也可以使用下列公式較乾淨,最後再把B欄按下右鍵隱藏即可
=LEFT(A2,B2-1)

完成檔:

3-2在完整日期中(0000-00-00)中,在第一個 ”-“後 , 找出月份

這裡可以搭配上一篇文章介紹的Mid( )結合做使用,再複習一下Mid( )函數
=Mid(1.範圍,2.從第幾個字開始,3.要抓幾個字)
p.s 第二個參數為從第幾個字開始,因為要抓的是第一個 ”- ” 後的月份,所以這邊搭配FIND("-",A2)+1 函數
完整公式如下:=MID(A2,FIND("-",A2)+1,2)

完成檔:

任務四:練習題
如果熟悉了以上(LEFT、RIGHT、MID、LEN、FIND 的函數後,接下來就實際自己練習看看囉!
4-1在完整日期中(0000-00-00)中,在第2個”-“後 , 找出日。

參考公式:=MID(A2,FIND("-",A2,FIND( "-", A2, FIND("-",A2)+1))+1,2)

完成檔:

4-2 在一串數列中找到自己所需資訊
有一串數字為 員工編號 / 到職日 / 薪資,員工編號很可能字數都不一樣,現在請把薪資特別抓出來。
原始檔:

完成檔:

解題思路:建議先將員工編號、到職日及字串總字數先抓出來
參考公式:


抓取薪資參考公式:先將總字數(D2)減掉(-)到職日(C2)的位置,就是要抓取的字數,最後將公式套上去。
這次是從右邊數過來所以使用RIGHT( )函數 =RIGHT(A2,D2-C2)
最後再將BCD欄按下右鍵隱藏即完成,完成檔如下:

本篇的函數搭配 上一篇 函數,相信只要多練習幾次,融會貫通後要擷取字串中的任意資料已經都不是什麼太大的問題了。
聯成電腦 發表在 痞客邦 留言(0) 人氣()