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