Determinar o nível de status da United Airlines usando as funções da planilha

5

Os níveis de status United Airlines MileagePlus Premier são determinados por uma combinação de critérios:

  • Prata: (PQM>=25000 OR PQS>=30) AND PQD>=3000
  • Ouro: (PQM>=50000 OR PQS>=60) AND PQD>=6000
  • Platinum: (PQM>=75000 OR PQS>=90) AND PQD>=9000
  • 1K: (PQM>=100000 OR PQS>=120) AND PQD>=12000

Eu tenho colunas com os totais de PQM, PQS e PQD. Gostaria que uma fórmula exibisse o nível de status (por exemplo, "Gold"). Preciso de um conjunto complexo de instruções IF aninhadas? Eu faço uma pesquisa de alguma forma?

    
por Drew McManus 25.11.2016 / 19:00

2 respostas

4

Aqui está outra abordagem usando INDEX e MATCH , é uma fórmula mais abstrata, mas também mais curta, baseada na sua lógica:

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

(PQM>=25000 OR PQS>=30) AND PQD>=3000

  • PQM>=25000 OR PQS>=30 - o nível mais alto atingido por PQM ou PQS = > MÁXIMO
  • (...) AND PQD>=3000 - o nível mais baixo atingido pela seleção anterior e PQD

Ouapenasafórmulasemtabelaauxiliar:

=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})))

    
por 28.11.2016 / 09:46
2

Então, se você quisesse usar a solução aninhada IF , poderia criar uma pequena tabela de pesquisa como esta:

E,sevocêtiverseusvaloresPQM,PQSePQDemB8,C8eD8respectivamente,afórmulaseria:

=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"))))

Você poderia facilmente substituir as referências da tabela por valores codificados se preferir não ter a tabela de consulta (embora eu prefira tê-la no caso de precisar alterar os parâmetros do cálculo no futuro):

=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"))))

Espero que seja bastante óbvio como isso funciona, ele está checando as condições de nível mais alto primeiro, então se eles não estiverem satisfeitos, descendo os níveis até encontrar um que seja, retornando "None" se não houver nenhuma aplicação nível para retornar.

    
por 26.11.2016 / 10:32