5

Уровни статуса United Airlines ПробегPlus Premier определяются по совокупности критериев:

  • Серебро: (PQM>=25000 OR PQS>=30) AND PQD>=3000
  • Золото: (PQM>=50000 OR PQS>=60) AND PQD>=6000
  • Платина: (PQM>=75000 OR PQS>=90) AND PQD>=9000
  • 1K: (PQM>=100000 OR PQS>=120) AND PQD>=12000

У меня есть столбцы с итогами PQM, PQS и PQD. Я хотел бы формулу для отображения уровня статуса (например, "Золото"). Нужен ли мне сложный набор вложенных выражений IF? Я делаю поиск как-нибудь?

2 ответа2

4

Вот другой подход, использующий INDEX и MATCH , это более абстрактная, но и более короткая формула, основанная на вашей логике:

=INDEX(Table1[LEVEL],MIN(MAX(MATCH(B9,Table1[PQM]),MATCH(C9,Table1[PQS])),MATCH(D9,Table1[PQD])))

(PQM> = 25000 ИЛИ PQS> = 30) И PQD> = 3000

  • PQM>=25000 OR PQS>=30 - чем выше уровень, достигнутый PQM или PQS => MAX
  • (...) AND PQD>=3000 - нижний уровень, достигнутый предыдущим выбором и PQD

Или просто формула без вспомогательной таблицы:

=INDEX({"--","Silver","Gold","Platinum","1k"},MIN(MAX(MATCH(B9,{0,25000,50000,75000,100000}),MATCH(C9,{0,30,60,90,120})),MATCH(D9,{0,3000,6000,9000,12000})))

2

Поэтому, если вы хотите использовать вложенное IF решение, вы можете создать небольшую справочную таблицу, например:

Справочная таблица

И затем, если у вас есть значения PQM , PQS и PQD в B8 , C8 и D8 соответственно, формула будет иметь вид:

=IF(AND(OR(B8>$B$5,C8>$C$5),D8>$D$5),$A$5,IF(AND(OR(B8>$B$4,C8>$C$4),D8>$D$4),$A$4,IF(AND(OR(B8>$B$3,C8>$C$3),D8>$D$3),$A$3,IF(AND(OR(B8>$B$2,C8>$C$2),D8>$D$2),$A$2,"None"))))

Вы также можете легко заменить ссылки на таблицы жестко закодированными значениями, если вы не хотите иметь справочную таблицу (хотя я предпочитаю иметь ее на случай, если в будущем вам потребуется изменить параметры расчета):

=IF(AND(OR(B8>100000,C8>120),D8>12000),"1K",IF(AND(OR(B8>75000,C8>90),D8>9000),"Platinum",IF(AND(OR(B8>50000,C8>60),D8>6000),"Gold",IF(AND(OR(B8>25000,C8>30),D8>3000),"Silver","None"))))

Надеюсь, это довольно очевидно, как это работает, сначала он проверяет условия самого высокого уровня, затем, если они не удовлетворены, пробирается вниз по уровням, пока не найдет тот, который возвращает "None" если нет подходящего уровня для возврата. ,

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