逻辑运算符在一个sumproduct中的命名范围,加权直方图(excel)

所以我几年前写了一些代码,生成一个电子表格,做一些整洁的东西。 它涉及到做直方图一些奇怪的东西。 我刚刚遇到需要更新/使用这个不同的项目,并有一些代码,我真的不完全明白。

基本上它是一个逻辑运算符,工作在一个命名的范围,然后在一个sumproduct中使用。 而对于我来说,我并不完全明白它为什么起作用,但它确实如此。 这是违规的路线。

=SUMPRODUCT((tblC62>G90)*(tblC62<=G91) * tblC2wgt2) 

tblC62tblC2wgt2引用一些配对数据。 tblC62每个logging与来自tblC2wgt2的loggingtblC2wgt2 。 目的是创build一个加权直方图。 tblC2wgt2提供重量。 数据按tblC62值进行分箱,并且分箱范围由G90G91tblC62定义。 所以它会定义。

这工作。 我已经彻底检查过了。 我不明白为什么。 这是tblC62逻辑倍增,这是最令人困惑的。

无论如何,我不得不向我的老板解释math…..所以,如果任何人都可以向我解释这个代码如何工作,我将不胜感激。

它正在使用布尔真/假的固有值。 在math中使用它们时,它们会自动恢复到1/0的值。

所以在:

 =SUMPRODUCT((tblC62>G90)*(tblC62<=G91) * tblC2wgt2) 

(tblC62>G90)为真时,其值为1,当为假时,为0.与(tblC62<=G91)相同,

所以当两者都是真的时,我们得到1 * 1等于1 。 如果两者都是错误的,我们得到0 * 1 ,这等于0

那么结果是乘以tblC2wgt2 。 所以当其中一个或两个都是假的时候,它是0 * tblC2wgt2 which = 0 。 当两者都为真时,我们得到1 * tblC2wgt2 = tblC2wgt2

Sumproduct然后加起来所有的变化。