
Fórmula genérica
=MAX(0,MIN(A1,1))
Resumo
Para limitar um valor percentual de modo que fique entre 0% e 100%, você pode usar uma fórmula baseada nas funções MIN e MAX. No exemplo mostrado, a fórmula em C5, copiada, é:
=MAX(0,MIN(B5,1))
O resultado é que os valores negativos são forçados a zero, os valores acima de 1 são limitados a 1 e os valores entre 0 e 1 não são afetados.
Nota: todos os valores formatados com formato de número de porcentagem.
Explicação
Para entender esse problema, certifique-se de entender como funciona a formatação de números percentuais. Resumindo, as porcentagens são valores decimais: 0,1 é 10%, 0,2 é 20% e assim por diante. O número 1, quando formatado como uma porcentagem, é 100%. Mais sobre formatos de número aqui.
O objetivo deste exemplo é limitar os valores de porcentagem de entrada para que caiam dentro de um limite superior e inferior. Valores negativos e valores acima de 100% não são permitidos, portanto, o resultado final deve ser um número entre zero e 1 (0-100%), inclusive.
Embora a função IF possa ser usada para resolver este problema (veja abaixo), o resultado será um pouco mais longo e redundante. Em vez disso, o exemplo mostrado usa uma combinação das funções MIN e MAX em uma fórmula muito compacta:
=MAX(0,MIN(B5,1))
Este é um exemplo de aninhamento - a função MIN está aninhada dentro da função MAX. O aninhamento é um bloco de construção chave para fórmulas mais avançadas.
Trabalhando de dentro para fora, a função MIN é usada para limitar os valores de entrada a 1 como este:
MIN(B5,1) // get smaller value
Tradução: retorna o menor de B5 e 1. Para qualquer valor acima de 1, o valor em B5 é retornado. No exemplo, B5 contém -5% (-0,05), então MIN retorna -0,05. Este resultado é retornado diretamente para a função MAX:
=MAX(0,-0.05) // get larger value
Aqui, vemos a fórmula fazer seu trabalho. Como zero é maior (maior) que -0,05, MAX retorna zero como resultado final. O valor original é descartado.
Função IF
Conforme mencionado acima, a função IF também pode ser usada para resolver esse problema. Para fazer isso, precisamos de duas funções IF separadas. Um IF força os valores negativos a zero:
IF(B5<0,0,B5) // cap at zero
O segundo IF limita valores maiores em 1:
=IF(B5>1,1,B5) // cap at 1
Quando aninhamos o primeiro IF dentro do segundo, temos a fórmula final:
=IF(B5>1,1,IF(B5<0,0,B5))
Este é um exemplo de um IF aninhado. Ele retorna exatamente o mesmo resultado que a fórmula MIN e MAX acima, mas é um pouco mais complexo e redundante. Observe, por exemplo, que a referência a B5 ocorre três vezes distintas.
O resultado final - quando você precisa fazer uma escolha com base em valores menores ou maiores, as funções MIN e MAX podem ser uma maneira inteligente e elegante de manter uma fórmula simples.
Função MEDIAN
OK, agora que falamos sobre aninhamento e sobre a elegância do MIN com o MAX, devo mencionar que é possível resolver esse problema sem qualquer aninhamento com a função MEDIAN. A versão genérica da fórmula é semelhante a esta:
=MEDIAN(0,1,A1)
Isso funciona porque a função MEDIAN retorna a mediana (número do meio) em um grupo de números. Quando um valor é negativo, zero se torna o número do meio. Quando um número é maior que 1, 1 se torna o número do meio. Inteligente!
No entanto, observe que MEDIAN retorna apenas o número do meio quando o número total de valores é ímpar. Se o número de valores for par, MEDIAN retorna a média dos dois números do meio. Como consequência, se a célula de destino (A1) estiver vazia, MEDIAN retornará a média de 1 e zero, que é 0,5 ou 50% quando formatado como uma porcentagem.