Se as condições da coluna Statement -Multiple yes / no simplificam uma fórmula IF AND aninhada crescente?

0

Estou trabalhando em um problema do Excel que preenche uma coluna separada com base em respostas condicionais de várias (3) colunas sim / não. Especificamente, estou tentando trabalhar com uma combinação de opções. Essas 3 opções:

  • cww
  • flex
  • tele

Você pode selecionar 1, 2 ou todas as 3 dessas opções.

Minha planilha:

Meucódigosatisfazmeuproblemadeformadeselegante.

=IF(AND(B2="NO",B2=C2,B2=D2),"NO-FLEX",IF(AND(B2="YES",B2=C2,B2=D2),"Full match",IF(AND(B2="Yes",C2="Yes"),"CWW-FLEX",IF(AND(B2="Yes",D2="Yes"),"CWW-TELE",IF(AND(C2="Yes",D2="Yes"),"FLEX-TELE",IF(AND(B2="NO",C2="NO"),"TELE-ONLY",IF(AND(B2="NO",D2="NO"),"FLEX-ONLY",IF(AND(C2="NO",D2="NO"),"CWW-ONLY",IF(AND(B2="YES",C2="",D2=""),"CWW-ONLY",IF(AND(C2="YES",B2="",D2=""),"FLEX-ONLY",IF(AND(D2="YES",B2="",C2=""),"TELE-ONLY",IF(AND(B2="NO",C2="YES",D2=""),"FLEX-ONLY",IF(AND(B2="NO",C2="",D2="YES"),"TELE-ONLY",IF(AND(D2="NO",B2="",C2="YES"),"FLEX-ONLY",IF(AND(B2="",C2="NO",D2="YES"),"TELE-ONLY",IF(AND(B2="YES",C2="",D2="NO"),"CWW-ONLY",IF(AND(B2="YES",C2="NO",D2=""),"CWW-ONLY",)))))))))))))))))

Até agora, consegui criar uma declaração IF(AND) grande que, na maioria das vezes, preenche uma coluna com o indicador correto com base na combinação de seleções.

Esta solução não é elegante e pode haver uma maneira de simplificar minha crescente fórmula IF(AND) aninhada. Alguém pode ajudar? Agradeceria muito qualquer conselho.

    
por mcinnisbr 11.06.2018 / 16:45

1 resposta

1

Acho que a melhor maneira seria usar a função CHOOSE() :

=CHOOSE(1+1*(UPPER(B2)="YES")+2*(UPPER(C2)="YES")+4*(UPPER(D2)="YES"),"n/a","CWW-ONLY","FLEX-ONLY","CWW-FLEX","TELE-ONLY","CWW-TELE","FLEX-TELE","Full match")

Eu configurei a saída para o caso em que não há YES s para n/a , apenas para que a fórmula seja mais fácil de entender. Substitua o "n/a" na fórmula por:

CHOOSE(1+1*(UPPER(B2)="NO")+2*(UPPER(C2)="NO")+4*(UPPER(D2)="NO"),"n/a","n/a","n/a","TELE-ONLY","n/a","FLEX-ONLY","CWW-ONLY","NO-FLEX")

A fórmula combinada detectará corretamente qualquer mistura de caracteres maiúsculos e minúsculos para NO e YES e tratará todo o resto como um espaço em branco:

=CHOOSE(1+1*(UPPER(B2)="YES")+2*(UPPER(C2)="YES")+4*(UPPER(D2)="YES"),CHOOSE(1+1*(UPPER(B2)="NO")+2*(UPPER(C2)="NO")+4*(UPPER(D2)="NO"),"n/a","n/a","n/a","TELE-ONLY","n/a","FLEX-ONLY","CWW-ONLY","NO-FLEX"),"CWW-ONLY","FLEX-ONLY","CWW-FLEX","TELE-ONLY","CWW-TELE","FLEX-TELE","Full match")

Explicação:

Cada uma das duas partes funciona como um multiplexador digital binário e a fórmula inteira funciona como um multiplicador trinário.

    
por 11.06.2018 / 17:01