夜雨聆风学习资料网

ARTICLE · 1114159

Excel 动态数组高阶组合|TAKE+SORT+FILTER+UNIQUE,4 个实战组合公式教程

Excel 动态数组高阶组合|TAKE+SORT+FILTER+UNIQUE,4 个实战组合公式教程
适用版本:Microsoft 365 / Excel 2021 及以上动态数组版本 前面我们学会了 TAKE(截取)、DROP(剔除),单独使用功能有限。
把 TAKE、SORT、FILTER、UNIQUE 组合嵌套,就能一步完成:排序、筛选、提取、去重清理,不用辅助列,自动溢出结果。

01

数据源说明
数据源A2:D23,包含【月份、产品、销量、金额】销售明细表

02

案例 1:SORT+TAKE,提取销量 TOP3 完整记录
公式
=TAKE(SORT(A2:D23,3,-1),3)
公式拆解
  1. SORT(A2:D23,3,-1):对 A2:D23 区域,按第 3 列(销量),降序排序,销量从大到小排列
  2. TAKE(...,3):排序完成后,截取前 3 行,直接拿到销量前三名的全部信息 ✅业务用途:快速提取 TOPN 数据,做排行榜、业绩头部提取

03

案例 2:FILTER+TAKE,提取 A 产品最后 3 条销售记录
公式
=TAKE(FILTER(A2:D23,B2:B23="a"),-3)
公式拆解
  1. FILTER(A2:D23,B2:B23="a"):筛选 B 列产品等于 A 的全部数据
  2. TAKE(..., -3):负数代表从筛选结果底部向上取 3 行,拿到 A 产品最近 3 个月数据 ✅业务用途:筛选某一类数据后,取末尾最新 N 条记录

04

案例 3:TAKE+SUM,提取前 N 行再汇总金额
公式
=SUM(TAKE(D2:D23,5*2))
公式拆解
  1. 原始数据中,每个月份有 2 行(A 产品、B 产品),5 个月一共 10 行,5*2计算行数
  2. TAKE(D2:D23,5*2):提取 D 列金额前 10 个单元格(前 5 个月全部金额)
  3. SUM(...):对截取出来的金额直接求和 ✅业务用途:先截取指定范围,再做求和、平均等统计计算

05

案例 4:UNIQUE+DROP,去重并清理末尾无效空值
公式
=DROP(UNIQUE(B:B),-1)
公式拆解
  1. UNIQUE(B:B):提取 B 列不重复产品名称,整列引用时末尾会自动生成一个 0
  2. DROP(...,-1):负数,删除最后 1 行,把多余生成的 0 剔除掉,只保留 A、B 两个产品 ✅业务用途:整列去重后,清理 UNIQUE 自带的末尾无效值,是高频去重清理技巧

06

通用组合模板,直接套用
  1. 取 TOPN:=TAKE(SORT(区域,排序列,升降序),N)
  2. 筛选后取末尾 N 条:=TAKE(FILTER(区域,条件),-N)
  3. 截取后求和:=SUM(TAKE(单列区域,行数))
  4. 整列去重清理尾行:=DROP(UNIQUE(整列区域),-1)

07

新旧方案对比
方案
优点
缺点
动态数组嵌套公式
无辅助列,一步完成多步骤操作,数据源更新自动刷新
仅新版 Excel 支持
旧版 INDEX+SMALL+LARGE
旧版 Excel 兼容
公式极长,多层嵌套可读性差,大数据容易卡顿

08

拓展玩法 & 避坑要点
  1. 嵌套顺序逻辑:先处理(排序 / 筛选 / 去重),再截取 / 剔除,这是动态数组组合的核心思路。
  2. 大小写:FILTER里条件"a"不区分大小写,A 和 a 等效。
  3. 搭配 TRIMRANGE:TAKE(SORT(TRIMRANGE(A2:D100),3,-1),3),只读取有效数据,避免整列引用卡顿。
  4. 报错处理:外层套 IFERROR,=IFERROR(TAKE(...),"无数据"),找不到数据时不显示 #CALC!。

09

小结
TAKE/DROP 作为动态数组的「裁剪工具」,搭配 SORT、FILTER、UNIQUE,把多步操作合并为一条公式。 
先筛选 / 排序 / 去重,再截取、剔除,不用复制粘贴、不用辅助列,做报表、数据看板非常高效

相关学习资料