【问题标题】:Array formula not working in Excel数组公式在 Excel 中不起作用
【发布时间】:2011-10-25 10:31:10
【问题描述】:

我在 Excel 中有下表(空格为空):

    A  B  C  D
1   1
2   3
3   4
4  -2
5   4
6   9
7   8
8
9
10

我想使用 QUARTILE 函数将 A 列的最小值从 A1 返回到 A1000000,同时排除所有负值。我想要它从 A1 到 A1000000 而不是 A1 到 A7 的原因是因为我想更新表(从 A8 开始添加新行)并且让公式也自动更新。我想要 QUARTILE 而不是 MIN 函数的原因是因为我将扩展它以计算其他统计数据,例如第 1 和第 3 个四分位数。

这个函数正常工作,返回1(按ctrl+shift+enter):

QUARTILE(IF(A1:A7 > -1, A1:A7), 0)

但是,当我尝试以下操作时,它仍应返回 1(按 ctrl+shift+enter)返回 0:

QUARTILE(IF(A1:A1000000 > -1, A1:A1000000), 0)

我也尝试了以下,它返回 0(按 ctrl+shift+enter):

QUARTILE(IF(AND(NOT(ISBLANK(A1:A1000000)), A1:A1000000 > -1), A1:A1000000), 0)

有人能解决我的问题吗?

【问题讨论】:

  • 为什么是>-1 而不是>=0?如果您在某处有 -0.7,那么前者会错误地将其报告为“非负”最小值。或者你只有整数?不过,>=0 更具可读性。

标签: arrays debugging excel function


【解决方案1】:

创建一个动态命名范围,例如称为rng,由=OFFSET($A$1,0,0,COUNT($A1:$A10000),1)定义

然后通过=QUARTILE(IF(rng >-1,rng), 0)修改您的数组公式以引用rng

【讨论】:

    【解决方案2】:

    实际上你所拥有的作品。尝试做:

    =QUARTILE(IF(A:A > 0,A:A ),0)
    

    您返回 0 的原因是,在运行此公式时,空白单元格的值被视为 0。例如,删除 A1:A7 范围内的一个值,您的原始公式将返回 0。此外,如果可能,我将在整个 A 列上运行公式(为了便于阅读等)

    或者如果该数字在列表中,您是否需要返回“0”?

    【讨论】:

      猜你喜欢
      • 2018-06-05
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 2018-04-13
      • 1970-01-01
      相关资源
      最近更新 更多