在同一个表中对比 Excel 的 TAKE、DROP 和 CHOOSECOLS — 安全提取所需行列

VBA・Officeカテゴリを表すパンダのイラスト VBA・Office

关于本文
本文是通过利用生成式AI的自动化生成流程创建的。我们查阅了 Microsoft 官方的 TAKE、DROP 和 CHOOSECOLS 规范,将其整理为可以从同一个小型表中安全观察“获取”、“排除”和“选择列”之间差异的形式。

验证状态:📘 已确认 Microsoft 官方规范・Excel 实机未确认
信息确认基准日:2026年10月5日

当您想从 Excel 表格中提取诸如“仅前2行”、“排除末尾1行”或“仅第1列和第3列”之类的内容时,能够在不删除原始数据的情况下将结果输出到其他位置的工具是 TAKE、DROP、CHOOSECOLS。

这三个函数虽然相似,但角色各不相同。

函数指定内容适用用途
TAKE获取多少行、多少列前 N 项、后 N 项
DROP排除多少行、多少列排除标题、排除末尾
CHOOSECOLS保留哪几列只提取需要的列

在同一个表中尝试这3种方法

在 A1:C4 中输入以下虚拟数据。

姓名部门销售额
青木销售120
伊藤总务80
佐藤销售150

首先,在另一个空单元格中输入以下内容。

=TAKE(A1:C4,2)

前两行将作为新数组返回。原表不会消失。

接下来将其更改为负数。

=TAKE(A1:C4,-2)

根据微软官方规范,如果在 TAKE 函数中为行数或列数指定负数,将从数组末尾开始获取。

DROP 意为“排除”而非“保留”

如果只想返回不包含标题行的数据部分,可以这样做:

=DROP(A1:C4,1)

排除前 1 行。

如果要排除末尾 1 行,则使用负数。

=DROP(A1:C4,-1)

将 TAKE 和 DROP 放在一起比较,就能看出区别。

flowchart LR
    A["元の配列"] --> B["TAKE: 指定分を取る"]
    A --> C["DROP: 指定分を除く"]
    A --> D["CHOOSECOLS: 指定列を選ぶ"]
    B --> E["新しい配列"]
    C --> E
    D --> E

CHOOSECOLS 按列号进行选择

适用于只想获取姓名和销售额、并希望去掉部门列的情况。

=CHOOSECOLS(A1:C4,1,3)

第 1 列和第 3 列将作为新的数组返回。

它与 DROP 的区别在于,它指定的不是“删除几列”,而是“返回哪几列”。

尝试只更改一处

=TAKE(A1:C4,2) 的 2 变为 -2。

这里需要注意的是,正数和负数的基准位置会发生变化。

同样,对于 DROP,

=DROP(A1:C4,1)
=DROP(A1:C4,-1)

通过对比,可以确认头部和尾部的区别。

指定 0 会发生什么?

Microsoft Support 解释称,如果在 TAKE 或 DROP 的行数或列数中指定 0 且结果为空数组时,会返回 #CALC!。

有意尝试以下操作。

=TAKE(A1:C4,0)

由于未在真实的 Excel 环境中确认结果,因此显示结果不作为“实际测量”对待。请在实际的工作簿中进行尝试,确认其在你当前使用的 Excel 中是如何显示的。

Microsoft 表示,当 CHOOSECOLS 中列号的绝对值为 0 或超过数组的列数时,将会返回 #VALUE!。

实际工作中应该使用哪一个?

只想确认前 10 条数据

=TAKE(A2:F100,10)

这在需要查看海量数据的前面部分时非常有用。

导入 CSV 后想要去除表头

=DROP(A1:F100,1)

这可以理解为“除去第一行之后的其余部分”。

只想从报表中提取所需的列

=CHOOSECOLS(A1:F100,1,3,6)

通过指定列的顺序可以创建另一个表格。由于不会直接删除原表,因此也很适合用于创建确认用的视图。

预留溢出区域

这些都是动态数组函数。由于结果会扩展到多个单元格,如果输出位置存在现有数据,则无法正常溢出。

在断定“公式出错”之前,请同时检查结果展开的范围内是否还残留着数值。

在工作中应用时的思路

最大的优势在于,无需直接删除或重新排列原始数据,就能在其他区域仅提取所需的部分。

例如:

  • 保持原样保留原始 CSV

  • 使用 TAKE 查看前部样本

  • 使用 DROP 排除表头

  • 使用 CHOOSECOLS 仅提取所需的列

通过这种方式,可以将“原始数据”与“加工后数据”分离。

但是,列号固定的 CHOOSECOLS 会受到源数据列结构更改的影响。如果每月收到的文件列顺序发生变化,可以考虑使用 Power Query 等其他方法。

GitHub 示例

官方信息

文档信息

文章??
在同一个表中对比 Excel 的 TAKE、DROP 和 CHOOSECOLS — 安全提取所需行列
?布日期
更新日期
来源
https://papanda925.com/?p=18014&lang=zh

?可: ?于本站?有相??利的正文及原??表,除非?有?明,可依据 CC BY 4.0 使用。本文可能包含使用生成式AI?建或??的内容。若代??有?可声明,或?接的GitHub???定了?可,?代?以??可?准。引用内容、第三方?料、?片及商?不在本?可范?内。 使用政策

标题和URL已复制