excel 中 indirect 函数使用方法和应用实例excel 中 indirect 函数使用方法和应用实例 第一种作用:创建固定的数值组 在一些公式中,需要一组数值,比如图示中,我们想求列 B 中最大的 3 个数值的平均值。在公式中,可以输入数值,如单元格 D4 中所示: =AVERAGE(LARGE(B1:B8,{1,2,3})) 假如需要更多的一组数值,那么可能不想输入这些数值。此时,可以使用 ROW 函数,如在单元格 D5 中使用的数组公式: =AVERAGE(LARGE(B1:B8,ROW(1:3))) 还可以将 ROW 函数和 INDIRECT 函数联合使用,也是数组公式: =AVERAGE(LARGE(B1:B8,ROW(INDIRECT(“1:3″)))) 上述 3 个公式的结果相同。 然而,假如在工作表的顶部插入行,第二个公式返回不正确的结果,因为行数被调整了。现在,显示了第 3、第 4、第 5 个最大数值的平均值,而不是求最大的 3 个数值的平均值。使用INDIRECT 函数,第 3 个公式保持正确的行引用,并继续显示正确的结果。第二种作用:从工作表、行、列信息创建引用在 INDIRECT 函数中使用 FALSE 作为第二个参数容易创建基于行号和列号的引用。在本例中,创建 R1C1 样式的引用,还包括了工作表名 — ‘MyLinks’!R2C2。=INDIRECT(“’” & B3 & “’!R” & C3 & “C” & D3,FALSE)第三种作用:创建对静态命名区域的引用 INDIRECT 函数也可以创建对命名区域的引用。在本例中,蓝色单元格区域被命名为 NumList,在列 B 中也有一个基于该列的数值数的动态区域。通过在 SUM 函数中使用区域名称,每个单元格都能够计算总和,正如在单元格 E3 和 E4 中所看到的。=SUM(NumList) 或 =SUM(NumListDyn)第四种作用:创建开始部分固定的引用在第一个示例中,列 C 和列 E 有相同的数字,使用 SUM 函数求得的和也是相同的。然而,所使用的公式略微有点不同。在单元格 C8中,公式为:=SUM(C2:C7)在单元格 E8 中,INDIRECT 函数创建对开始单元格 E2 的引用:=SUM(INDIRECT(“E2″):E7)假如在列表的顶部插入一行,例如输入 January 的数量,列 C 中的和不会改变,但公式发生了变化,根据被插入的行进行了调整:=SUM(C3:C8)然而,INDIRECT 函数锁定开始单元格为 E2,因此 January 的数量被自动包括在 E 列的汇总单元格中。结束单元格改变,但是开始单元格没有受影响。=SUM(INDIRECT(“E2″):E8)