從 Email 取出網域(MID + FIND)
測試案例
1
2
3
重設
提交
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 就緒 請在反白的目標儲存格輸入公式,然後點「提交」。
測試案例
1
2
3
重設
提交
A
B
C
D
E
F
G
1
2
3
4
5
6
7
8
9
10
○ 就緒 請在反白的目標儲存格輸入公式,然後點「提交」。
題目
題目說明
行銷想依公司網域分組,但匯出檔只留了完整信箱在 A2。請把 @ 之後的全部內容取到 Domain 儲存格 C2——[email protected] 要得到 corp.com。
要從 @ 的「下一個字元」開始取——案例 2 是兩段式網域、案例 3 帶有 plus 標記,所以 @ 的位置和長度都不能假設。
題目資料
用表格檢視整份資料(可選取、可複製)
| A | C | |
|---|---|---|
| 1 | Domain | |
| 2 | [email protected] |
觀念解析
FIND("@", A2) 回傳 @ 的位置,而 MID 要的是「第一個想留下的字元位置」,所以要加 1,否則結果會從 @ 開始。長度參數只要夠長就好;LEN(A2) 是安全的上限,因為 MID 到字串結尾就會停。
解題思路
答案寫在 C2。送出時我們會換 3 組輸入重跑你的公式,寫死數字一定過不了 —— 公式必須跟著儲存格走。
- 目標儲存格是 C2
- FIND("@", A2) 會告訴你 @ 在第幾個位置
- MID 從你指定的位置開始,所以要給 @ 的下一個位置
- 公式形狀:=MID(?, FIND("@", ?) + 1, ?)
官方解法
展開 2 種解法(建議先自己試一次)
解法 1:從 @ 之後用 MID 取
=MID(A2,FIND("@",A2)+1,LEN(A2))
FIND 找到 @,加 1 移到下一個字元,LEN(A2) 給一個很大方的長度——MID 到字串結尾自然會停。完全不必假設網域有多長。
解法 2:用 RIGHT 取剩下的長度
=RIGHT(A2,LEN(A2)-FIND("@",A2))
@ 之後的內容長度=總長度減去 @ 的位置。RIGHT 從另一端讀,當前綴長度變化大時比較好想。
函數指南
常見問題
要怎麼取出某個字元之後的文字?
用 FIND 找到那個字元,再用 MID 或 RIGHT 取剩下的部分。=MID(A2, FIND("@", A2) + 1, LEN(A2)) 這個模式對任何分隔符都成立——把 @ 換成逗號或破折號即可。
為什麼要寫 FIND("@", A2) + 1?
FIND 回傳的是 @ 本身的位置。MID 從你給的位置開始取,所以不加 1 的話結果會從 @ 開始——變成 `@corp.com` 而不是 `corp.com`。
可以改用句點來切嗎?
不可靠。網域的句點數量不同(.co.uk、.com.au),而 @ 前面的名稱本身也可能有句點(anna.lee@)。@ 才是唯一可靠的切點。