ARTICLE · 1114159
Excel 动态数组高阶组合|TAKE+SORT+FILTER+UNIQUE,4 个实战组合公式教程
Excel 动态数组高阶组合|TAKE+SORT+FILTER+UNIQUE,4 个实战组合公式教程
适用版本:Microsoft 365 / Excel 2021 及以上动态数组版本 前面我们学会了 TAKE(截取)、DROP(剔除),单独使用功能有限。 把 TAKE、SORT、FILTER、UNIQUE 组合嵌套,就能一步完成:排序、筛选、提取、去重清理,不用辅助列,自动溢出结果。 数据源说明 数据源A2:D23,包含【月份、产品、销量、金额】销售明细表 
案例 1:SORT+TAKE,提取销量 TOP3 完整记录 公式 公式拆解 
案例 2:FILTER+TAKE,提取 A 产品最后 3 条销售记录 公式 公式拆解 
案例 3:TAKE+SUM,提取前 N 行再汇总金额 公式 公式拆解 
案例 4:UNIQUE+DROP,去重并清理末尾无效空值 公式 公式拆解 
通用组合模板,直接套用 新旧方案对比
拓展玩法 & 避坑要点 小结 TAKE/DROP 作为动态数组的「裁剪工具」,搭配 SORT、FILTER、UNIQUE,把多步操作合并为一条公式。 先筛选 / 排序 / 去重,再截取、剔除,不用复制粘贴、不用辅助列,做报表、数据看板非常高效 

01

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

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

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

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

06
取 TOPN: =TAKE(SORT(区域,排序列,升降序),N)筛选后取末尾 N 条: =TAKE(FILTER(区域,条件),-N)截取后求和: =SUM(TAKE(单列区域,行数))整列去重清理尾行: =DROP(UNIQUE(整列区域),-1)
07
08
嵌套顺序逻辑:先处理(排序 / 筛选 / 去重),再截取 / 剔除,这是动态数组组合的核心思路。 大小写:FILTER里条件"a"不区分大小写,A 和 a 等效。 搭配 TRIMRANGE: TAKE(SORT(TRIMRANGE(A2:D100),3,-1),3),只读取有效数据,避免整列引用卡顿。报错处理:外层套 IFERROR, =IFERROR(TAKE(...),"无数据"),找不到数据时不显示 #CALC!。
09
