1.0 动态阵列函数基本概念
这集介绍「动态阵列函数」,是 Excel 2019 之后才有的新功能。传统函数一次只产生一个值,动态阵列函数可以一次产生很多个值并自动填满周边格子。重点学习 FILTER、FIND + ISNUMBER 模糊搜寻、连动式下拉选单,以及 HSTACK + SORT 的进阶组合。
- 📌 周边必须预留空白格子,否则会出现
#SPILL! 错误
# 符号(动态范围参照)
=SUM(A1#) — # 表示「引用 A1 这个动态阵列函数产生的整个范围」。
2.0 FILTER 函数(条件筛选)
=FILTER(回传范围, 筛选条件, "找不到时显示的文字")
Example:找出牛仔裤的所有交易记录
=FILTER(整张表格, 产品名称列="牛仔裤", "无此产品")
📌 需要 Excel 2021 / Microsoft 365
3.0 FILTER 模糊搜寻(配合 FIND + ISNUMBER)✅
FILTER 预设需要完全符合才算,输入「裤」找不到「牛仔裤」。
解决方法:
=FILTER(整张表格, ISNUMBER(FIND("裤", 产品名称列)), "")
| 函数 | 功能 |
|---|
FIND("裤", 产品名称列) | 找到「裤」回传顺位数字,找不到回传错误 |
ISNUMBER(...) | 数字=TRUE,错误=FALSE |
FILTER(..., TRUE/FALSE列) | 只回传 TRUE 的行 |
=IF(搜寻格="", "", FILTER(整张表格, ISNUMBER(FIND(搜寻格, 产品名称列)), ""))
4.0 连动式下拉选单(FILTER + Data Validation)✅
第二个下拉选单的选项,根据第一个选单自动更新。
- 第一层选单:Formulas → Define Name 定义名称范围 → Data Validation → List
- 第二层选单:
=UNIQUE(FILTER(产品名称列, 产品类别列=第一层选单格))
Data Validation → List → 来源填入 FILTER 公式所在格子,加上 #(例:=H2#) - 设定完成后,把辅助栏隐藏(右键 → Hide)
5.0 FILTER 多条件筛选(用乘法)
同时满足两个条件时,把两个条件相乘:
=FILTER(整张表格, (产品名称="连帽外套") * (销售金额>=2000), "")
在 Excel 里 TRUE=1,FALSE=0,只有两个条件都是 TRUE(1*1=1),结果才是 1。
6.0 HSTACK 函数(横向拼接栏位)
=HSTACK(范围一, 范围二, 范围三, ...)
把多个不相邻的栏位拼成一张新表格,配合 FILTER 使用,只回传需要的栏位。
配合 SORT 排序:
=SORT(FILTER(HSTACK(A列,C列,F列), 条件), 排序栏位编号, -1)
7.0 动态阵列函数总结
| 函数 | 功能 | 版本需求 |
|---|
FILTER | 根据条件筛选资料 | 2021 / M365 |
UNIQUE | 移除重复値 | 2021 / M365 |
SEQUENCE | 产生连续数列 | 2021 / M365 |
SORT | 依指定栏位排序 | 2021 / M365 |
HSTACK | 横向拼接多个范围 | M365 |
ISNUMBER | 判断是否为数字 | 所有版本 |