(= $ A $ 2:$ A2 = A2)*($ B $ 2:$ B2 = B2))> 1,0,1)?
我需要在Excel Pivot 2010中计算唯一的值。我尝试了从这里开始的方法
但是我不明白这个公式是如何工作的=IF(SUMPRODUCT(($A$2:$A2=A2)*($B$2:$B2=B2))>1,0,1)
SUMPRODUCT
接受数组参数,但$A$2:$A2=A2
是布尔值。
1)假设$A$2:$A2=A2
为TRUE, $B$2:$B2=B2
为FALSE,那么它变成SUMPRODUCT(TRUE * FALSE )
或SUMPRODUCT (1 * 0 )
2)我试了一个随机表
AB 1 year id 2 1990 1 3 1991 2 4 1992 3
我试过使用这个公式=A1:B4=2
,它会抛出一个错误? 那么为什么不$A$2:$A10=A10
会抛出一个错误,这到底是什么意思?
=IF(SUMPRODUCT(($A$2:$A2=A2)*($B$2:$B2=B2))>1,0,1)
假设
$A$2:$A2=A2
为TRUE
,$B$2:$B2=B2
为FALSE
您会得到: SUMPRODUCT(TRUE*FALSE)
然后由excel解释为SUMPRODUCT(1*0)
,变成0
。
现在,当您拖动公式时,假设一个单元格向下,引用将变为:
=IF(SUMPRODUCT(($A$2:$A3=A3)*($B$2:$B3=B3))>1,0,1)
你会得到数组结果。 现在我们假设你再拖一次:
=IF(SUMPRODUCT(($A$2:$A4=A4)*($B$2:$B4=B4))>1,0,1)
假设A2 = A3 <> A4和B2 = B3 = B4。 你得到:
=IF(SUMPRODUCT({FALSE, FALSE, TRUE}*{TRUE, TRUE, TRUE})>1,0,1)
这成为:
=IF(SUMPRODUCT({0, 0, 1}*{1, 1, 1})>1,0,1)
这变成:
=IF(SUMPRODUCT({0, 0, 1})>1,0,1)
SUMPRODUCT({0, 0, 1})
是1。
整个公式因此返回0。
1
只有在列A中的最后一个单元格或列B中的最后一个单元格与第一个单元格不同时才会返回(如果范围只有1个单元格大小)。
编辑:
至于你的例子,数组函数外部的数组函数倾向于返回第一个值,或者取决于它的行/列的值,或者显然是一个错误。
你可以做什么来检查结果是在错误单元格上按F2 ,然后按F9键。 对于你的例子,你应该得到像这样的东西:
{FALSE, FALSE, FALSE, FALSE; FALSE, FALSE, TRUE, FALSE}