我想使用" NOT"对于数组。即:
"NOT"((True, False, True)) = (False, True, False)
我想在sumproduct公式中使用这种技术,即
=SUMPRODUCT(($R$2:$R$9000=$W$5:$AF$5)*($S$2:$S$9000))
现在,我想使用否定数组,我仍在寻找一个优雅的版本如何做到这一点。我试过了:
=SUMPRODUCT(NOT($R$2:$R$9000=$W$5:$AF$5)*($S$2:$S$9000))
和
=SUMPRODUCT(($R$2:$R$9000<>$W$5:$AF$5)*($S$2:$S$9000))
这两个都没有按照假设的那样运作。我知道我可以使用
=SUMPRODUCT(($R$2:$R$9000<>$W$5)*($R$2:$R$9000<>$X$5)*...*($R$2:$R$9000<>$AF$5)*($S$2:$S$9000))
但我希望有一个更优雅的版本。
你知道一个更优雅的答案吗?
许多问候, 彼得
答案 0 :(得分:0)
我本人希望为此提供更优雅的解决方案,但我认为这是迄今为止我认为最好的解决方案:--(<bitmask>)=0
。
在您的情况下,SUMPRODUCT(--(($R$2:$R$9000=$W$5:$AF$5)*($S$2:$S$9000))=0)
甚至是SUMPRODUCT((($R$2:$R$9000=$W$5:$AF$5)*($S$2:$S$9000))=0)
应该可以正常工作,因为*
运算符已将位掩码转换为整数。
这个想法是用{TRUE,FALSE,TRUE}
将{1,0,1}
位掩码转换为整数--
。然后,如果它们是FALSE
(0
),则=0
比较的结果是TRUE
。如果为TRUE
(1
),则结果为FALSE
。
如果您使用<bitmask>+<bitmask>
之类的东西来模拟逐个元素的OR
,则它应该仍然有效,因为TRUE
(总和)仍为> 0。
对您有用吗?