ex_区域筛选
函数名:ex_区域筛选 / ex_Filter
功能描述
精确筛选数据区域(自动过滤空白行,不返回无效数据)。支持多值筛选、模糊匹配与精确匹配,可指定是否区分大小写。
会员等级:🟢 免费版(Free)
语法
excel
=ex_区域筛选(数据区域, 筛选列, 筛选值, [分隔符], [模糊筛选], [区分大小写])参数
| 参数名 | 类型 | 必填 | 默认值 | 说明 |
|---|---|---|---|---|
| 数据区域 | Object[,] | 是 | - | 要筛选的数据区域或整列 |
| 筛选列 | Integer | 是 | - | 要筛选的列索引(从 1 开始) |
| 筛选值 | String | 是 | - | 筛选值(支持多组,用分隔符分隔) |
| 分隔符 | String | 否 | "," | 筛选值分隔符,默认逗号 |
| 模糊筛选 | Integer | 否 | 0 | 1 支持模糊筛选,0 精确匹配(默认 0) |
| 区分大小写 | Integer | 否 | 0 | 1 区分大小写,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(不区分)控制。 - 返回结果仅包含匹配行中的有效(非空)列,自动剔除空白列;命中后对该行不再继续匹配其他筛选值。
错误处理
| 错误场景 | 返回值 |
|---|---|
| 数据区域为空 | 空数组 |
| 筛选列索引超出范围 | 空数组 |
| 筛选值为空或无有效条目 | 空数组 |
| 无匹配行 | 空数组 |
| 运行时异常 | 空数组 |