использование формулы and() с оператором if в формуле массива в excel

использование формулы and() с оператором if в формуле массива в excel

Итак, у меня есть список возвратов клиентов в таблице. Каждому клиенту также присвоена категория риска ( riskyили safe) и назначен партнер ( P1или P2).

Вот пример макета

  A           B          C            D
Client  |  Return  |  RiskCat  |  Partner
_________________________________________
John       1.5%       risky       P2
Bill       1.8%       risky       P1
Tim        1.2%       safe        P2
Bob        1.4%       risky       P1
Kate       2.1%       risky       P2
Fred       0.8%       safe        P1
...etc

Я написал medianif()функцию " ", которая вычисляет медиану доходности по заданному критерию (например, категория риска). Например, если бы я хотел найти медиану доходности в рискованной категории, я бы сделал:

=median(if(C:C="risky",B:B,""))

И нажмите ctrl-shift-enter, чтобы ввести его как формулу массива в ячейку.

Аналогично, чтобы найти медиану доходности для тех, у кого партнером является P1, я бы сделал:

=median(if(D:D="P1",B:B,""))

Обе эти формулы выше работают для меня, но, скажем, я хотел найти медиану доходности для рискованной категории И партнера P1. Ну, я пробую:

=median(if(and(C:C="risky",D:D="P1"),B:B,""))

К сожалению, это не работает, и я получаю ошибку #value. Возможно ли использовать AND() таким образом, и если нет, то как мне добиться того, чего я хочу?

решение1

Нет, вы не можете использовать AND или OR таким образом, потому что эти функции возвращают один результат, а не массив. Вам нужно использовать * вместо AND... или несколько IF, например, либо

=MEDIAN(IF((C:C="risky")*(D:D="P1"),B:B))

или

=MEDIAN(IF(C:C="risky",IF(D:D="P1",B:B)))

последний, возможно, немного более эффективен

Связанный контент