讲师中心 微信公众号
AI工具推荐 视频效率加速

Excel对多、多对多查询怎么用FILTER函数完成?案例拆解

酷辰吖_8536

酷辰吖_8536

发布时间:2026-07-14 02:57:43

|

291人浏览过

|

来源于php中文网

原创

用filter实现单条件返回多条记录,核心是把源数据区域传给 array 参数,判断逻辑传给 include 参数;做多对多查询的话,要先把多个条件转成行数完全一致的true/false数组,再用乘号、加号或者 xmatch 组合起来。下面的操作都基于microsoft 365版本的excel,如果你用的是wps或者旧版excel,得先确认软件本身支持filter函数再往下走。

我们拿大家最常用的订单、地区、客户表来拆解,不会把FILTER当成普通的筛选按钮泛泛讲,直接拆成4步实操:先理清楚源数据和条件、做一对多查询、做多对多查询、提前留好空结果、排序的处理入口。

第一步:先把源数据和条件区分开

源数据区域要保持连续,字段名统一放在第一行;条件区别塞在源数据中间,最好放在表格右侧或者上方,方便公式直接引用。这张示例左侧是待筛选的原始列表,右侧是FILTER的返回区域,公式栏里能看到 =FILTER(...) 已经把数据源和判断条件分开写了。

Excel FILTER 函数示例中源数据区域、条件引用和返回区域被红框标出

自己建表的时候,先把源数据整理成类似 A2:D20 这样连续的订单区域,把“地区”“客户”“商品”这类要填的条件放在 F2:H2 区域就行。除非数据量特别小,不然别直接把整列塞进公式,全列引用会拖慢动态数组的计算速度。

第二步:用FILTER完成一对多查询

一对多查询就是单个条件匹配出所有符合的行,比如要查出所有“地区=华东”的订单。公式直接写 =FILTER(A2:D20,C2:C20=G2,"无符合记录") 就行。其中 A2:D20 是你要返回的整块数据,C2:C20=G2 会逐行判断地区是不是等于条件单元格,符合要求的行直接一次性溢出到右侧的结果区。

Excel FILTER 一对多查询示例中公式栏、源数据和返回结果被红框标出

这类公式根本不用往下拖拽复制,只要在结果区左上角的单元格输入一次,Excel就会自动把多行结果展开。要是结果区下方还留着旧内容,Excel会直接报 #SPILL! 错误,把溢出范围内的多余内容清空再重新计算就好。

第三步:把多个条件组合成多对多查询

多对多查询有两种常用写法:多个单值条件要求同时满足,直接用乘号代表AND逻辑;单个字段允许多个候选值,用 XMATCH 或者 COUNTIF 生成对应的匹配数组。比如要查“地区在H2:H4列表内,同时客户在I2:I3列表内”的所有订单,公式可以写成 =FILTER(A2:D20,ISNUMBER(XMATCH(C2:C20,H2:H4))*ISNUMBER(XMATCH(B2:B20,I2:I3)),"无符合记录")。

Excel FILTER 多条件返回多条记录示例中 OR 条件公式和结果区被红框标出

乘号的作用是要求每一行必须同时满足两个判断逻辑。要做“地区是华东或华南”这种同字段多选的需求,直接写 =FILTER(A2:D20,ISNUMBER(XMATCH(C2:C20,H2:H4)),"无符合记录") 就行。如果只是两个固定值的或逻辑,也可以用加号组合:(C2:C20="华东")+(C2:C20="华南"),只要最终生成的数组行数和源数据完全对应就没问题。

第四步:给空结果、排序和去重留处理口

if_empty 不是没用的装饰参数,实际做查询表的时候,一旦没有符合条件的记录,直接让公式返回空白或者提示文字,比页面凭空跳出 #CALC! 要稳得多。如果需要结果按金额从高到低排序,直接把FILTER套进SORT函数里就行:=SORT(FILTER(A2:D20,ISNUMBER(XMATCH(C2:C20,H2:H4)),"无符合记录"),4,-1)。

Price Monitor & Daily Excel Report Bot
Price Monitor & Daily Excel Report Bot

每日监控电商平台商品价格,检测价格下降,每天早晨自动发送格式化Excel报告邮件。

下载
Excel FILTER 复杂条件查询示例中公式栏、数据区和排序返回区域被红框标出

要是返回结果里可能有重复的客户,再在外层套个 UNIQUE 函数:=UNIQUE(FILTER(B2:B20,ISNUMBER(XMATCH(C2:C20,H2:H4)),"无符合记录"))。写这类嵌套公式的时候,建议先把FILTER单独跑通,再一层层包SORT、UNIQUE,别一开始就把所有函数堆在一起,出问题很难排查。

FILTER函数语法和参数

FILTER的完整语法是:

=FILTER(array, include, [if_empty])

参数 是否必填 作用 写法提醒
array 必填 要返回的数据区域 可以是一列、多列或整块表格,行数要和include参数的数组完全对应
include 必填 筛选判断数组 每一行返回TRUE/FALSE,或者1/0;多条件可以用 *、+、XMATCH 组合
if_empty 可选 没有匹配记录时显示的内容 可以写 "无符合记录" 或者 "",避免空结果直接抛出 #CALC! 错误

容易出错的位置

出 #CALC! 错误,大多是没匹配到结果又没写 if_empty 参数;出 #SPILL! 错误,基本都是结果溢出区域被已有内容挡住了;出 #VALUE! 错误,常见原因是 array 和 include 两个区域的行数对不上。要是公式返回了不该出现的行,直接选中 include 那一段参数按F9,临时查看生成的TRUE/FALSE数组,核对每一行的判断逻辑是不是对齐了。

做多对多查询最容易写错的就是条件列表的方向。XMATCH(C2:C20,H2:H4) 是把每一行的地区拿到条件列表里匹配,要是写反成 XMATCH(H2:H4,C2:C20),生成的数组行数就和订单表对不上,FILTER根本没法逐行筛选。

扩展示例:把查询表做成可改条件的模板

如果H2:H4是可以自由选择的地区列表,I2:I3是可以自由选择的客户列表,订单表固定在 A2:D20,可以直接把公式写死成:

=FILTER(A2:D20,ISNUMBER(XMATCH(C2:C20,H2:H4))*ISNUMBER(XMATCH(B2:B20,I2:I3)),"无符合记录")

之后只要改条件区的内容,完全不用动公式。要按金额降序就往外层加 SORT,要只返回客户名就把 array 参数改成 B2:B20,要去掉重复客户再多套一层 UNIQUE。这也是FILTER做对多、多对多查询最省心的地方:条件区改了,溢出的结果会自动跟着刷新。

热门AI工具

更多
蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

LibLibAI
LibLibAI Hot

一款AI视频创作工具,主要用于国内领先的AI创意平台,以海量模型、低门槛操作与“创作-分享-商业化”生态,让小白与专业创作者都能高效实现图文乃至视频创意表达,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

相关专题

更多
excel对比两列数据异同
excel对比两列数据异同

Excel作为数据的小型载体,在日常工作中经常会遇到需要核对两列数据的情况,本专题为大家提供excel对比两列数据异同相关的文章,大家可以免费体验。

4601

2023.07.25

excel重复项筛选标色
excel重复项筛选标色

excel的重复项筛选标色功能使我们能够快速找到和处理数据中的重复值。本专题为大家提供excel重复项筛选标色的相关的文章、下载、课程内容,供大家免费下载体验。

2796

2023.07.31

excel复制表格怎么复制出来和原来一样大
excel复制表格怎么复制出来和原来一样大

本专题为大家带来excel复制表格怎么复制出来和原来一样大相关文章,帮助大家解决问题。

2580

2023.08.02

excel表格斜线一分为二
excel表格斜线一分为二

在Excel表格中,我们可以使用斜线将单元格一分为二。本专题为大家带来excel表格斜线一分为二怎么弄的相关文章,希望可以帮到大家。

1444

2023.08.02

excel斜线表头一分为二
excel斜线表头一分为二

excel斜线表头一分为二的方法有使用合并单元格功能方法、使用文本框功能方法、使用自定义格式方法。本专题为大家提供excel斜线表头一分为二相关的各种文章、以及下载和课程。

677

2023.08.02

绝对引用的输入方法
绝对引用的输入方法

绝对引用允许在公式中引用一个固定的单元格,而不会随着公式的复制和粘贴而改变引用的单元格。本专题为大家提供绝对引用相关内容的文章,大家可以免费体验。

5128

2023.08.09

java导出excel
java导出excel

在Java中,我们可以使用Apache POI库来导出Excel文件。本专题提供java导出excel的相关文章,大家可以免费体验。

5983

2023.08.18

excel输入值非法
excel输入值非法

在Excel中,当输入的数值非法时,有以下多种处理方法。本专题为大家提供excel输入值非法的相关文章,大家可以免费体验。

1581

2023.08.18

Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

160

2026.09.23

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 43.5万人学习

成为PHP架构师-自制PHP框架
成为PHP架构师-自制PHP框架

共28课时 | 3.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn