6

Итак, у меня есть список клиентских возвратов в электронной таблице. Каждому клиенту также назначена категория риска (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 ответ1

5

Нет, вы не можете использовать 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)))

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .