从 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@)。@ 才是唯一可靠的切点。