将布尔值的多步总和转换为单个公式

Modified on: Tue, 16 Oct 2018 10:20:02 +0800

我有一些传感器读数,我正在检查这些值是否在可接受的范围内。

为此,我使用IF检查值是>还是<计算的(平均)值。结果存储在各自的列中。最后,我对结果进行求和,得出有多少超出界限的数量(即高于平均值)。

例如,将AxMeanAx进行比较,得到10Ax

然后If value is outside accepted bounds。执行Ax以获取Number of values outside boundAx

问题
如何将其转换为单个公式?

最佳答案

您所追求的功能是COUNTIF()

G3中输入以下公式,然后按ctrl-enter / copy-paste / fill-right进入G3:I3

=COUNTIF(A3:A8,">"&D3)

COUNTIF()根据第二个参数中的条件检查第一个参数中的每个值,并计算它满足的次数。


使用COUNTIF()是最简单和最好的解决方案。

当然,您可以使用更复杂/更难理解的公式,如

=SUMPRODUCT(--(A3:A8>D3))

或输入一个类似

的数组

{=SUM(--(A3:A8>D3))}

甚至是那些不必要的复杂版本。

但是,在这种特殊情况下使用任何没有的好处。


事实上,由于您似乎对减少辅助列的数量感兴趣,因此更好的整体解决方案是免除平均辅助列:

D3中输入以下公式,然后按ctrl-enter / copy-paste / fill-right进入D3:F3

=COUNTIF(A3:A8,">"&AVERAGE(A3:A8))

(是的,通过将其转换为=SUMPRODUCT(--(A3:A8>AVERAGE(A3:A8)))或 {= SUM( - (A3:A8> AVERAGE(A3:A8)))} )

作者:,robinCTS

相关问答

添加新评论