A média truncada oferece uma medida de média mais robusta ao excluir uma percentagem especificada dos valores mais pequenos e mais elevados do cálculo. Modern PowerA média truncada oferece uma medida de média mais robusta ao excluir uma percentagem especificada dos valores mais pequenos e mais elevados do cálculo. Modern Power

Calcular uma Média Truncada Dinâmica no Power BI Usando DAX: Um Guia Rápido

2026/01/11 04:00

Porquê Necessita de uma Média Truncada

Na análise de dados, a função AVERAGE padrão é um instrumento fundamental, mas tem uma fraqueza significativa: é altamente suscetível a distorções causadas por valores atípicos. Um único valor extremo, seja alto ou baixo, pode distorcer todo o resultado, deturpando a verdadeira tendência central dos dados.

\ É aqui que a média truncada se torna essencial. Fornece uma medida mais robusta da média ao excluir um percentual especificado dos valores mais pequenos e maiores do cálculo.

\ Embora os modelos modernos do Power BI tenham uma função TRIMMEAN integrada, esta função está frequentemente indisponível ao usar uma Ligação em Direto a um modelo Analysis Services (SSAS) mais antigo. Este artigo fornece um padrão DAX manual robusto que replica esta funcionalidade e permanece totalmente dinâmico, respondendo a todos os segmentadores de dados e filtros no seu relatório.

A Solução DAX para uma Média Truncada Dinâmica

Esta medida calcula uma média truncada de 20% removendo os 10% inferiores e os 10% superiores dos valores antes de calcular a média dos restantes 80%.

\ Pode colar este código diretamente na barra de fórmulas "Nova Medida".

Trimmed Mean (20%) = VAR TargetTable = 'FactTable' VAR TargetColumn = 'FactTable'[MeasureColumn] VAR LowerPercentile = 0.10 // Define os 10% inferiores a aparar VAR UpperPercentile = 0.90 // Define os 10% superiores a aparar (1.0 - 0.10) // 1. Encontrar o valor no 10º percentil VAR MinThreshold = PERCENTILEX.INC( FILTER( TargetTable, NOT( ISBLANK( TargetColumn ) ) ), TargetColumn, LowerPercentile ) // 2. Encontrar o valor no 90º percentil VAR MaxThreshold = PERCENTILEX.INC( FILTER( TargetTable, NOT( ISBLANK( TargetColumn ) ) ), TargetColumn, UpperPercentile ) // 3. Calcular a média, incluindo apenas valores entre os limiares RETURN CALCULATE( AVERAGEX( FILTER( TargetTable, TargetColumn >= MinThreshold && TargetColumn <= MaxThreshold ), TargetColumn ) )

Desconstruindo a Lógica DAX

Esta fórmula funciona em três etapas distintas, todas executadas dentro do contexto de filtro atual (por exemplo, quaisquer segmentadores de dados que o utilizador tenha selecionado).

  1. Definir Variáveis Chave
  • TargetTable & TargetColumn: Atribuímos os nomes da tabela e coluna a variáveis para código limpo e reutilizável. Deve alterar 'FactTable'[MeasureColumn] para corresponder ao seu modelo de dados.
  • LowerPercentile / UpperPercentile: Definimos os limites. 0.10 e 0.90 significam que estamos a aparar os 10% inferiores e os 10% superiores. Para aparar 5% de cada extremidade (um corte total de 10%), usaria 0.05 e 0.95.

2. Encontrar os Limiares de Percentil

  • MinThreshold & MaxThreshold: Estas variáveis armazenam os valores reais que correspondem aos nossos limites de percentil.
  • PERCENTILEX.INC: Usamos esta função "iteradora" porque nos permite primeiro FILTRAR a tabela.
  • `FILTER(…, NOT(ISBLANK(…))): Este é um passo crucial. Calculamos os percentis apenas para linhas onde a nossa coluna alvo não está em branco. Isto evita que valores BLANK() distorçam o cálculo do percentil.
  • O resultado é que MinThreshold contém o valor do 10º percentil (por exemplo, 4.5) e MaxThreshold contém o valor do 90º percentil (por exemplo, 88.2) para os dados atualmente visíveis.

3. Calcular a Média Final

  • RETURN CALCULATE(...): A função CALCULATE é a chave para tornar a medida dinâmica. Garante que todo o cálculo respeita os filtros aplicados por quaisquer segmentadores de dados ou elementos visuais no relatório.
  • AVERAGEX(FILTER(...)): O núcleo do cálculo. Usamos AVERAGEX para iterar sobre uma tabela.
  • FILTER(...): Filtramos a nossa TargetTable uma última vez. Este filtro é o "corte". Mantém apenas as linhas onde o valor em TargetColumn é:
  • Maior ou igual a nosso MinThreshold
  • E
  • Menor ou igual a nosso MaxThreshold
  • AVERAGEX(..., TargetColumn): AVERAGEX calcula então a média simples de TargetColumn apenas para as linhas que passaram o filtro.

Conclusão

Ao implementar este padrão DAX, cria um KPI robusto, dinâmico e resistente a valores atípicos. Esta medida fornece uma imagem mais precisa da tendência central dos seus dados e será corretamente recalculada em tempo real à medida que os utilizadores interagem com o seu relatório Power BI.


Obrigado por dedicar o seu tempo a explorar insights relacionados com dados comigo. Agradeço o seu envolvimento. Se achar esta informação útil, convido-o a seguir-me ou a conectar-se comigo no LinkedIn ou X(@Luca_DataTeam). Boas explorações!👋

Oportunidade de mercado
Logo de Power Protocol
Cotação Power Protocol (POWER)
$0.13079
$0.13079$0.13079
-20.97%
USD
Gráfico de preço em tempo real de Power Protocol (POWER)
Isenção de responsabilidade: Os artigos republicados neste site são provenientes de plataformas públicas e são fornecidos apenas para fins informativos. Eles não refletem necessariamente a opinião da MEXC. Todos os direitos permanecem com os autores originais. Se você acredita que algum conteúdo infringe direitos de terceiros, entre em contato pelo e-mail service@support.mexc.com para solicitar a remoção. A MEXC não oferece garantias quanto à precisão, integridade ou atualidade das informações e não se responsabiliza por quaisquer ações tomadas com base no conteúdo fornecido. O conteúdo não constitui aconselhamento financeiro, jurídico ou profissional, nem deve ser considerado uma recomendação ou endosso por parte da MEXC.