Excel T.TEST 常规公式 returns 结果与数组公式不同

Excel T.TEST regular formula returns different result than array formula

可以看出,尽管作为计算输入提供的单元格相同,但结果不同。

=T.TEST(B1:B4,B5:B8,2,2)
{=T.TEST(IF($A:$A="a",B:B,""),IF($A:$A="b",B:B,""),2,2)}

这似乎是数组公式中的错误,因为空白单元格的处理方式不同:

  • 如果T.TEST是非数组公式,则省略空白单元格;
  • 如果 T.TEST 在数组公式中,则它不会省略它们,而是将空白单元格视为零。

如果需要数组公式,则需要明确检查空白单元格,可以这样做:

{=T.TEST(IF(($A:$A="a")*(B:B<>""),B:B,""),IF(($A:$A="b")*(B:B<>""),B:B,""),2,2)}

在Excel中不能使用数组公式AND,所以我们写($A:$A="a")*(B:B<>"")而不是AND($A:$A="a",B:B<>"")