代码之家  ›  专栏  ›  技术社区  ›  ZygD

Excel T.Test正则公式返回的结果与数组公式不同

  •  0
  • ZygD  · 技术社区  · 6 年前

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

    T.TEST non-array formula vs. array formula

    =T.TEST(B1:B4,B5:B8,2,2)
    {=T.TEST(IF($A$1:$A$8="a",B$1:B$8,""),IF($A$1:$A$8="b",B$1:B$8,""),2,2)}
    
    1 回复  |  直到 6 年前
        1
  •  0
  •   ZygD    6 年前

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

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

    T.TEST results with and without zeros

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

    working T.TEST array formula

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

    在Excel数组公式中 AND 无法使用,因此 AND($A$1:$A$8="a",B$1:B$8<>"") 我们写信 ($A$1:$A$8="a")*(B$1:B$8<>"") .