Определить уровень статуса United Airlines, используя функции листа

418
Drew McManus

Уровни статуса 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? Я делаю поиск как-нибудь?

5
Вы указали несколько разных приложений для работы с электронными таблицами. Есть ли предпочтения? bwDraco 7 лет назад 2
Я бы сделал (и только что сделал) вложенные `IF`s сам, было бы интересно узнать, есть ли лучший способ тоже. Я предполагаю, что вам не нужны ответы, показывающие, как структурировать это вложенное решение `IF`? 3N1GM4 7 лет назад 0
@bwDraco Я использую Numbers на MacOS. Функция для этого была бы идеальной, но я мог бы адаптировать ее, если вам удобнее использовать Excel или Google Sheets. Drew McManus 7 лет назад 0
@ 3N1GM4 Я возился с вложенными IF, но получаю много ошибок. Если у вас это работает, я бы очень хотел посмотреть. Спасибо! Drew McManus 7 лет назад 0

2 ответа на вопрос

4
Máté Juhász

Вот другой подход, использующий 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

enter image description here

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

=INDEX({"--","Silver","Gold","Platinum","1k"},MIN(MAX(MATCH(B9,),MATCH(C9,)),MATCH(D9,)))

2
3N1GM4

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

Lookup Table

И тогда, если у вас есть 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"если нет подходящего уровня для возврата.

Похожие вопросы