本文作者:表哥在此 | 专注 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)
- 找到 → 返回数字(位置);找不到 → 返回
#VALUE!
第二层:ISNUMBER — 判断是否找到
ISNUMBER(FIND(C3,x))
第三层:OR — 该行任意一列命中即通过
OR(ISNUMBER(FIND(C3,x)))
第四层:BYROW — 逐行遍历
BYROW(客户订单明细!A1:H21, LAMBDA(x, ...))
第五层:FILTER — 筛选结果
FILTER(客户订单明细!A1:H21,第四步结果,"无匹配数据")
第六层:IF — 容错处理
IF(C3="","",第五步结果)
✅ 搜索效果演示
在 C3 单元格输入关键词「广州」:
搜索结果(自动溢出显示):
更多搜索示例
📝 操作步骤
Step 1:准备数据源
将原始数据放在一个命名区域或独立 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 溢出 | 自动扩展多行,无需 Ctrl+Shift+Enter |
⚠️ 注意事项
| |
|---|
| Excel 版本 | 需要 Excel 365 / 2021(FILTER/BYROW/LAMBDA) |
| 数据范围 | |
| 空值处理 | IF(C3="",...) 防止关键词为空时全表溢出 |
| 性能 | |
📋 完整公式模板
' 搜索结果(放到结果起始单元格)=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 函数技巧,越来越好!
本文原创,转载需授权