您的Excel数据经常更改,因此创建一个动态定义的范围以自动扩展和收缩到您的数据范围的大小是很有用的。让我们看看怎么做。
通过使用动态定义的区域,当数据更改时,您将不需要手动编辑公式、图表和数据透视表的区域。这将自动发生。
有两个公式用于创建动态范围:偏移和索引。本文将重点介绍如何使用索引函数,因为它是一种更有效的方法。OFFSET是一个易失性函数,会降低大型电子表格的速度。
在Excel中创建动态定义范围
对于我们的第一个示例,我们有如下所示的单列数据列表。
我们需要这是动态的,以便在添加或删除更多国家/地区时,范围会自动更新。
对于本例,我们希望避免使用标题单元格。因此,我们希望范围为$A$2:$A$6,但要动态。要执行此操作,请单击公式>定义名称。
在“名称”框中键入“国家”,然后在“引用”框中输入下面的公式。
=$A$2:索引($A:$A,COUNTA($A:$A))
在电子表格单元格中键入此公式,然后将其复制到“新名称”框中有时会更快、更容易。
这是怎么回事?
公式的第一部分指定范围的起始单元格(在本例中为A2),然后是范围运算符(:)。
=$A$2:
使用范围运算符会强制索引函数返回范围,而不是单元格的值。然后将INDEX函数与COUNTA函数一起使用。COUNTA计算A列中非空单元格的数量(在本例中为6个)。
索引($A:$A,COUNTA($A:$A))
此公式要求INDEX函数返回A列中最后一个非空单元格的范围($A$6)。
最终结果是$A$2:$A$6,由于COUNTA函数,它是动态的,因为它将找到最后一行。现在,您可以在数据验证规则、公式、图表或需要引用所有国家名称的任何地方使用这个“国家”定义的名称。
创建双向动态定义范围
第一个示例仅在高度上是动态的。但是,只要稍加修改和另一个COUNTA函数,您就可以创建高度和宽度都是动态的范围。
在本例中,我们将使用下面显示的数据。
这一次,我们将创建一个动态定义的范围,其中包括标头。单击公式>定义名称。
在“名称”框中键入‘“Sales”,然后在“References to”框中输入以下公式。
=$A$1:索引($1:$1048576,COUNTA($A:$A),COUNTA($1:$1))
此公式使用$A$1作为起始单元格。然后,索引函数使用整个工作表的一个范围($1:$1048576)进行查找和返回。
其中一个COUNTA函数用于对非空行进行计数,另一个用于非空列,使其在两个方向上都是动态的。虽然此公式从A1开始,但您可以指定任何起始单元格。
现在,您可以在公式中使用此定义的名称(Sales),也可以将其用作图表数据系列,以使其成为动态的。