You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Excel中筛选A表指定字符段含B表关键字的行?

Excel实现跨表关键字匹配筛选方案

完全可以在Excel内实现需求,无需借助其他工具,以下是两种兼容不同Excel版本的可行方案:

前提假设

  • Excel A(记为Sheet1)的关键字列位于A列,数据从A2开始(A1为表头)
  • Excel B(记为Sheet2)的关键字列位于A列,数据从A2开始(A1为表头)
  • 两个表的关键字数据均不超过1000行(若超过,只需修改公式中的行号范围即可)

方案一:辅助列筛选(兼容所有Excel版本)

  1. 在Sheet1的空白列(比如B列)的B2单元格输入以下公式:
    =IF(SUMPRODUCT(--ISNUMBER(SEARCH(Sheet2!$A$2:$A$1001, MID(A2,4,6))))>0, "匹配", "不匹配")
    
  2. 下拉填充公式至所有数据行
  3. 对B列进行筛选,选择"匹配"即可得到符合要求的行

公式解释

  • MID(A2,4,6):提取A2关键字的第4至第9位(从第4位开始截取6个字符)
  • SEARCH(Sheet2!$A$2:$A$1001, ...):检查B表的每个关键字是否存在于截取的字符串中,返回匹配位置或错误值
  • ISNUMBER(...):将匹配结果转为布尔值(匹配为TRUE,不匹配为FALSE)
  • --:将布尔值转为数字(TRUE→1,FALSE→0)
  • SUMPRODUCT(...):求和所有匹配结果,大于0则说明存在至少一个匹配的B表关键字

方案二:动态数组直接提取(适用于Excel 365/2021及以上)

如果使用支持动态数组的Excel版本,可直接提取所有符合条件的行,无需手动筛选:

  • 若仅提取关键字列,在Sheet1的B2输入:
    =FILTER(Sheet1!A2:A1001, BYROW(Sheet1!A2:A1001, LAMBDA(x, SUMPRODUCT(--ISNUMBER(SEARCH(Sheet2!A2:A1001, MID(x,4,6))))>0)))
    
  • 若需提取整行数据,将公式中的Sheet1!A2:A1001替换为数据所在的整行范围(比如Sheet1!A2:Z1001)

效果验证

针对你给出的示例:

  • Excel A第二个关键字789ABC1234560ABC,截取第4-9位为ABC123,匹配Excel B的第一个关键字
  • Excel A第四个关键字4567890ABC123ABC,截取第4-9位为7890AB,匹配Excel B的第二个关键字
    两个案例均会被公式判定为"匹配",符合需求

内容的提问来源于stack exchange,提问作者Krutoj

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 22:42:36