這次要來介紹字串處理的其中四個函數:取得字串長度(LEN)、尋找對應字串位置(FIND)、更換對應位置(REPLACE)、取代對應字串(SUBSTITUTE)。
這四個函數和字串擷取的出現頻率相當,也常常會一起使用,不熟悉字串擷取的可以先複習一下。
延伸閱讀:【Excel Text】字串擷取:左邊(LEFT)、右邊(RIGHT)、中間(MID)
LEN
LEN 取至長度(length)英文的前三個字母,名稱十分好記!不只是 Excel,像 Python、VB、VBA、T-SQL 也都用 len 來取得字串長度。
=LEN (a)
a:字串、文字
回傳:該字串長度
我們所使用的中文屬於雙位元組字元集,這裡的 LEN 指的是回傳幾個字,如果要回傳位元數可以使用 LENB 函數。因此「墨菲莫非」,在使用 LEN 的時候會回傳「4」,而 LENB 會回傳「8」。
同樣道理,FINDB 是用來回傳字元位置的,下面就不特別介紹了,大家有時間可以自己試試看。
FIND
=FIND(a,b,[c])
a:尋找的字串
b:字串、文字
c:起始位置。預設最左邊
回傳:該字串起始位置
=FIND(尋找文字,參照文字)
=FIND("r",A2)
=FIND("r","murphy")
第一個參數為「“r”」,第二個參數對應的文字為「murphy」
FIND 會回傳第一個參數對應字串第一個出現的位置,以此範例「r」出現在第三位,因此回傳「3」
沒使用第三個參數的情況下,會預設從第一位開始找
不要忘在於函數中直接使用字串要加雙引號「”」
=FIND(尋找文字,參照文字,[起始位置])
=FIND("m",A2,4)
=FIND("m","murphymofei",4)
FIND會從字串的最左邊開始尋找對應的字,如果有使用第三個參數,就可以改變尋找的起始位置
第一個參數為「“m”」,第二個參數對應的文字為「murphymofei」
這裡使用了第三個參數「4」代表從第四位開始尋找,因此第一位就算是「m」,也會被忽略
=FIND(尋找文字,參照文字,[起始位置])
=FIND("m",A2,8)
=FIND("m","murphymofei",8)
如果沒有找到符合的字串,則回傳「#VALUE!」
如果要在「murphymofei」中尋找「”m”」,從第「8」位開始,就會找不到,回傳「#VALUE!」
REPLACE
=REPLACE(a,b,c,d)
a:原始字串
b:起始位置
c:長度
d:新字串
回傳:更換後文字
=REPLACE(原始字串,起始位置,長度,新字串)
=REPLACE(A2,B2,C2,D2)
=REPLACE("mourphymofei",6,2,"*****")
依照此範例,第一個參數:原始文字使用「murphymofei」
第二個參數:起始位置是「6」,第三個參數:幾位是「2」
代表從左邊起第六個字母開始,連續兩個字母要被替換掉。依照這題範例就是「ym」。
最後一個參數是「*****」:就是要被替換成的字串,所以會把原本「mourphymofei」中的「ym」替換成「*****」,就會變成最後的結果「mourph*****ofei」
如果 REPLACE 的時候字數不夠時,會接在字串,這邊舉兩個範例:
取代掉足夠的一位「y」,其餘皆在後面「murph*****」
直接接在最後面「mofei*****」
SUBSTITUTE
=SUBSTITUTE(a,b,c)
a:原始字串
b:被取代文字
c:新文字
回傳:取代後文字
這個函數使用率蠻高的,而且也非常直觀,就是將指定字串更改為其他字串。
=SUBSTITUTE(原始字串,被取代文字,新文字)
=SUBSTITUTE(A2,B2,C2)
=SUBSTITUTE("mourphymofei","m","s")
這裡我想將「murphymofei」中的「m」改成「s」
三個參數依序放入即可,第一個參數「A2」代表「”murphymofei”」
第二個參數「B2」,這裡的意思為「”m”」是要被改的文字
最後一個參數「C2」,要改成「”s”」
更多 Excel 文章請至 文章導覽 尋找,也可利用上方「搜尋(Search...)」功能
有任何莫非工具的問題,歡迎至「表單」提問
Excel 是不是很容易
和墨菲一起用 Excel 把工作變簡單