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


10

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

为此,我使用IF来检查这些值是>还是<计算出的(平均值)值。结果存储在相应的列中。最后,我对结果求和以得到超出范围(即高于平均值)的计数。

例如,Ax与进行比较MeanAx进入10进入If value is outside accepted boundsAx

图片1

然后是的总和If value is outside accepted boundsAx执行以获得Number of values outside boundAx

图2,汇总

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

Answers:


11

您需要的功能是COUNTIF()

工作表截图

G3ctrl-enter / copy-paste / fill-right中输入以下公式G3:I3

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

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


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

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

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

或输入的数组像

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

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

但是,在此特定情况下使用任何这些都没有任何好处。


如果确实如此,由于您似乎对减少帮助程序列的数量感兴趣,因此,更好的总体解决方案是也放弃均值帮助程序列:

工作表截图

D3ctrl-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)))}。)


@AFH感谢您的编辑(和赞扬;-))。我不知道那是怎么回事?更重要的是,我怎么没注意到它?\ _(ツ)_ /
¯– robinCTS

恭喜。系统漫游器选择高度评价的帖子,以在LQP审核队列中用作审核。该职位被选为“低质量”职位-荣誉徽章。:-)
fixer1234 '18

@ fixer1234哦,当然(-‸ლ)我为Y问题提供了三种替代解决方案,然后继续提供X问题解决方案。最重要的是,我对COUNTIF()功能的工作原理进行了解释。显然,这个答案是低质量!下次,我将只停留在一行,仅编写代码。(PS刚刚检查了时间轴。看起来您未通过审核-您选择了;- Looks OK)))
robinCTS

2

SUMPRODUCT函数也可以解决您的问题。

在此处输入图片说明

在G102中编写此公式,然后从G102到I102正确填写:

=SUMPRODUCT(--(A102:A107>D102:D107))

注意 根据您的需要在公式中调整单元格地址。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.