逻辑运算符在一个sumproduct中的命名范围,加权直方图(excel)
所以我几年前写了一些代码,生成一个电子表格,做一些整洁的东西。 它涉及到做直方图一些奇怪的东西。 我刚刚遇到需要更新/使用这个不同的项目,并有一些代码,我真的不完全明白。
基本上它是一个逻辑运算符,工作在一个命名的范围,然后在一个sumproduct中使用。 而对于我来说,我并不完全明白它为什么起作用,但它确实如此。 这是违规的路线。
=SUMPRODUCT((tblC62>G90)*(tblC62<=G91) * tblC2wgt2)
tblC62
和tblC2wgt2
引用一些配对数据。 tblC62
每个logging与来自tblC2wgt2
的loggingtblC2wgt2
。 目的是创build一个加权直方图。 tblC2wgt2
提供重量。 数据按tblC62
值进行分箱,并且分箱范围由G90
, G91
和tblC62
定义。 所以它会定义。
这工作。 我已经彻底检查过了。 我不明白为什么。 这是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然后加起来所有的变化。