本文主旨為應用Excel函數 Left , Right , Mid 來擷取儲存格字串中的文字 (另有 IF 函數的混合應用)
因應上班Excel報表格式需求,需將Excel儲存格中某字串的文字提出,作為儲存格值,
例: 78_mk1,當我們希望把 "mk1" 提出在個別儲存格時,
如:
A B
(1) 78_mk1 // mk1
則在 B1 儲存格輸入公式
=Right(A1,3) 此公式意思為,擷取A1儲存格右邊數來3個字串,
則 B1 會跑出 78_mk1 的右邊三個字串 "mk1"。
如:78_xyz_A ,則希望把 "xyz" 及 "A" 分別提出在個別儲存格,
則在 B1 儲存格輸入公式
=Right(A1,3) 此公式意思為,擷取A1儲存格右邊數來3個字串,
則 B1 會跑出 78_mk1 的右邊三個字串 "mk1"。
若是字串變長,需擷取兩種值呢?
如:78_xyz_A ,則希望把 "xyz" 及 "A" 分別提出在個別儲存格,
A B C
(1) 78_xyz_A // xyz // A
則在 B1 儲存格輸入公式
=Mid(A1,4,3) 此公式意思為,擷取A1儲存格中,左邊數來第4個開始的3個字串,
則B1會跑出 78_xyz_A 的中間三個字串 "xzy"。
另外在 C1 儲存格輸入公式
=Right(A1,1) 此公式意思為,擷取A1儲存格右邊數來1個字串,
(1) 78_xyz_A // xyz // A
則在 B1 儲存格輸入公式
=Mid(A1,4,3) 此公式意思為,擷取A1儲存格中,左邊數來第4個開始的3個字串,
則B1會跑出 78_xyz_A 的中間三個字串 "xzy"。
另外在 C1 儲存格輸入公式
=Right(A1,1) 此公式意思為,擷取A1儲存格右邊數來1個字串,
則 C1 會跑出 78_xyz_A 的右邊一個字串 "A"。
我的儲存格中有多個 78_xyz_A 以及 78_mk1 值,要擷取不同字串的文字,剛剛教的公式無法直接下拉套用,該怎辦?
在擷取這類文字時,絕對不會只擷取一種,一定會有以下許多不同的字串種類要擷取,如下:
A B C
(1) 78_xyz_A // xyz // A
(2) 78_mk3 // mk3 // mk3
(3) 78_aaa_G // aaa // G
(4) 78_za9 // za9 // za9
雖然剛剛所提供的公式,套用在個別儲存格上仍然可以使用,但必須就要針對不同的字串貼上不同的公式,有失使用Excel函數的效率,因此可以加入 IF 函數來解決此問題,
則在 B1 儲存格輸入公式
=IF(LEN(A1)=6,RIGHT(A1,3),MID(A1,4,3)) 此公式意思為,假設A1字串長度等於6 (這邊以 78_mk3 為基準),則擷取A1儲存格右邊數來3個字串,否則擷取A1儲存格中,左邊數來第4個開始的3個字串,如此一來如果A1是78_mk3則會擷取mk3;如果A1是78_xyz_A則會擷取xzy。
另外在 C1 儲存格輸入公式
=IF(LEN(A1)=6,RIGHT(A1,3),RIGHT(A1,1)) 此公式意思為,假設A1字串長度等於6 (這邊以 78_mk3 為基準),則擷取A1儲存格右邊數來3個字串,否則擷取A1儲存格中,右邊數來第1個字串,如此一來如果A1是78_mk3則會擷取mk3;如果A1是78_xyz_A則會擷取A。
應用 B1 及 C1 的公式,可以解決函數無法足一套用的問題,可以增加其工作效率。
以上為簡單的 Excel 函數應用分享,希望對大家有幫助。