
告别手动拖拽!动态数组让你的Excel飞起来
还在手动拉公式拉到手指发酸?还在为Ctrl+Shift+Enter那套古老操作挠头?是时候认识一下动态数组了——一个公式,自动填满,数据变了它也跟着变,让Excel自己动起来。
什么是动态数组?
简单说,动态数组就是一个公式生成一串结果,然后自动“溢出”到旁边的一堆单元格里。就像往水里扔颗石子,波纹会自动扩散开去。
在动态数组出现之前,要在多个单元格显示计算结果,要么手动把公式拖拽几百行,要么用那种老掉牙的CSE数组公式(按Ctrl+Shift+Enter输入的那种)。传统CSE数组公式的输出范围是固定的,数据多了不会自动扩,数据少了也不会自动缩,特别死板。
动态数组的出现彻底改写了这一规则。你只需在左上角单元格输入公式并敲下Enter,Excel就会自动把结果填满——数据增加时,溢出范围自动扩大;数据减少时,它也跟着缩小。
举个最直观的例子:在A2单元格输入下面这个公式,然后敲Enter:
text
=SORT(UNIQUE(A2:A100))只需这一下,一个已排序且去重后的列表就会自动生成在对应区域——无需CSE组合键,也无需任何辅助列。
动态数组是怎么工作的?
当动态数组公式产生多个结果时,Excel会把这些结果放在一块连续的单元格区域里,这块区域就叫溢出范围。关于溢出范围,有几件事你需要知道:
只有左上角那个单元格包含实际公式,其他单元格只显示结果数值。
源数据一变化,溢出范围自动更新,完全不用手动干预。
如果溢出区域里有任何单元格已经被占用了,Excel会报#SPILL!错误——把挡路的单元格清空就行了。
用 #运算符可以引用整个溢出范围。比如
=SUM(A2#)会对A2单元格溢出的所有数值求和,当溢出范围扩大时,求和范围也会自动调整。⚠️ 注意:动态数组公式在Excel表格(即Ctrl+T创建的智能表)中不起作用,请把它放在普通的网格区域里。
必学的6个核心动态数组函数
下面是在ONLYOFFICE电子表格编辑器中使用频率最高的6个动态数组函数:
1. FILTER —— 按条件筛选数据
根据指定条件提取符合条件的行。
公式示例:=FILTER(A2:D11, B2:B11="东部")
效果:从A2:D11区域中筛选出“东部”地区对应的所有行数据,结果自动向下溢出填充。

2. UNIQUE —— 提取不重复值
从指定区域中返回去重后的唯一值列表。
公式示例:=UNIQUE(A1:A8)
效果:将A1:A8区域中的所有重复值合并为唯一值列表,自动向下填充。

3. SORT —— 用公式排序
无需手动点击排序按钮,直接通过公式对区域进行排序。
公式示例:=SORT(A2:A9)
效果:将A2:A9区域中的数据按升序排列,结果自动溢出填充。

4. SEQUENCE —— 生成连续数字序列
快速生成一个包含连续数字的网格区域。
公式示例:=SEQUENCE(4; 7; 1; 1)
参数说明:4行、7列、起始数字1、步长1。结果生成4×7的连续数字网格。

5. RANDARRAY —— 批量生成随机数
用随机数填充指定区域。
公式示例:=RANDARRAY(5; 3; 1; 100; 1)
参数说明:5行、3列、最小值1、最大值100、最后一个参数设为1表示生成整数(设为0则生成小数)。每次刷新工作表时,该公式都会重新计算出一批新的随机数。

6. XLOOKUP —— VLOOKUP的现代替代品
能够一次性返回多列匹配结果,再也不用写嵌套公式了。
公式示例:=XLOOKUP(G2, A2:A200, B2:D200, "Not found")
效果:在A2:A200中查找G2单元格的值,匹配成功后返回B2:D200对应行的三列数据,结果自动向右溢出填充。如果没找到则显示"Not found"。

💡 小贴士:把这些函数嵌套起来组合使用,威力更大。比如
=SORT(UNIQUE(FILTER(...))),一口气完成筛选、去重、排序三步操作。如果对函数参数的具体用法不太熟悉,可以先看看ONLYOFFICE的相关教程。
为什么值得用动态数组?
以下是动态数组带来的5大核心优势:
=SORT(UNIQUE(FILTER(...))) |
使用时需要注意什么?
实操案例:用RANDARRAY + RANK做绩效评分卡
这个案例展示如何把多个动态数组函数组合起来,实现一个完整的应用场景。
场景:为一个5人团队模拟绩效得分,并自动为每个人分配排名。
操作步骤:
在A2:A6单元格区域输入5个员工姓名。
在B2单元格中生成50到100之间的随机分数:
text
=RANDARRAY(5, 1, 50, 100, 1)这会在B2:B6中生成5个随机整数分数。⚠️ 一旦你对生成的分数感到满意,请立即将它们粘贴为“数值”(快捷键Ctrl+Shift+V → 选择“仅粘贴数值”),否则每次工作表刷新时分数都会自动重算。

在C2单元格中为每个分数分配排名:
text
=RANK(B2, $B$2:$B$6, 0)然后将这个公式向下拖动到C6单元格。注意这里的$符号用来锁定引用范围$B$2:$B$6,确保每个分数都能与完整的5人分数集合进行比较——如果不加$符号,每一行只会跟自己的分数比较,排名永远是1。
最终效果:呈现一个三列的成绩单——A列姓名、B列得分、C列团队排名。每当分数变动时,排名结果会自动更新。整个过程无需手动排序,也无需借助任何辅助列。

哪些人最适合用动态数组?
数据分析师:利用FILTER、UNIQUE和SORT函数,无需辅助列或数据透视表,即可构建自动更新的数据汇总报表。
财务团队:构建随新交易数据录入而自动刷新的财务报表,并利用SEQUENCE函数搭建财会周期的结构框架。
项目经理:创建任务追踪表,动态列出当前活跃的项目、唯一的任务负责人或逾期未完成的事项——整个过程无需编写任何宏代码。
什么时候该考虑用动态数组?
以下几个场景最适合使用动态数组:
需要实时数据且无需手动更新的各类报表与仪表盘
构建下拉列表或数据汇总时需要提取唯一值清单
需要进行排名或筛选视图展示,但又不希望改动原始数据源
利用XLOOKUP函数进行多列查找匹配
如何开始体验动态数组?
动态数组是现代电子表格工作中极为实用的升级之一。一条公式即可替代数十条旧式公式,计算结果自动实时更新,让你的文档保持整洁有序且易于审计。
建议从小处着手:
把VLOOKUP列替换为XLOOKUP
制作下拉列表时尝试使用UNIQUE函数
用FILTER函数构建动态汇总表,取代传统的静态“复制-粘贴”表格
使用动态数据,你对电子表格的思维方式将因此迅速转变。
福利推荐(序列号获取方法)
豆豆容器市场专注提供优质Docker应用服务,集成一键式容器安装功能,助力用户快速部署OnlyOffice、协作空间、Jitsi-Meet会议系统、内网域名系统、Nextcloud、可道云等办公应用。平台新增IPv6内网直连技术,搭配自动化SSL证书配置及智能域名解析功能,为家庭云服务提供完整技术方案,简化私有云搭建与运维流程,轻松实现高效云端协作管理。
本容器市场针对各种nas设备优化,全线安装服务支持飞牛、群晖、威联通、麒麟、ubuntu、centors等各种linux系统。
独家发布飞牛云豆豆编辑器,支持直接编辑飞牛磁盘上的文档。
onlyoffice协作空间除了提供常规的标准版/企业版/开发版,还特别针对机器配置较低的用户,独家提供协作空间迷你版(仅需5g内存即可正常运行,官方其他版本需要16g内存)。
onlyoffice已经支持ARM和x86双模式安装,其他软件同步支持中。
地址: https://ds.sendtokindle.net.cn/
夜雨聆风