Informática Aplicada Prof. MSc. Fábio Hipólito
Aula 2 Trabalhando com Funções Lógicas
Adicionando inteligência com funções lógicas No mundo da computação, definimos bem vagamente algo como inteligente se isso puder realizar testes no ambiente e agir de acordo com os resultados desses testes. No entanto, os computadores são bestas binárias, portanto, agir de acordo com os resultados de um teste significa que a máquina só pode fazer uma das duas coisas. Ainda assim, mesmo com essa gama limitada de opções, você ficará impressionado ao saber quanta inteligência poderá adicionar às suas planilhas.
Funções lógicas do Excel
Utilizando a Função SE()
Utilizando a Função SE() Outro uso comum do teste simples da função SE() é sinalizar valores que satisfazem uma condição específica. Por exemplo, suponha que você tenha uma planilha que mostre o aumento ou a redução percentual nas vendas de uma lista grande de produtos. Nesse caso, é útil conseguir sinalizar apenas aqueles produtos que tiveram uma redução nas vendas. Uma fórmula básica para fazer isso se pareceria com esta: =SE(célula< 0; indicador) Aqui, célula é a célula que você deseja testar, e indicador é um tipo de texto que você utiliza para destacar um valor negativo. Veja um exemplo: =SE(B2 < 0; <<<<< )
Utilizando a função REPT() REPT( <, B2 * 100) Esta expressão multiplica o valor de porcentagem por 100 e, em seguida, utiliza o resultado como o número de vezes que o sinal de menor do que é repetido. Veja abaixo a fórmula SE() revisada: =SE(B2 < 0, REPT( <, B2 * 100)) A Figura 8.1 mostra como ela funciona na prática.
Utilizando a função REPT() Figura 8.1 Esta planilha utiliza a função SE() para testar valores negativos e então utiliza a função REPT() para exibir um indicador desses valores.
Tratando um resultado FALSO Se o resultado da condição SE() for FALSO, a função retornará FALSO como resultado. Isso não é inerentemente ruim, mas a planilha pareceria estar mais organizada e seria mais útil se, em vez disso, a fórmula retornasse a sequência de caracteres nula ( ). Por exemplo, considere a fórmula a seguir: =SE(A1 >= 1000; É grande! ; Não é grande! ) Desta vez, se a célula A1 contiver um valor que é menor do que 1.000, a fórmula retornará uma sequência de caracteres "Não é grande!".
Tratando um resultado FALSO Para o exemplo do indicador de valor negativo, utilize a versão revisada a seguir da fórmula para retornar nenhum valor se a célula contiver um número não negativo: =SE(B2 < 0; REPT( < ; B2 * 100); ) Como pode ser visto na Figura 8.2, a planilha resultante parece bem mais organizada do que a primeira versão
Realizando vários testes lógicos Aninhando Funções SE() Ao criar modelos utilizando a função SE(), é comum encontrar uma segunda bifurcação no caminho ao avaliar os argumentos valor_se_verdadeiro ou valor_se_falso. Por exemplo, considere a variação da nossa fórmula que gera uma descrição com base no valor na célula A1: =SE(A1 >= 1000; Grande! ; Não grande ) E se você quiser retornar uma sequência de caracteres diferente para valores maiores do que, digamos, 10.000? =SE(A1 >= 1000; SE(A1 >= 10000; Bem grande!! ; Grande! ); Não grande )
Calculando Bônus Diferenciados Exemplo: suponha que você queira calcular um bônus diferenciado para uma equipe de vendas desta forma: Se o vendedor não atingir a meta de vendas, nenhum bônus será concedido. Se o vendedor exceder a meta de vendas em menos de 10%, um bônus de R$ 1.000 será concedido. Se o vendedor exceder a meta de vendas em 10% ou mais, um bônus de R$ 10.000 será concedido. Supondo que a célula D2 contenha a porcentagem que as vendas reais de cada vendedor estivessem abaixo ou acima das metas. Veja a fórmula utilizada: =SE(D2 < 0; ; SE(D2 < 0,1; 1000; 10000))
Calculando Bônus Diferenciados Figura 8: Esta planilha utiliza funções SE() aninhadas para calcular pagamento de bônus diferenciado.
A Função E() Muitas vezes, é necessário realizar uma ação se e somente se duas condições forem verdadeiras. Por exemplo, você pode querer pagar um bônus a um vendedor se e somente se o total de vendas exceder a meta e as vendas unitárias também o fizerem. Se o total de vendas ou as vendas unitárias estiverem abaixo da meta, ou se ambas ficarem abaixo da meta, nenhum bônus será pago. Na lógica booleana, isso recebe o nome de condição E porque uma expressão e outra devem ser verdadeiras para um resultado positivo.
A Função E() No Excel, as condições E são tratadas, de forma suficientemente apropriada, pela função lógica E(): E(lógica1 [;lógica2;...]) lógica1 lógica2;... A primeira condição lógica a testar. A segunda condição lógica a testar. O resultado de E() é calculado desta forma: Se todos os argumentos retornarem VERDADEIRO, ou qualquer número diferente de zero, E() retornará VERDADEIRO. Se um ou mais dos argumentos retornarem FALSO, ou 0, E() retornará FALSO.
A Função E() Por exemplo, suponha que você só queira pagar o bônus se um vendedor exceder a meta tanto nas vendas totais quanto nas vendas unitárias. Supondo que a diferença acumulada entre a quantidade de vendas real e a projetada esteja na célula B2 e a diferença unitária real e a projetada esteja na célula C2, segue abaixo um exemplo que determina se o bônus será pago: =SE(E(B2 > 0; C2 > 0); 1000; Nenhum bônus ) Se o valor em B2 for maior do que 0 e o valor em C2 for maior do que 0, a fórmula retornará 1000; do contrário, ela retornará "Nenhum bônus".
Atribuindo valores a categorias Um bom uso para a função E() é atribuir itens a categorias que consistem de um intervalo de valores. Por exemplo, suponha que você tem um conjunto de resultados de uma votação ou pesquisa e que quer categorizar esses resultados com base nos seguintes intervalos por idade: 18 34, 35 49, 50 64 e 65+. Supondo que a idade de cada participante esteja na célula B9, a função E() a seguir pode servir como o teste lógico para a entrada na categoria 18 34: E(B9 >= 18; B9 <= 34) Se a resposta estiver em C9, a fórmula a seguir a exibirá se o participante estiver no grupo de faixa etária entre 18 e 34: =SE(E(B9 >= 18; B9 <= 34); C9; )
Atribuindo valores a categorias A Figura 8.4 testa isso em alguns dados. Aqui estão as fórmulas utilizadas para outras faixas etárias: 35-49: =SE(E(B9 >= 35; B9 <= 49); C9; ) 50-64: =SE(E(B9 >= 50; B9 <= 64); C9; ) 65+: =SE(B9 >= 65; C9; )
A Função OU() Uma situação parecida com a condição E acontece quando você precisa tomar uma ação se uma coisa ou outra for verdadeira. Por exemplo, você pode querer pagar o bônus a uma vendedora se ela ultrapassou a meta de vendas totais ou se ela ultrapassou a meta de venda unitária. Na lógica booleana, isso recebe o nome de condição Ou.
A Função OU() Você não ficará surpreso em saber que as condições Ou são tratadas no Excel pela função OU(): OU(lógica1 [;lógica2;...]) lógica1 lógica2;... A primeira condição lógica a testar. A segunda condição lógica a testar. O resultado de OU() é calculado desta forma: Se um ou mais argumentos retornarem VERDADEIRO, ou qualquer número diferente de zero, OU() retorna VERDADEIRO. Se todos os argumentos retornarem FALSO, ou 0, OU() retornará FALSO.
A Função OU() Por exemplo, suponha que você só quer pagar o bônus se o vendedor ultrapassar a meta de vendas totais ou a de vendas unitárias (ou as duas). Supondo que a diferença entre as vendas totais reais e as projetadas esteja na célula B2 e a diferença entre as vendas unitárias reais e as projetadas esteja na célula C2, veja abaixo um exemplo que determina se o bônus será pago: =SE(OU(B2 > 0; C2 > 0); 1000; Nenhum bônus ) Se o valor em B2 for maior do que 0, ou o valor em C2 for maior do que 0, a fórmula retornará 1000; do contrário, ela retornará "Nenhum bônus".
Aplicando formatação condicional com fórmulas O Excel vem com outro componente de formatação condicional que torna esse recurso ainda mais poderoso: você pode aplicar formatação condicional com base nos resultados de uma fórmula. Em particular, você pode definir uma fórmula lógica como critério de formatação condicional. Se essa fórmula retornar VERDADEIRO, o Excel aplicará a formatação às células; se ela retornar FALSO, o Excel não aplicará nenhuma formatação. Na maioria dos casos, você utiliza uma função SE(), frequentemente combinada com outra função lógica como E() ou OU().
Aplicando formatação condicional com fórmulas Antes de partir para o exemplo, veja abaixo os passos básicos para configurar uma formatação condicional baseada em fórmula: 1. Selecione as células às quais você deseja aplicar a formatação condicional. 2. Selecione Página Inicial, Formatação Condicional, Nova Regra. O Excel exibirá a caixa de diálogo Nova Regra de Formatação. 3. Clique em Usar uma Fórmula para Determinar quais Células Devem ser Formatadas. 4. Na caixa Formatar Valores em que Esta Fórmula é Verdadeira, digite sua fórmula lógica. 5. Clique em Formatar para abrir a caixa de diálogo Formatar Células. 6. Utilize as guias Número, Fonte, Borda e Preenchimento para especificar a formatação que deseja aplicar e, em seguida, clique em OK. 7. Clique em OK.
Aplicando formatação condicional com fórmulas Por exemplo, suponha que você tem um intervalo ou tabela de itens e deseja destacar os itens que têm os valores máximo e mínimo em uma coluna específica. Primeiro, você pode utilizar a função de planilha MÁXIMO() para determinar o valor máximo em uma coluna. Por exemplo, se a coluna for D2:D10, então, a função a seguir retornará o máximo: MÁXIMO($D$2:$D$10) Contudo, uma fórmula de formatação condicional só funciona se ela retornar FALSO ou VERDADEIRO, por isso você precisa criar uma fórmula de comparação: =MÁXIMO($D$2:$D$10)=$D2
Aplicando formatação condicional com fórmulas Em seguida, você pode utilizar a função MÍNIMO() para determinar o mínimo e, assim, você cria uma fórmula de comparação similar: =MÍNIMO($D$2:$D$10)=$D2 Por fim, você quer verificar cada célula na coluna para ver se é o mínimo ou o máximo, e para isso você precisa combinar essas expressões utilizando a função OU(), desta forma: =OU(MÁXIMO($D$2:$D$10)=$D2; MÍNIMO($D$2:$D$10)=$D2)
Aplicando formatação condicional com fórmulas A Figura 8.5 mostra um intervalo de resultados de vendas que estão formatados condicionalmente utilizando a fórmula precedente.
Combinando funções lógicas com matrizes Ao combinar as fórmulas de matriz com SE(), você pode realizar algumas operações bastante sofisticadas. Matrizes permitem fazer coisas como, por exemplo, aplicar a condição lógica SE() a todo um intervalo ou somar somente as células em um intervalo que satisfazem a condição SE().
Aplicando uma condição a um intervalo inteiro Utilizar E() como condição lógica em uma função SE() talvez seja útil para três ou quatro expressões. Depois disso, torna-se muito incômodo inserir todas essas expressões lógicas. Se você estiver essencialmente executando o mesmo teste lógico em uma quantidade de células diferentes, uma solução melhor é aplicar E() a um intervalo e inserir a fórmula como uma matriz. Por exemplo, suponha que você queira somar as células no intervalo B3:B7, mas somente se todas as células contiverem valores maiores do que 0. Veja uma fórmula de matriz que faz isso: {=SE(E(B3:B7 > 0); SOMA(B3:B7); )}
Aplicando uma condição a um intervalo inteiro
Operando apenas nas células que atendem uma condição Por exemplo, você pode querer somar somente os valores positivos. Para fazer isso, você precisará mover a operação fora da função SE(). Veja aqui uma fórmula de matriz que soma somente os valores no intervalo B3:B7 que contêm valores positivos: {=SOMA(SE(B3:B7 > 0; B3:B7; 0))} A função SE() retorna uma matriz de valores baseados na condição (o valor da célula se positivo, 0 do contrário), e a função SOMA() adiciona esses valores retornados.
Operando apenas nas células que atendem uma condição Por exemplo, suponha que você tem uma série de investimentos com vencimento em vários anos. Seria legal configurar uma tabela que liste esses anos e informe o valor total dos investimentos que vencem a cada ano.
Operando apenas nas células que atendem uma condição As datas de vencimento dos investimentos estão na coluna B, os valores de investimento no vencimento são exibidos na coluna C e os diversos anos de vencimento estão na coluna E. Por exemplo, para calcular o total de vencimento para 2012, a fórmula de matriz a seguir é utilizada: {=SOMA(SE(ANO($B$3:$B$18) = E3; $C$3:$C$18; 0))} A função SE() compara o valor do ano na célula E3 (2012) com o componente ano das datas de vencimento no intervalo B3:B18. Para as células em que estes são iguais, SE() retorna o valor correspondente na coluna C; do contrário, ele retorna 0. A função SOMA() então adiciona esses valores retornados.
Determinando se um valor aparece em uma lista Muitos aplicativos de planilha exigem que você localize um valor em uma lista. Por exemplo, você pode ter uma tabela de desconto para clientes na qual o percentual de desconto está baseado na quantidade de unidades encomendadas. Para cada encomenda, você precisa localizar o desconto apropriado, com base nas unidades totais do pedido. De maneira semelhante, um professor pode converter as pontuações de um teste em uma letra referenciando uma tabela de conversões. Por exemplo, suponha que você queira saber se determinado valor existe em uma matriz. Você poderá utilizar a seguinte fórmula geral, inserida em uma única célula como uma matriz: {=OU(valor = intervalo)}
Determinando se um valor aparece em uma lista Veja abaixo a fórmula na célula B2: {=OU(B1 = B6:B29)}
Contando ocorrências em um intervalo Agora você sabe como descobrir se um valor aparece em uma lista, mas e se você precisar saber quantas vezes o valor aparece? A fórmula a seguir faz esse trabalho: {=SOMA(SE( valor = intervalo ; 1; 0))} Aqui está uma fórmula digitada na célula B3 que faz isso para a nossa lista de contas vencidas: =SOMA(SE(B1 = B6:B29; 1; 0))
Contando ocorrências em um intervalo
Determinando onde um Valor Aparece em uma Lista E se você quiser saber não só se um valor aparece em uma lista, mas onde ele aparece? Você pode ter esse resultado fazendo a função SE() retornar o número de linhas para um resultado positivo: SE(valor = intervalo ; LINHA (intervalo); ) Para obter a primeira instância do valor, utilize função MÍNIMO() em uma fórmula de matriz, como, por exemplo: {=MÍNIMO(SE(valor = intervalo ; LIN(intervalo); ))} Para obter a última instância do valor, utilize função MÁXIMO() em uma fórmula de matriz, como, por exemplo: {=MÁXIMO(SE(valor = intervalo; LIN(intervalo); ))}
Determinando onde um Valor Aparece em uma Lista Aqui estão as fórmulas que você utiliza para encontrar a primeira e a última ocorrências na lista anterior das faturas vencidas: =MÍNIMO(SE(B1 = B6:B29; LIN(B6:B29); )) =MÁXIMO(SE(B1 = B6:B29; LIN(B6:B29); )) A Figura 8.10 mostra os resultados; a linha da primeira ocorrência está na célula D2, e a linha da última ocorrência aparece na célula D3.
Determinando onde um Valor Aparece em uma Lista
Bibliografia utilizada