Обычная формула Excel T.TEST возвращает результат, отличный от формулы массива - PullRequest
0 голосов
/ 17 декабря 2018

Как видно, результат отличается, хотя ячейки, представленные в качестве входных данных для расчета, одинаковы.

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 Ответ

0 голосов
/ 17 декабря 2018

Это похоже на ошибку в формуле массива, поскольку пустые ячейки обрабатываются по-разному:

  • , если T.TEST - формула, не являющаяся массивом, пустые ячейки опускаются;
  • если T.TEST находится внутри формулы массива, то он не пропускает их, а вместо этого обрабатывает пустые ячейки как нули.

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<>"").

...