如何使用Excel公式批量筛选通讯录中包含指定关键词的行
Excel多关键词批量匹配通讯录方案
前置假设(可根据你的实际数据调整参数)
- 通讯录联系人姓名统一存放在A列,A2开始为具体数据,A1表头为「联系人姓名」
- 60个待匹配关键词统一存放在D列,D2到D61为具体关键词,D1表头为「待匹配关键词库」
方案1:Excel 365/2021及以上版本(支持动态数组,操作最简便)
在任意空白单元格(如B2)输入下方公式,回车后会自动输出所有命中关键词的联系人结果,无需手动下拉:
=FILTER(A2:A1000,BYROW(A2:A1000,LAMBDA(x,SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$61,x))>0))),"无匹配结果")
参数说明
A2:A1000:替换为你实际的通讯录姓名存放范围$D$2:$D$61:替换为你实际的关键词库存放范围,需保留绝对引用符号$避免范围偏移- 不需要区分大小写匹配保留
SEARCH,需要区分大小写则替换为FIND - 要导出匹配联系人的整行全部信息,把开头的
A2:A1000替换为你的整个通讯录数据范围(如A2:C1000)即可
方案2:Excel 2019及以下旧版本通用方案
第一步:单格匹配标记
在B2单元格输入下方公式,下拉到所有通讯录行的末尾,匹配到关键词的行会标记为「匹配」,未命中标记为「不匹配」:
=IF(SUMPRODUCT(--ISNUMBER(SEARCH($D$2:$D$61,A2)))>0,"匹配","不匹配")
第二步:导出匹配结果
选中整个数据表,点击顶部「数据」选项卡→「筛选」,点击B列表头的筛选按钮,只勾选「匹配」选项,筛选后的数据可直接复制导出。
注意事项
- 若关键词包含
*、?这类通配符,需要提前在特殊符号前加~转义,避免匹配出错 - 若需要匹配完全等于关键词的内容而非包含关键词,把公式里的
SEARCH($D$2:$D$61,x)替换为EXACT($D$2:$D$61,x)即可
内容的提问来源于stack exchange,提问作者Imran Mulla
相关产品推荐
相关产品推荐

