Excel 函数中的冒号

Excel 函数中的冒号

我正在从 Google 学习 Excel 函数和建模并不断反复试验,因此只想澄清以下一点以正确理解我的基本理解:

当谈到 excel 中的冒号时,我理解它意味着定义一个单元格范围,但是当我输入=F3:F11excel 时,结果却是 30。请问我为什么会这样?我尝试使用平均值/模式等来解释它,并计算了公式,但未能找到其背后的任何逻辑意义。

在此处输入图片描述

答案1

F3:F11是一个范围,但是您将其输入到仅适合提供单个值的地方,因此 Excel 会尝试使用以下规则从该范围中选择一个值:

  • 如果范围位于单列中(就像这样),Excel 将从与引用单元格位于同一行的该列中选择单元格(#VALUE!如果范围与该行不相交,则会出现错误)
  • 如果范围位于一行中,Excel 将选择与引用单元格位于同一列中的该行单元格(#VALUE!如果范围与该列不相交,则会出现错误)
  • 如果范围是二维的,Excel 会选择与引用单元格位于同一行和同一列的单元格(#VALUE!如果范围与范围行和列不相交,则会出现错误) - 显然,这仅当范围和调用单元格位于不同的工作表上时才有效

警告:

  • 如果在适合范围或数组的地方给出了范围引用,则将使用整个范围 - 因此,在单元格中M4=F3:F11+1将是 31,但=sum(F3:F11,1)将是 331。
  • 如果在同一个单元格中以数组公式的形式输入(使用 ctrl+shift+enter),公式将返回整个数组,但您只会看到一个单元格,因为结果范围内只有这个单元格。结果将是 10。大概 Google 的ARRAYFORMULA工作原理也是一样。

这什么时候有用?

一般来说,我不喜欢在引用同一张表中的单元格时使用这种行为 - 普通的相对引用 ( F4) 同样有效,而且我不需要担心我的公式将如何解释引用。(请参阅上面的警告声明。)

但是,这样做的一个用途是当您希望一个工作表与另一个工作表一一对齐时。我可以将我想要的列放在列引用中(例如=Sheet1!$A:$A),并让其他列成为计算字段。我也可以使用相对引用来执行此操作(例如,=$A1向下拖动),但引用列有优势 - 我可以在不破坏引用的情况下插入、删除或排序源表中的行。(使用单单元格引用,在插入时,我会得到引用数据中缺少一行;在删除时,会出现错误#REF!;在排序时,两张表将不再按相同的顺序排列。)

答案2

简短回答:如果你是因为编辑电子表格而从 Google 进入这里,然后突然出现#VALUE,请尝试输入单元格并按Ctrl+Alt+Enter


长答案,扩展也许我们可以偷走AVan的观点:

如果范围位于单列中(就像这样),Excel 将从与引用单元格位于同一行的该列中选择单元格(如果范围与该行不相交,则会出现错误 #VALUE!)

此行为取决于公式是否为数组公式*

在下图的 C3 中,我有=A5:A7,这是一个错误,因为第 3 行(引用单元格)中的该范围内没有值。

在 D3 中,我有相同的情况=A5:A7,但我按下了 Ctrl+Shift+Enter。这只是 Excel 尝试将数组转换为单个单元格,并不是特别有用:

数组引用示例

如果你想在每一行上应用一个函数,这个函数就会变得很强大,例如这个乘积和求和运算:

乘积与和

* 这一发现是经过 1 小时痛苦调试的结果,所以希望我能为某人减轻一些痛苦……

相关内容