将 MEDIAN 等函数应用于数组公式中的各个元素 - Excel

Apply functions like MEDIAN to individual elements in an array formula - Excel

我正在使用 MEDIAN 函数来计算两个日期范围的重叠。 公式看起来像这样

=MEDIAN(A18,C18+1,$C+1)-MEDIAN(A18,C18+1,$B)

A18 & C18 是日期范围 1

B8 & C8 是日期范围 2

我想把它变成一个类似于此的数组公式来对多行的结果求和

{=SUM(MEDIAN(A18:A24,C18:C24+1,$C+1)-MEDIAN(A18:24,C18:24+1,$B))}

这仅在将 MEDIAN 分别应用于数组 A18:A24 & C18:C24 中的每个元素时有效。

目前,Excel 连接每个 MEDIAN 调用中包含的数组和 return 整体中位数,只留下一个值供 SUM 求和。这就是我需要做的 'wrong' 结果。

有没有办法强制 excel 对数组中的每个元素应用 MEDIAN?即有没有办法从 MEDIAN 函数强制 excel 到 return 数组。

如果可能的话,我可以避免使用 120,000 个元素的数组或启用宏的工作簿。

很酷的MEDIAN公式。但是你不能像你希望的那样在数组公式中使用 MEDIAN,因为 MEDIAN 总是 return 是一个 单个 结果(不是数组)。

我有办法解决你的问题,但有点sluggish/respetitive:

(我在公式右边添加了注释来解释发生了什么)

= IF(C18:C24>C8,     // (For each cell in C18:C24) If the value is greater than C8
     C8,             // Then C8 is the upper bound
     C18:C24)        // Else, the specific value from C18:C24 is the upper bound
  -                  // (minus sign)
  IF(A18:A24<B8,     // (For each cell in A18:A24) If the value is less than B8
     B8,             // Then B8 is the lower bound
     A18:A24)        // Else, the specific value from A18:A24 is the lower bound

这个return是日期范围重叠的数组除了这些结果可能会return 负数(如果不发生重叠),但在这种情况下你想要 return 0.

您可以使用另一个 IF 语句来解决这个问题。

= IF(formula < 0, 0, formula)

其中 formula 是我上面的第一个公式。

旁注:通常在这种情况下,您可以避免输入 formula 两次,如下所示:

= MAX(formula,0)

除非 formula 本身 return 是一个数组,因为 MAX 只有 return 是一个结果。这与您最初遇到的 MEDIAN 类似的问题。

总而言之,没有评论,这是总结价值的公式:

= SUM(IF((IF(C18:C24>C8,C8,C18:C24)-IF(A18:A24<B8,B8,A18:A24))<0,0,
          IF(C18:C24>C8,C8,C18:C24)-IF(A18:A24<B8,B8,A18:A24)))

当然这是数组公式,必须用Ctrl+Shift+回车 而不是 输入 .