Como Calcular Variação Percentual, Diferença e Aumento
Cálculos percentuais aparecem o tempo todo: receita cresceu 23%, uso de CPU caiu 15%, um número é qual porcentagem de outro. As fórmulas são simples, mas a terminologia confunde — "variação percentual" e "diferença percentual" significam coisas diferentes, e confundir os dois dá o número errado.
Variação percentual (aumento ou queda)
Use quando comparar um valor antigo com um novo. O resultado é positivo para aumento, negativo para queda.
Variação percentual = ((novo - antigo) / |antigo|) × 100
Exemplos:
- Receita foi de R$ 80.000 para R$ 100.000 → ((100.000 - 80.000) / 80.000) × 100 = +25%
- Usuários caíram de 500 para 400 → ((400 - 500) / 500) × 100 = -20%
function percentageChange(oldValue, newValue) {
return ((newValue - oldValue) / Math.abs(oldValue)) * 100;
}
console.log(percentageChange(80000, 100000).toFixed(2)); // 25.00
console.log(percentageChange(500, 400).toFixed(2)); // -20.00
def percentage_change(old, new):
return ((new - old) / abs(old)) * 100
print(f"{percentage_change(80000, 100000):.2f}%") # 25.00%
print(f"{percentage_change(500, 400):.2f}%") # -20.00%
Fórmula Excel:
=(B1-A1)/ABS(A1)*100
Onde A1 é o valor antigo e B1 é o valor novo.
Por que |antigo| (valor absoluto)? Se o valor antigo for negativo (por exemplo, um prejuízo que virou lucro), o valor absoluto dá o sinal correto.
Diferença percentual (entre dois valores, sem direção)
Use quando comparar dois valores sem um "antes" e "depois" claros — como comparar duas lojas, dois países ou dois produtos. O resultado é sempre positivo.
Diferença percentual = (|valor1 - valor2| / ((valor1 + valor2) / 2)) × 100
Exemplo: Loja A vende 120 unidades, Loja B vende 80. A diferença percentual é:
(|120 - 80| / ((120 + 80) / 2)) × 100 = (40 / 100) × 100 = 40%
function percentageDifference(a, b) {
return (Math.abs(a - b) / ((a + b) / 2)) * 100;
}
console.log(percentageDifference(120, 80).toFixed(2)); // 40.00
def percentage_difference(a, b):
return (abs(a - b) / ((a + b) / 2)) * 100
print(f"{percentage_difference(120, 80):.2f}%") # 40.00%
Qual usar:
- "Vendas subiram do Q1 para o Q2" → variação percentual (tem antes e depois)
- "Região A vs Região B" → diferença percentual (simétrica, sem direção)
Porcentagem do total
Porcentagem = (parte / total) × 100
Exemplos:
- 45 de 200 alunos passaram → (45 / 200) × 100 = 22,5%
- R$ 3.500 gastos de um orçamento de R$ 15.000 → (3.500 / 15.000) × 100 = 23,3%
function percentageOf(part, total) {
return (part / total) * 100;
}
console.log(percentageOf(45, 200).toFixed(1)); // 22.5
console.log(percentageOf(3500, 15000).toFixed(1)); // 23.3
def percentage_of(part, total):
return (part / total) * 100
print(f"{percentage_of(45, 200):.1f}%") # 22.5%
print(f"{percentage_of(3500, 15000):.1f}%") # 23.3%
Excel:
=A1/B1*100
Ou formate a célula como Porcentagem (o Excel multiplica por 100 automaticamente):
=A1/B1
Encontrar o valor original a partir de uma porcentagem
Você conhece o resultado após um aumento ou queda percentual e precisa recuperar o original.
Original = resultado / (1 + porcentagem/100) ← após um aumento
Original = resultado / (1 - porcentagem/100) ← após uma queda
Exemplo: Produto custa R$ 130 após um markup de 30%. Custo original:
130 / (1 + 30/100) = 130 / 1,30 = R$ 100
function originalAfterIncrease(result, percent) {
return result / (1 + percent / 100);
}
function originalAfterDecrease(result, percent) {
return result / (1 - percent / 100);
}
console.log(originalAfterIncrease(130, 30)); // 100
console.log(originalAfterDecrease(85, 15)); // 100
Pontos percentuais vs porcentagens
São coisas diferentes e frequentemente confundidas.
Se a taxa de juros sobe de 2% para 5%:
- A mudança em pontos percentuais é 3 pp (5 - 2 = 3).
- A variação percentual é 150% ((5 - 2) / 2 × 100 = 150%).
Ambas estão corretas — medem coisas diferentes. "Pontos percentuais" é a diferença aritmética absoluta entre dois percentuais.
Variações percentuais compostas
Variações percentuais não somam — se compõem. Se algo sobe 10% e depois cai 10%, você não volta ao ponto de partida.
100 × 1,10 × 0,90 = 99
function compoundChange(percentages) {
return percentages.reduce((acc, p) => acc * (1 + p / 100), 1) - 1;
}
// +10% depois -10%
console.log((compoundChange([10, -10]) * 100).toFixed(2)); // -1.00%
// +20% três anos seguidos
console.log((compoundChange([20, 20, 20]) * 100).toFixed(2)); // 72.80%
Pontos principais
- Variação percentual:
((novo - antigo) / |antigo|) × 100— use quando há um antes e um depois. - Diferença percentual:
(|a - b| / média) × 100— use ao comparar dois valores simétricos. - Porcentagem do total:
(parte / total) × 100— o caso mais comum. - Pontos percentuais e porcentagens não são a mesma coisa.
- Variações percentuais se compõem — um ganho de 10% seguido de uma queda de 10% dá -1% líquido.