分享

动态数组不是你想用就能用:动态数组的限制以及如何规避这些限制

 ExcelEasy 2022-04-18

我们前面介绍过Excel的动态数组,强调过动态数组是Excel中一个非常强大的功能,改变了我们处理数据以及使用Excel函数的方式。

但是,在很多Excel的功能中,要想使用动态数组会遇到一些问题。

当数据透视表遇到动态数组

如果将动态数组区域作为透视表的数据源:

按确定按钮后,成功创建透视表。

但是,如果你再回头检查这个数据源:

会发现,这个动态数组区域变成了固定区域:

$F$2:$F$10

这样就失去了动态的意义了。

说明数据透视表不支持使用动态数组区域作为数据源区域。

但是,我们可以规避它。

在名称管理器中创建名称

注意,这里有两个小技巧:

  1.  动态数组的区域(从E3开始)不包括标题行。

  2. 名称引用位置公式是:E3#:E2。

然后使用名称作为数据透视表的数据源:

这样,透视表就可以利用该区域的“动态”特性了。

当图表遇到动态数组

如果将动态数组区域作为图表的源数据:

Excel会返回错误信息,根本就不允许。

不过我们还可以通过名称绕过限制:

定义名称后(不需要小技巧,直接定义动态数组区域即可),可以在图表的源数据中直接引用该名称

注意,引用时要写工作簿名称,下面是完整的写法:

=工作簿名称.xlsx!QTY
当照相机遇到动态数组

照相机(链接图片)是一个非常有用的功能,在制作Dashboard时,我们经常用到它,例如,如果我们有下面的区域:

希望将该区域放在Dashboard中展示,但是不希望调整行高和列宽从而影响到Dashboard的布局,可以将该区域复制为链接图片:

第4步,粘贴的结果就是图片。这个图片是链接到原来区域的,当区域的数据变化后,图片的内容随之变化。而且,可以像图片一样缩放,并安排位置,非常方便。

实际上,这个图片本身就是一个公式:

但是,图片是链接到区域E2:F10的,这个区域实际上是动态数组区域:E2#,如果希望图片还能随着区域的大小变化自动变化链接区域,我们希望这个公式可以写作:

=E2#

但是,这行不通:

我们再次使用名称

然后将链接公式修改为这个名称:

当数据验证(数据有效性)遇到动态数组

实际上,在数据验证(数据有效性)中,可以直接使用动态数组区域:

我们以前讲过这方面的例子,请参见:

【Excel技巧】Filter函数的一个很有意思的应用:逐渐减少的下拉列表

当条件格式遇上动态数组

如下图,

F3中的公式返回的是个动态数组,我们希望通过条件格式,将大于150的数据都突出显示,将该条件格式应用于:

$F$3#

这里的#就是动态数组区域,

看上去没问题。但是一旦点击应用按钮后:

会发现这个区域变成了:

$F$3:$F$9。

这样就变成了一个固定区域,失去了动态数组的意义了。

因此,在条件格式中不能使用动态数组,而且,我们不能通过定义名称的方式绕过这个限制。

总结

简单来说,动态数组是个新功能,估计微软并没有来得及修改各种功能的实现方式从而个人支持动态数组(估计以后也不一定会支持)。对于最常见的功能来说:

  • 数据透视表,不能直接使用动态数组区域。可以通过名称使用。不过定义名称时需要用到两个小技巧。

  • 图表,不能直接使用动态数组区域。可以通过名称使用。不过使用时需指定工作簿名称。

  • 链接图表,不能直接使用动态数组区域。可以通过名称使用。

  • 数据验证(数据有效性),可以直接使用动态数组区域。

  • 条件格式,不能使用动态数组区域。

Excel+Power Query+Power Pivot+Power BI


Power Excel 知识库    按照以下方式进入知识库学习
Excel函数   底部菜单:知识库->Excel函数

自定义函数  底部菜单:知识库->自定义函数

Excel如何做  底部菜单:知识库->Excel如何做

面授培训  底部菜单:培训学习->面授培训

也可以在历史文章中学习Excel,Power Query,Power Pivot,Power BI,Power Automate各种技巧。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章