Skip to content

ex_区域筛选

函数名:ex_区域筛选 / ex_Filter

功能描述

精确筛选数据区域(自动过滤空白行,不返回无效数据)。支持多值筛选、模糊匹配与精确匹配,可指定是否区分大小写。

会员等级:🟢 免费版(Free)

语法

excel
=ex_区域筛选(数据区域, 筛选列, 筛选值, [分隔符], [模糊筛选], [区分大小写])

参数

参数名类型必填默认值说明
数据区域Object[,]-要筛选的数据区域或整列
筛选列Integer-要筛选的列索引(从 1 开始)
筛选值String-筛选值(支持多组,用分隔符分隔)
分隔符String","筛选值分隔符,默认逗号
模糊筛选Integer01 支持模糊筛选,0 精确匹配(默认 0)
区分大小写Integer01 区分大小写,0 不区分(默认 0)

返回值

Object[,] - 二维数组,包含所有匹配行的有效数据(仅返回该行中非空的列)。

使用示例

精确匹配筛选

公式

excel
=ex_区域筛选(A2:C4, 3, "北京")

结果(A2:C4 为 张三/25/北京、李四/30/上海、王五/28/北京):

张三  25  北京
王五  28  北京

多值精确筛选

公式

excel
=ex_区域筛选(A2:C4, 1, "张三,王五")

结果

张三  25  北京
王五  28  北京

模糊筛选

公式

excel
=ex_区域筛选(A2:C4, 1, "张", ",", 1)

结果

张三  25  北京

区分大小写筛选

公式

excel
=ex_区域筛选(A2:A5, 1, "Apple", ",", 0, 1)

结果(A2:A5 = Apple、apple、APPLE、Apple,区分大小写精确匹配):

Apple
Apple

技术说明

  • 列索引从 1 开始,内部转换为 0 开始的数组索引。
  • 筛选值按分隔符拆分(忽略空条目),只要单元格匹配任意一个筛选值即保留该行。
  • 模糊筛选使用 IndexOf 包含匹配;精确筛选使用 Equals 完全相等匹配。
  • 大小写通过 StringComparison.Ordinal(区分)或 StringComparison.OrdinalIgnoreCase(不区分)控制。
  • 返回结果仅包含匹配行中的有效(非空)列,自动剔除空白列;命中后对该行不再继续匹配其他筛选值。

错误处理

错误场景返回值
数据区域为空空数组
筛选列索引超出范围空数组
筛选值为空或无有效条目空数组
无匹配行空数组
运行时异常空数组

基于源代码最新版本文档