Excel中如何从邮箱提取域名与另一列匹配并标记结果
邮箱域名主体与公司名匹配实现方案
下面分两种常用场景给出可直接复用的实现方法:
方案1:Excel/Google Sheets 公式实现
假设邮箱存储在A列、公司名称存储在B列,需要在C列输出匹配结果,直接在C2单元格输入以下公式后下拉填充即可:
=IF(LOWER(B2)=LOWER(MID(A2, FIND("@",A2)+1, FIND(".",A2,FIND("@",A2)) - FIND("@",A2)-1)),"匹配","不匹配")
- 公式逻辑说明:
- 先用
FIND("@",A2)定位@符号的位置,再定位@之后第一个.的位置,截取两者中间的内容即为域名主体 - 两端统一用
LOWER()转小写,避免大小写差异导致的匹配失败 - 该公式自动适配
xxx@xx.com、xxx@xx.com.cn等多后缀域名场景,始终取@之后第一个.之前的内容作为主体
- 先用
方案2:Python Pandas 批量处理实现
适合数据量较大的场景,直接运行以下代码即可:
import pandas as pd # 导入原始数据,替换为你自己的文件路径 df = pd.read_excel("原始数据.xlsx") # 提取邮箱域名主体并统一转小写 df['域名主体'] = df['邮箱列名'].str.extract(r'@([^.]+)\.', expand=False).str.lower() # 公司名转小写后匹配,生成结果列 df['匹配结果'] = df.apply( lambda x: '匹配' if x['公司名列名'].lower() == x['域名主体'] else '不匹配', axis=1 ) # 导出结果到新文件 df.to_excel("匹配结果.xlsx", index=False)
- 代码逻辑说明:用正则
@([^.]+)\.匹配@和第一个.之间的所有字符,批量提取效率远高于逐行遍历。
内容的提问来源于stack exchange,提问作者MAx
相关产品推荐
相关产品推荐

