使用Excel公式中的INDIRECT函数更改公式中使用的单元格引用的范围,而无需编辑公式本身。即使您的电子表格发生更改,也可以确保使用相同的单元格。
注意:本文中的说明适用于Excel 2019,Excel 2016,Excel 2013,Excel 2010,Excel for Mac和Excel Online。
使用带有COUNTIF - INDIRECT公式的动态范围
INDIRECT函数可以与许多接受单元格引用作为参数的函数一起使用,例如SUM和COUNTIF函数。
使用INDIRECT作为COUNTIF的参数创建一个动态范围的单元格引用,如果单元格值符合条件,则可以由函数计算。它通过将文本数据(有时称为文本字符串)转换为单元格引用来实现此目的。
此示例基于上图中显示的数据。本教程中创建的COUNTIF - INDIRECT公式为:
= COUNTIF(INDIRECT(E1& “:” &E2), “> 10”)
在此公式中,INDIRECT函数的参数包含:
- 单元格引用E1和E2,它们包含文本数据D1和D6。
- 范围运算符,冒号(:)用双引号包围(' ')将冒号转换为文本字符串。
- 两个&符号(&)用于将结肠与细胞参考E1和E2连接或连接在一起。
结果是INDIRECT将文本字符串D1:D6转换为单元格引用,并将其传递给COUNTIF函数,以便在引用的单元格大于10时进行计数。
INDIRECT函数接受任何文本输入。这些可以是工作表中包含直接输入到函数中的文本或文本单元格引用的单元格。
动态更改公式的范围
请记住,目标是创建一个具有动态范围的公式。无需编辑公式本身即可更改动态范围。
通过改变位于单元格E1和E2中的文本数据,从D1和D6到D3和D7,可以容易地将函数总计的范围从D1:D6改变为D3:D7。这消除了直接编辑单元格G1中的公式的需要。
此示例中的COUNTIF函数仅计算包含数字的单元格(如果它们大于10)。尽管D1:D6范围内的五个单元格中有四个包含数据,但只有三个单元格包含数字。函数忽略空白或包含文本数据的单元格。
使用COUNTIF计算文本
COUNTIF功能不仅限于计算数字数据。它还通过检查是否与特定文本匹配来计算包含文本的单元格。
为此,在单元格G2中输入以下公式:
= COUNTIF(INDIRECT(E1& “:” &E2), “二”)
在该公式中,INDIRECT函数引用单元格B1至B6。 COUNTIF函数总计具有文本值的单元格数 二 在他们中。
在这种情况下,结果是1。
COUNTA,COUNTBLANK和INDIRECT
另外两个Excel计数功能是COUNTA,它计算包含任何类型数据的单元格,同时忽略空白或空单元格,COUNTBLANK只计算范围内的空白或空单元格。
由于这两个函数都具有与COUNTIF函数类似的语法,因此可以使用INDIRECT将它们替换为上述示例,以创建以下公式:
= COUNTA(INDIRECT(E1& “:” &E2))= COUNTBLANK(INDIRECT(E1& “:” &E2)
对于范围D1:D6,COUNTA返回4的答案,因为五个单元格中的四个包含数据。 COUNTBLANK返回1的答案,因为范围中只有一个空白单元格。 在所有这些公式中使用INDIRECT功能的好处是可以将新单元插入范围内的任何位置。 范围在各种函数内部动态移动,结果相应更新。 如果没有INDIRECT功能,则需要编辑每个功能以包括所有7个单元,包括新单元。 INDIRECT函数的好处是可以将文本值作为单元格引用插入,并在电子表格更改时动态更新范围。 这使得整个电子表格维护变得更加容易,尤其是对于非常大的电子表格。 为什么使用INDIRECT函数?