乐于分享
好东西不私藏

真正好用的 Excel 技巧,是原数据纹丝不动 ,结果却自动跟着变的那种

真正好用的 Excel 技巧,是原数据纹丝不动 ,结果却自动跟着变的那种

本文看点

01

三个参数,一次搞懂基础语法

02

正数从头、负数从尾的奥义

03

与 SORT/FILTER 的黄金搭档

01

CONCEPT

TAKE / DROP 函数是什么?

Excel 中的 TAKE 和 DROP函数,就像一对「数据取舍指挥官」!它们属于 Excel 动态数组函数家族,专门负责从数据中提取或删除指定数量的行和列。

通俗理解

TAKE 像切蛋糕

你说「给我前 3 块」,它就切前 3 块给你---提取前几行或列

DROP 像削苹果皮

你说「去掉外面 2 层」,剩下的都是果肉---删除后几行或列

一对双胞胎

一个「取」,一个「丢」,配合默契。

重要提示:TAKE 和 DROP 函数仅支持 Excel 365 / Excel 2021 / WPS 新版。如果你的 Excel 版本较旧,会显示 #NAME? 错误。

02

SYNTAX

TAKE / DROP 基础语法详解

TAKE 和 DROP 的语法几乎一模一样,只需要记住三个参数

TAKE 语法

=TAKE(数组, 行数, [列数])

DROP 语法

=DROP(数组, 行数, [列数])

参数说明

参数
说明
是否必填
示例
数组
要操作的数据区域
必填
A2:C100
行数
要提取/删除的行数(可留空,留空即取全部行)
必填*
5 或 -3
列数
要提取/删除的列数(可留空,留空即取全部列)
可选
2 或 -1

参数规则

1

正数 = 从开头取/删(如 5 = 前 5 行)

2

负数 = 从末尾取/删(如 -3 = 最后 3 行)

3

0 = 报错!行数或列数写 0 会返回 #CALC! 错误(空数组),想要「全部」请直接留空该参数

4

省略行数/列数 = 提取/删除该方向全部行/列

* 行数与列数至少提供其一;只用一个方向时,另一个方向留空即可(如 =TAKE(A2:C10, , 2) 表示取全部行、仅取前 2 列)。

03

TAKE

TAKE 提取数据(入门)

TAKE 函数用于从数组中提取指定数量的行和/或列。

实战示例:提取前 3 名销售冠军

假设 A2:C6 是销售排名表:

第 2 参数 3 = 从数组开头提取前 3 行;第 3 参数省略 = 提取所有列。

实战技巧:① 只提取特定列:TAKE(A2:C6, , 2) 提取所有行,但只取左边 2 列;② 提取最后 N 行:TAKE(A2:C6, -3) 提取最后 3 行;③ TAKE 常与 SORT 配合做排行榜:=TAKE(SORT(数据, 排序列, -1), N)

04

DROP

DROP 删除数据(入门)

DROP 函数用于从数组中删除指定数量的行和/或列,返回剩余部分

实战示例:删除标题行 + 删除多余列

原始数据包含标题行和不需要的序号列:

第 2 参数 1 = 删除第 1 行(标题行);第 3 参数 1 = 删除第 1 列(序号列)。

实战技巧:① 导入数据时常有标题行,用 DROP(数据, 1) 一键去掉;② 数据末尾常有合计行,用 DROP(数据, -1) 删除最后 1 行;③ DROP 和 TAKE 可以组合使用,实现精准裁剪。

05

NEGATIVE

负数参数:从末尾操作

TAKE 和 DROP 的负数参数非常实用,表示从数组的末尾开始操作。

公式
含义
结果
=TAKE(A2:C10, -3)
提取最后 3 行
倒数 3 条记录
=TAKE(A2:C10, , -2)
提取最后 2 列
右边 2 列
=DROP(A2:C10, -2)
删除最后 2 行
去掉末尾 2 行
=DROP(A2:C10, , -1)
删除最后 1 列
去掉最右列

记忆口诀

·

正数 → 从头开始数(1, 2, 3…)

·

负数 → 从尾开始数(…-3, -2, -1)

核心要点:① TAKE(数组, -3) = 取末尾 3 行,常用于查看最新记录;② DROP(数组, -1) = 删除末尾 1 行,常用于去掉合计行;③ 两个参数可以同时为负:TAKE(A1:D10, -3, -2) = 取最后 3 行、最后 2 列。

06

COMBO

组合技:TAKE / DROP 的黄金搭档

TAKE 和 DROP 的真正威力在于与其他动态数组函数组合使用。

6.1 排序后取前 N 名

=TAKE(SORT(A2:C10, 3, -1), 5)

SORT 按第 3 列降序排列,TAKE 取排序后的前 5 行。用途:排行榜、TOP N 榜单。

6.2 筛选后取前 N 条

=TAKE(FILTER(A2:C10, B2:B10="销售"), 3)

FILTER 筛选出销售部记录,TAKE 取筛选结果的前 3 条。用途:精准定位头部数据。

6.3 筛选后删除标题

=DROP(FILTER(A2:C10, B2:B10="销售"), 1)

FILTER 筛选出销售部记录,DROP 删除结果中的第 1 行(标题行)。用途:清洗筛选结果。

6.4 去重后取前 N 个

=TAKE(UNIQUE(A2:A10), 10)

UNIQUE 去重,TAKE 取去重后的前 10 个。用途:去重榜单。

组合逻辑:记住一个原则——TAKE / DROP 永远是「最后一道工序」。先 SORT 排序、先 FILTER 筛选、先 UNIQUE 去重,最后用 TAKE / DROP 裁剪到想要的大小。

07

CASE

实战案例:销售排行榜 TOP 5

【场景】公司有 8 名销售人员的业绩数据,需要快速生成「业绩 TOP 5 排行榜」。

需求拆解

1

按业绩从高到低排序

2

取排序后的前 5 名

FORMULA

=TAKE(SORT(A2:C9, 3, -1), 5)

冠军:王五,总业绩 ¥12,000

实战技巧:

① SORT 的第 2 参数 3 = 按第 3 列(业绩)排序;

② SORT 的第 3 参数 -1 = 降序(1=升序,-1=降序);

③ TAKE 的第 2 参数 5 = 取前 5 行;

08

ERRORS

常见错误与解决方法

使用 TAKE 和 DROP 函数时,这些坑你踩过吗?提前了解,少走弯路!

错误
原因
解决方法
#NAME?
当前 Excel 版本不支持 TAKE / DROP(如 Excel 2019 及更早版本)
升级到 Excel 365 / 2021,或使用 WPS 新版
#CALC!
行数或列数填写了 0(会生成空数组)
想要「全部」就留空该参数,不要写 0
#SPILL!
结果要溢出的区域被其他数据占用
清空结果区域下方/右侧的单元格
#NUM!
源数组过大,超过计算限制
缩小源数据区域范围
只取了 1 列却想要多列
第 3 参数(列数)误写成 1
省略第 3 参数,或写正确的列数

建议公式速查

·

=TAKE(A2:C10, 5) → 取前 5 行

·

=TAKE(A2:C10, -3) → 取最后 3 行

·

=TAKE(A2:C10, , 2) → 取左边 2 列

·

=DROP(A2:C10, 1) → 删除第 1 行(标题)

·

=DROP(A2:C10, -1) → 删除最后 1 行(合计)

·

=TAKE(SORT(...), 5) → 排序后取前 5

·

=TAKE(FILTER(...), 3) → 筛选后取前 3

09

PRACTICE

练习题 · 巩固提高

动手练习是掌握 TAKE 和 DROP 函数的最佳方式!打开 Excel,跟着题目练一练吧!

基础题 ★☆☆

题目:A2:C10 是员工表,如何提取前 5 行?

答案:=TAKE(A2:C10, 5)

进阶题 ★★☆

题目:如何删除数据表的第 1 行标题和第 1 列序号?

答案:=DROP(A1:D10, 1, 1)

挑战题 ★★★

题目:如何提取数据表的最后 2 列?

答案:=TAKE(A2:D10, , -2)

思考题 ★★★★

题目:如何获取「销售部」业绩前 3 名?(假设 B 列是部门,C 列是业绩)

答案:=TAKE(SORT(FILTER(A2:C10, B2:B10="销售"), 3, -1), 3)

综合题 ★★★★★

题目:数据 A1:C20 包含标题行和末尾合计行,如何去掉头尾,只保留中间数据并取前 10 行?

答案:=TAKE(DROP(DROP(A1:C20, 1), -1), 10)

(先 DROP(A1:C20, 1) 去掉标题行,再 DROP(…, -1) 去掉末尾合计行,最后 TAKE(…, 10) 取中间前 10 行)

提示:TAKE / DROP 的核心是「先定方向(正/负),再定数量,最后裁剪」。简单提取用 TAKE,清理数据用 DROP,复杂场景用组合技。

CHEATSHEET

TAKE / DROP 函数速查卡

一张表记住所有用法,收藏备用!

场景
公式
说明
提取前 N 行
=TAKE(A2:C10, 5)
从开头提取前 5 行
提取最后 N 行
=TAKE(A2:C10, -3)
从末尾提取最后 3 行
提取前 N 列
=TAKE(A2:C10, , 2)
省略第 2 参数,提取左边 2 列
删除标题行
=DROP(A2:C10, 1)
删除第 1 行
删除最后 N 行
=DROP(A2:C10, -2)
删除最后 2 行(去掉合计行)
删除第 1 列
=DROP(A2:C10, , 1)
删除左边第 1 列
排序 + 取前 N
=TAKE(SORT(A2:C10, 3, -1), 5)
排行榜必备
筛选 + 取前 N
=TAKE(FILTER(A2:C10, B2:B10="销售"), 3)
精准定位头部数据
去重 + 取前 N
=TAKE(UNIQUE(A2:A10), 10)
去重榜单

每天一个 Excel 函数  · TAKE / DROP 数据取舍指挥官

END

如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见。