Google Sheets Countif с Arrrayformula - PullRequest
1 голос
/ 01 мая 2020

Я выполняю некоторые динамические c симуляции Монте-Карло в Google Sheets, используя формулу COUNTIF для симуляции. Что-то не работает так, как я думал, но я не могу разобраться. У меня есть два столбца, которые я сравниваю, и мне нужно подсчитать случаи, когда значение в одном столбце больше, чем значение в другом столбце. Если я делаю это явно, распространяя формулу сравнения if, я получаю правильный результат. Однако, если я сделаю это с

=countif( A4:A, ">" & B4:B ) 

, я не получу правильный результат. Мой пример находится на этом листе , число в ячейке C4 является неисправным COUNTIF, который в примере равен 2, а число в ячейке E4 равно 5, что является правильным счетом при распространении сравнения в столбце F и добавление правильных сравнений в E4.

p1  p2  n           
0.5 0.51    10          
Monte Carlo                 
0.50    0.60    2       5   0
0.90    0.50                1
0.60    0.30                1
0.50    0.60                0
0.40    0.30                1
0.40    0.50                0
0.60    0.70                0
0.60    0.30                1
0.70    0.50                1
0.10    0.30                0

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Есть два сценария ios со счетчиком:

(1) В качестве формулы, не являющейся массивом, =countif( A4:A, ">" & B4:B ) даст вам тот же результат, что и =countif( A4:A, ">" & B4 ), то есть будет считаться только значения A больше 0,60, давая ответ 2.

(2) В качестве формулы массива =sum(countif( A4:A, ">" & B4:B )) даст вам отдельный результат для каждого значения B (2 + 5 + 9 + 2 ...) дать ответ 56.

Если вы хотите использовать countif, вам нужно будет сделать что-то вроде этого:

=ArrayFormula(countif(A4:A-B4:B,">"&0))
0 голосов
/ 01 мая 2020

попробовать:

=INDEX(SUM(IF(A4:A>B4:B, 1)))

0

...