excel 公式中的自动范围选择

Automate range selection in excel formula

如何在 excel 公式中将范围 selection 自动化。

例如,如果我在 sheet(不低于范围)的某处使用 SUM 公式作为 =SUM(A1:A10)。如果现在在更多单元格中更新值,比如直到 A15,我将不得不手动将公式更新为 =SUM(A1:A15)。等等。

如何将上述公式自动化到 select 范围,直到包含该值的最后一行。

请原谅我重复或愚蠢。我找不到任何具体的内容。

您正在寻找 so-called 动态范围。您可以使用 SUM(A1:INDEX($A:$A,MATCH(2,1/($A:$A<>"")),1))。 也可以:SUM(A1:INDEX($A:$A,COUNTA($A:$A),1)),前提是您确保 而不是 将指定范围内的单元格留空。第一个也适用于中间的空白。

要设置范围的最大值,请将 $A:$A 更改为 $A:$A


更新:解释公式。 INDEX(rng, row, col) 在这里与 col = 1(范围的第一个 col;我们可以将其省略)和动态行引用一起使用,以创建类似于 A1:A" & last_row 的动态范围。 COUNTA($A:$A) 将为我们提供正确的行(如果您填写的值没有空格)。例如。下面,在 A 列中,它可以使用,但在 B 列中,我们得到了错误的行(我们希望这里有 5,而不是 4):

使用MATCH(2,1/($A1:$A5<>""))解决了这样的问题。这里,($A1:$A5<>"") 将解析为 {TRUE;TRUE;TRUE;FALSE;TRUE}。接下来,1/{array} 将解析为 {1;1;1;#DIV/0!;1}(因为 TRUE = 1FALSE = 0)。我们正在尝试匹配 2,它不存在(因此,它可以是任何值 > 1)。我们隐式使用 match_type = 1(默认值),在没有完全匹配的情况下,return 数组中最后一个值的位置 低于 2 ,即对于 col B,它将 return 5 引用到数组中的第四个也是最后一个 1