AVERAGE e AVERAGEX são duas funções DAX que calculam médias no Power BI, mas partem de lógicas diferentes. Uma trabalha direto sobre uma coluna, a outra calcula linha por linha antes de tirar a média.

É comum a confusão entre as duas funções, neste artigo você irá entender a diferença entre AVERAGE e AVERAGEX e como resolver o problema: a chamada média das médias.

Para deixar os exemplos mais concretos, vamos usar a mesma tabela de vendas ao longo de todo o artigo, com o valor de cada pedido, o custo correspondente e o vendedor responsável.

tabela de exemplo

O que é AVERAGE no Power BI

AVERAGE calcula a média aritmética simples de uma coluna numérica. Ela recebe a coluna como argumento e devolve a média de todos os valores não vazios contidos nela sem nenhum cálculo intermediário por linha.

Média de Vendas = AVERAGE(Vendas[Valor da Venda])
aprendendo average

Essa medida soma todos os valores da coluna Valor da Venda e divide pelo número de linhas que têm valor preenchido.

É rápida, direta e resolve a maioria dos casos simples, como “qual o valor médio de venda” ou “qual a idade média dos clientes”.

O ponto de atenção é o tratamento de células vazias e não numéricas. Quando uma célula contém 0, ela entra na soma e conta no divisor.

Quando a célula está em branco ou contém texto, a linha simplesmente não é contada nem na soma, nem no divisor, já que AVERAGE não considera valores não numéricos no cálculo.

Isso significa que AVERAGE não é o mesmo que SOMA(Valor) / Número de Linhas: se houver valores em branco ou texto na coluna, o resultado muda.

O que é AVERAGEX no Power BI

AVERAGEX é uma função iteradora o “X” no nome indica isso.

Em vez de olhar direto para uma coluna, ela percorre uma tabela linha por linha, calcula uma expressão para cada linha e só depois tira a média desses resultados.

Margem Média = AVERAGEX(Vendas, (Vendas[Valor da Venda] - Vendas[Custo]) / Vendas[Valor da Venda])
aprendendo averagex

Nesse exemplo, o Power BI calcula a margem de lucro de cada pedido (Vendas[Valor da Venda] – Vendas[Custo]) / Vendas[Valor da Venda]) individualmente e, só então, calcula a média dessas margens.

É um cálculo que a função AVERAGE simples não consegue fazer, porque ela não avalia expressões linha a linha só lê valores já prontos em uma coluna.

Use AVERAGEX sempre que precisar de:

  • Uma expressão calculada (divisão, soma condicional, resultado de outra medida) antes de tirar a média, não apenas o valor bruto de uma coluna.
  • Uma média baseada em agrupamentos, como “média por cliente” ou “média por vendedor”, em vez da média de todas as transações individuais.

Fora essas diferenças, AVERAGEX segue as mesmas regras da AVERAGE, não considera células não numéricas, ignora linhas em branco no cálculo e exige os dois argumentos (tabela e expressão) preenchidos.

Por que sua média no Power BI parece “errada”

Esse é um problema recorrente nos fóruns da Microsoft Fabric Community, geralmente descrito como “minha média está diferente do Excel” ou “o total da matriz não bate com a média das linhas”.

A causa quase sempre é a mesma: o total de uma matriz não é a média simples das linhas visíveis.

O Power BI recalcula o total olhando para todas as linhas de dados por trás da tabela, e não simplesmente tirando a média dos números que aparecem na tela.

Na prática, quem tem mais linhas registradas “pesa mais” nesse total. Por isso, se um vendedor tem 10 vendas e outro tem apenas 2, o total não representa igualmente os dois ele fica puxado para o lado de quem vendeu mais vezes.

Esse tipo de cálculo é chamado de média ponderada, e ele é diferente da “média das médias”, que trataria cada vendedor com o mesmo peso, não importa quantas vendas cada um fez.

Um exemplo ajuda a entender.

Repare que Diego Alves tem apenas 2 pedidos, mas de valor alto, enquanto Carla Dias tem 4 pedidos de valor baixo.

Se você usar AVERAGE(Vendas[Valor da Venda]), o Power BI vai somar todos os 16 valores e dividir por 16, o que dá mais peso, naturalmente, a quem tem mais pedidos registrados.

É exatamente esse desequilíbrio que a fórmula a seguir resolve.

O problema da “média das médias”

Se o que você quer é a média do ticket médio de cada vendedor,ou seja, primeiro calcular a média de cada um e depois tirar a média dessas médias, sem que Diego Alves “puxe” o resultado por ter pedidos de valor mais alto, o AVERAGE simples não resolve.

É exatamente aqui que entra a fórmula usada para resolver esse tipo de caso:

Média das Médias por Vendedor =
AVERAGEX(
    VALUES(Vendas[Vendedor]),
    CALCULATE(AVERAGE(Vendas[Valor da Venda]))
)
aprendendo média das médias com average e averagex

O que essa medida faz, passo a passo:

  1. VALUES(Vendas[Vendedor]) cria uma lista com cada vendedor único da tabela.
  2. AVERAGEX percorre essa lista, um vendedor por vez.
  3. Para cada vendedor, CALCULATE(AVERAGE(Vendas[Valor da Venda])) calcula a média de vendas daquele vendedor específico, respeitando o filtro criado pela iteração.
  4. No final, AVERAGEX tira a média de todas essas médias individuais.

O resultado é diferente do AVERAGE simples porque cada vendedor entra no cálculo final com o mesmo peso, independente de quantos pedidos tenha feito.

É a diferença entre “ticket médio geral” e “média do ticket médio por vendedor”, dois números que respondem perguntas de negócio diferentes.

O primeiro responde “qual o valor médio de cada pedido, considerando todos igualmente”, enquanto o segundo responde “em média, qual é o ticket médio de um vendedor típico da equipe”, e é importante saber qual dos dois você realmente precisa antes de montar a medida.

AVERAGE vs AVERAGEX: quando usar cada um

Na prática, a regra é mais simples do que parece:

  • Use AVERAGE quando quiser a média direta de uma coluna, sem nenhum cálculo intermediário como “preço médio”, “idade média” ou “nota média” já registrada linha a linha.
  • Use AVERAGEX quando precisar calcular alguma coisa antes de tirar a média, uma divisão, uma soma agrupada por categoria, ou uma “média das médias” por grupo (vendedor, região, produto, cliente).

Um jeito rápido de decidir: se a resposta exige a palavra “por”, média de vendas por cliente, margem por produto, nota por vendedor, é sinal de que você provavelmente precisa de AVERAGEX combinada com CALCULATE e VALUES ou SUMMARIZE.

AVERAGEX é mais lento que AVERAGE?

Sim, em geral, AVERAGE calcula a média direto sobre uma coluna, sem percorrer linha a linha, o que é naturalmente mais rápido.

AVERAGEX precisa avaliar uma expressão para cada linha da tabela (ou expressão de tabela) antes de calcular a média, o que consome mais processamento principalmente em tabelas grandes.

Na prática, isso raramente é um problema visível em bases pequenas ou médias.

Mas vale a regra: se a média pode ser calculada direto de uma coluna, prefira AVERAGE.

Reserve AVERAGEX para os casos em que ela é realmente necessária, cálculo por linha ou por grupo e não como substituta padrão de AVERAGE.

Conclusão

AVERAGE resolve médias diretas de uma coluna.

AVERAGEX entra quando você precisa calcular algo linha a linha ou por grupo antes de tirar a média e é exatamente essa combinação, com VALUES e CALCULATE, que resolve o problema mais comum de “médias erradas” nos totais do Power BI.

Antes de montar a próxima medida de média no seu relatório, pare e pergunte: você quer a média de todas as linhas misturadas, ou a média por grupo?

Essa pergunta simples evita relatórios com números que “parecem certos”, mas respondem à pergunta errada e é a diferença entre um dashboard que só mostra números e um que realmente apoia decisão de negócio.

Sobre o Autor

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Solicitar exportação de dados

Use este formulário para solicitar uma cópia de seus dados neste site.

Solicitar a remoção de dados

Use este formulário para solicitar a remoção de seus dados neste site.

Solicitar retificação de dados

Use este formulário para solicitar a retificação de seus dados neste site. Aqui você pode corrigir ou atualizar seus dados, por exemplo.

Solicitar cancelamento de inscrição

Use este formulário para solicitar a cancelamento da inscrição do seu e-mail em nossas listas de e-mail.