本文作者:表哥在此 | 专注 Excel 函数与 VBA 实战教学
🤔 订单太多,怎么快速找到想要的数据?
销售数据表有 20条订单:
订单编号、客户名称、区域、城市、产品、渠道、订单金额、订单状态
想找「广州」的订单? 想找「线上商城」的订单? 想找「已发货」的订单?
❌ Ctrl+F 只能定位单个单元格,不能过滤整行! ❌ 筛选功能 每次都要手动点开下拉菜单! ✅ FILTER + BYROW + LAMBDA,一个公式,全列关键词匹配,输入即搜!
📊 原始订单数据

💡 核心公式
① 关键词搜索公式
=IF(C3="","",FILTER(客户订单明细!A1:H21,BYROW(客户订单明细!A1:H21, LAMBDA(x,OR(ISNUMBER(FIND(C3, x))))),"无匹配数据"))② 匹配数量统计
=IF(C3="",0,SUM(--BYROW(客户订单明细!A1:H21,LAMBDA(x,OR(ISNUMBER(FIND(C3, x)))))))🎯 公式拆解(六层嵌套)
第一层:FIND — 在单元格中查找关键词
FIND(C3,x)C3= 搜索关键词(如「广州」)x= BYROW 传入的当前行数组在该行所有列中查找关键词 找到 → 返回数字(位置);找不到 → 返回 #VALUE!
第二层:ISNUMBER — 判断是否找到
ISNUMBER(FIND(C3,x))找到(返回数字)→ TRUE未找到(返回错误)→ FALSE
第三层:OR — 该行任意一列命中即通过
OR(ISNUMBER(FIND(C3,x)))只要该行任意一列包含关键词 → TRUE全部列都没命中 → FALSE
第四层:BYROW — 逐行遍历
BYROW(客户订单明细!A1:H21, LAMBDA(x, ...))对 20 行数据逐行执行第三步逻辑 返回 20 行的 TRUE/FALSE 数组
第五层:FILTER — 筛选结果
FILTER(客户订单明细!A1:H21,第四步结果,"无匹配数据")用 TRUE/FALSE 数组筛选原始数据 TRUE 的行保留,FALSE 的行过滤掉 无匹配时显示「无匹配数据」
第六层:IF — 容错处理
IF(C3="","",第五步结果)关键词为空时返回空字符串,避免全表溢出
✅ 搜索效果演示
在 C3 单元格输入关键词「广州」:
搜索结果(自动溢出显示):

更多搜索示例
| 线上商城 | ||
| 深圳 | ||
| 已发货 | ||
| 企业采购 | ||
| 202606 | ||
| 华南 |

📝 操作步骤
Step 1:准备数据源
将原始数据放在一个命名区域或独立 Sheet:
建议 Sheet 名: 客户订单明细包含:订单编号、客户名称、区域、城市、产品、渠道、订单金额、订单状态
Step 2:创建搜索工作表
新建 Sheet,命名为「订单搜索」
Step 3:设置查询入口
在搜索表中:
=IF(C3="",0,SUM(--BYROW(...))) | |
=IF(C3="","",FILTER(...)) |
Step 4:输入公式
在 A6 输入核心公式:
=IF(C3="", "", FILTER(客户订单明细!A1:H21, BYROW(客户订单明细!A1:H21, LAMBDA(x, OR(ISNUMBER(FIND(C3, x))))), "无匹配数据"))按 Enter 键,公式自动溢出显示匹配结果!
Step 5:美化界面
设置标题行格式(加粗、填充颜色) 设置条件格式(匹配行高亮) 添加边框和底色
🔑 关键技巧总结
| FIND 不区分大小写 | |
| BYROW 逐行遍历 | |
| LAMBDA 匿名函数 | |
| OR 任意命中 | |
| FILTER 溢出 |
⚠️ 注意事项
| Excel 版本 | |
| 数据范围 | A1:H21 需根据实际数据调整 |
| 空值处理 | |
| 性能 |
📋 完整公式模板
' 搜索结果(放到结果起始单元格)=IF(C3="","",FILTER(客户订单明细!A1:H21,BYROW(客户订单明细!A1:H21,LAMBDA(x,OR(ISNUMBER(FIND(C3,x))))),"无匹配数据"))' 匹配数量统计(放到数量单元格)=IF(C3="",0,SUM(--BYROW(客户订单明细!A1:H21,LAMBDA(x,OR(ISNUMBER(FIND(C3,x)))))))💬 关注公众号「表哥在此」,后台回复「关键词搜索」,获取本文配套练习文件! 你的 Excel 函数技巧,越来越好!
本文原创,转载需授权
夜雨聆风