O Excel tem algo parecido com um switch de 3 vias?

O Excel tem algo parecido com um switch de 3 vias?

Resumindo, se alguém quisesse fazer uma troca IF

a) se A < 0,5 ... B = 10.
b) se A >= 0,5 ... B = 15.
c) se A > 1,0 ... B = 20.

Como alguém faria isso?

Responder1

Isso funcionará como uma função SWITCH: -

=CHOOSE(IF(A1<0.5,1,IF(AND(A1>=0.5,A1<=1),2,3)),10,15,20)

Mas isso é feito internamente nested IF.

A melhor maneira de usar o interruptor de 3 vias é a seguinte: -

=IF(A1<0.5,10,IF(AND(A1>=0.5,A1<=1),15,20))

Responder2

Você pode aninhar expressões “if” assim:

=IF(A1<0.5,10,IF(AND(A1>=0.5,A1<=1),15,IF(A1>1,20,"Something else")))

(Eu adicionei A1<=1 caso contrário, porque A>1.0 implica A também >= 0,5)

Responder3

Essa é a maneira mais fácil de fazer isso.

Um método mais flexível de cálculo é explorar o uso de True=1 no Excel. Supondo que o valor esteja em A1:

=((A1<0.5)*10)+((A1>=0.5)*15)+((A1>1)*20)

Isso permitirá que você adicione qualquer número de condições e o tirará dos IFs aninhados.

Isso funciona porque em cada agrupamento a avaliação é uma função lógica que retorna True ou False, ou seja, (A1<0.5)retornará Truese A1for menor que 0.5. O Excel usa o valor 1 quando True é usado em uma função aritmética.

O exemplo acima que coloquei não está exatamente correto, alguns números irão gerar True para dois grupos diferentes. O grupo do meio precisaria de uma AND()função para limitar como:

AND(A1>=0.5,A1<=1)

Responder4

A solução mais curta deve ser:

=IF(A1<0.5,10,IF(A1<=1,15,20))

Devido à primeira parte, o AND na segunda parte é desnecessário.

informação relacionada