Como validar mais de um critério antes de retornar um valor em uma célula?

Na dica sobre como alternar o valor de uma célula de acordo com um determinado critério, apresentamos o problema da separação de um cadastro de 1.000 inscritos em duas listas de acordo com a ordem de inscrição. Os 100 primeiros seriam colocados na lista SELECIONADOS e os demais seriam incluídos na lista EM ESPERA.

Mas e se, em vez da ordem de inscrição, você tivesse que verificar dois ou mais critérios distintos (IDADE e Nº INSCRIÇÃO, por exemplo) para decidir em qual lista colocar? Ou, digamos, se você precisasse separar apenas aqueles inscritos entre 20 e 30 anos, a partir de uma coluna IDADE?

As funções abaixo certamente serão muito úteis nesses casos.

Função E(lógico 1;[lógico 2];)

A função E() verifica se todos os testes lógicos (lógico 1, lógico 2 etc.) incluídos são verdadeiros ou não. Se todos forem verdadeiros, a função retornará VERDADEIRO. Se pelo menos um deles for falso, a função retornará FALSO.

Ou seja, E(1<2;4<8;5<=5) retornará VERDADEIRO, pois 1<2, 4<8 e 5<=5 retornam sempre VERDADEIRO. Por outro lado, E(2>0;1=1) retornará FALSO, uma vez que, apesar de 1=1 retornar VERDADEIRO, 2>0 retorna FALSO, ou seja, há pelo menos um critério que retorna FALSO.

Agora, vamos dar uma olhada no problema proposto no início da postagem, mas desta vez os inscritos que atendem ao critério de idade entre 20 e 30 anos serão sinalizados com OK e os demais por “” (caractere vazio):

A B C D
1 Nº Inscrição Nome Idade Lista
2 130 ALBERTO PEREIRA 23 =SE(E(C2>=20;C2<=30);”OK”;””)
3 80 ANTONIO FERREIRA 19 =SE(E(C3>=20;C3<=30);”OK”;””)
4 220 ANTONIO SANTOS 45 =SE(E(C4>=20;C4<=30);”OK”;””)
5 5 BRUNO DA SILVA 28 =SE(E(C5>=20;C5<=30);”OK”;””)
6 100 BRUNO FERREIRA 27 =SE(E(C6>=20;C6<=30);”OK”;””)

Como resultado, você certamente encontrará o seguinte:

A B C D
1 Nº Inscrição Nome Idade Lista
2 130 ALBERTO PEREIRA 23 OK
3 80 ANTONIO FERREIRA 19
4 220 ANTONIO SANTOS 45
5 5 BRUNO DA SILVA 28 OK
6 100 BRUNO FERREIRA 27 OK

Função OU(lógico 1;[lógico 2];)

A função OU() verifica se pelo menos um dos testes lógicos (lógico 1, lógico 2 etc.) incluídos é verdadeiro ou não. Se ao menos um deles for verdadeiro, a função retornará VERDADEIRO. Apenas quando todos são falsos, a função retornará FALSO.

Ou seja, OU(1>2;4>8;5<=5) retornará VERDADEIRO, pois apesar de 1>2 e 4>8 retornarem FALSO, 5<=5 retorna VERDADEIRO e é suficiente atender a apenas um critério para que a função retorne VERDADEIRO. Como era de se esperar, OU(2<0;1<>1) retornará FALSO, pois tanto 2>0 quanto 1<>1 retornam FALSO.

Bom, vamos imaginar então que a lista do início da postagem tivesse de atender aos seguintes critérios: o número de inscrição é menor do que 50 ou a idade é maior que 25 anos. Utilizaremos OK para quem atender a qualquer dos critérios e “” (caractere vazio) para os demais:

A B C D
1 Nº Inscrição Nome Idade Lista
2 130 ALBERTO PEREIRA 23 =SE(OU(A2<50;C2>25);”OK”;””)
3 80 ANTONIO FERREIRA 19 =SE(OU(A3<50;C3>25);”OK”;””)
4 220 ANTONIO SANTOS 45 =SE(OU(A4<50;C4>25);”OK”;””)
5 5 BRUNO DA SILVA 28 =SE(OU(A5<50;C5>25);”OK”;””)
6 100 BRUNO FERREIRA 27 =SE(OU(A6<50;C6>25);”OK”;””)

Como resultado, você certamente encontrará o seguinte:

A B C D
1 Nº Inscrição Nome Idade Lista
2 130 ALBERTO PEREIRA 23
3 80 ANTONIO FERREIRA 19
4 220 ANTONIO SANTOS 45 OK
5 5 BRUNO DA SILVA 28 OK
6 100 BRUNO FERREIRA 27 OK