30 天内 30 个 Excel 函数:间接

恭喜! 你坚持到了马拉松的最后一天 30 天 30 个 Excel 函数. 这是一段漫长而有趣的旅程,在此期间您学到了许多有关 Excel 函数的有用知识。

马拉松第30天,我们将致力于函数的研究 间接 (INDIRECT),它返回由文本字符串指定的链接。 使用此功能,您可以创建相关的下拉列表。 例如,当从下拉列表中选择一个国家时,确定哪些选项将出现在城市下拉列表中。

那么,让我们仔细看看函数的理论部分 间接 (间接)并探索其应用的实际例子。 如果您有其他信息或示例,请在评论中分享。

功能 30:间接

功能 间接 (INDIRECT) 返回文本字符串指定的链接。

如何使用 INDIRECT 功能?

自功能 间接 (INDIRECT) 返回由文本字符串给出的链接,您可以使用它来:

  • 创建非移位初始链接。
  • 创建对静态命名范围的引用。
  • 使用工作表、行和列信息创建链接。
  • 创建一个不移位的数字数组。

语法间接(间接)

功能 间接 (INDIRECT) 具有以下语法:

INDIRECT(ref_text,a1)

ДВССЫЛ(ссылка_на_ячейку;a1)

  • 参考文本 (link_to_cell) 是链接的文本。
  • a1 – 如果等于 TRUE (TRUE) 或未指定,则将使用链接的样式 A1; 如果为 FALSE (FALSE),则样式 R1C1.

陷阱间接(间接)

  • 功能 间接 (INDIRECT) 每当 Excel 工作表中的值发生变化时都会重新计算。 如果在许多公式中使用该函数,这会大大减慢您的工作簿。
  • 如果函数 间接 (INDIRECT) 创建指向另一个 Excel 工作簿的链接,该工作簿必须打开,否则公式将报告错误 #REF! (#关联!)。
  • 如果函数 间接 (INDIRECT) 引用了超出行列限制的范围,公式会报错 #REF! (#关联!)。
  • 功能 间接 (INDIRECT) 不能引用动态命名范围。

示例 1:创建非移位初始链接

在第一个示例中,C 列和 E 列包含相同的数字,它们的总和使用函数计算 SUM (SUM) 也一样。 但是,公式略有不同。 在单元格 C8 中,公式为:

=SUM(C2:C7)

=СУММ(C2:C7)

在单元格 E8 中,函数 间接 (INDIRECT) 创建到起始单元格 E2 的链接:

=SUM(INDIRECT("E2"):E7)

=СУММ(ДВССЫЛ("E2"):E7)

如果您在工作表顶部插入一行并添加一月(Jan)的值,则 C 列中的金额不会改变。 公式将改变,对添加一行做出反应:

=SUM(C3:C8)

=СУММ(C3:C8)

然而,函数 间接 (INDIRECT) 将 E2 固定为起始单元格,因此一月会自动包含在 E 列总计的计算中。 结束单元格已更改,但起始单元格没有受到影响。

=SUM(INDIRECT("E2"):E8)

=СУММ(ДВССЫЛ("E2"):E8)

示例 2:链接到静态命名范围

功能 间接 (INDIRECT) 可以创建对命名范围的引用。 在此示例中,蓝色单元格构成范围 编号列表. 此外,还根据 B 列中的值创建了一个动态范围 数字列表动态,取决于此列中的数字数量。

两个范围的总和可以通过简单地将其名称作为函数的参数来计算 SUM (SUM),正如您在单元格 E3 和 E4 中看到的那样。

=SUM(NumList) или =СУММ(NumList)

=SUM(NumListDyn) или =СУММ(NumListDyn)

而不是在函数中键入范围名称 SUM (SUM),您可以参考写在工作表的单元格之一中的名称。 例如,如果名称 编号列表 写在单元格 D7 中,那么单元格 E7 中的公式将是这样的:

=SUM(INDIRECT(D7))

=СУММ(ДВССЫЛ(D7))

不幸的是功能 间接 (INDIRECT) 无法创建动态范围引用,因此当您将此公式复制到单元格 E8 中时,您将收到错误消息 #REF! (#关联!)。

示例 3:使用工作表、行和列信息创建链接

您可以轻松地根据行号和列号创建链接,以及将值 FALSE (FALSE) 用于第二个函数参数 间接 (间接)。 这就是样式链接的创建方式 R1C1. 在此示例中,我们还向链接添加了工作表名称 - 'MyLinks'!R2C2

=INDIRECT("'"&B3&"'!R"&C3&"C"&D3,FALSE)

=ДВССЫЛ("'"&B3&"'!R"&C3&"C"&D3;ЛОЖЬ)

示例 4:创建一个不移位的数字数组

有时您需要在 Excel 公式中使用数字数组。 在下面的示例中,我们希望对 B 列中的 3 个最大数字进行平均。可以将这些数字输入到公式中,就像在单元格 D4 中所做的那样:

=AVERAGE(LARGE(B1:B8,{1,2,3}))

=СРЗНАЧ(НАИБОЛЬШИЙ(B1:B8;{1;2;3}))

如果您需要更大的数组,那么您不太可能希望在公式中输入所有数字。 第二个选项是使用函数 (行),如在单元格 D5 中输入的数组公式中所做的那样:

=AVERAGE(LARGE(B1:B8,ROW(1:3)))

=СРЗНАЧ(НАИБОЛЬШИЙ(B1:B8;СТРОКА(1:3)))

第三个选项是使用函数 (字符串)连同 间接 (间接),与单元格 D6 中的数组公式一样:

=AVERAGE(LARGE(B1:B8,ROW(INDIRECT("1:3"))))

=СРЗНАЧ(НАИБОЛЬШИЙ(B1:B8;СТРОКА(ДВССЫЛ("1:3"))))

所有 3 个公式的结果将相同:

但是,如果在工作表顶部插入行,则第二个公式将返回不正确的结果,因为公式中的引用会随着行移位而改变。 现在,该公式将返回第三、第四和第五大数字的平均值,而不是三个最大数字的平均值。

使用函数 间接 (INDIRECT),第三个公式保持正确的行引用并继续显示正确​​的结果。

发表评论