(+351) 21 24 10006  ·  info@bconcepts.pt
Carnaxide, Lisboa

Como calcular turnover de clientes em DAX: passo a passo

João Barros 30 de October de 2026 4 min de leitura

Este tutorial mostra como calcular o turnover de clientes em DAX — ou seja, a percentagem de clientes que deixaram de comprar entre dois períodos — útil para monitorizar perda de clientes e eficácia da retenção. Vamos explicar o porquê, usar funções temporais e criar medidas reutilizáveis para obter percentagens claras por mês ou ano.

Pré-requisitos

  • Power BI Desktop com um modelo simples: tabela de Vendas (CustomerID, OrderDate, Sales) e Tabela de Datas ligada a OrderDate.
  • Conhecimentos básicos de DAX: medidas, CALCULATE, FILTER, DISTINCT.
  • Datas contínuas na Tabela de Datas e relação activa entre Tabela de Datas e Vendas.

Passo 1: Entender a definição de turnover

Turnover de clientes normalmente define-se como clientes perdidos num período dividido pelo total de clientes no período anterior. Precisamos de calcular: (a) clientes no período anterior, (b) clientes que existiam no período anterior e não compraram no período actual. Ter clareza evita confusões entre churn, aquisição e retenção.

Passo 2: Criar medida para clientes distintos no período

Cria uma medida que conte clientes distintos nas Vendas respeitando o contexto temporal. Esta medida é a base para outros cálculos (clientes no mês, trimestre, ano).

Clientes Distintos = DISTINCTCOUNT(Vendas[CustomerID])

Passo 3: Medida para clientes no período anterior

Usamos a função SAMEPERIODLASTYEAR, PARALLELPERIOD ou DATEADD conforme o período que queremos comparar. Aqui mostramos com DATEADD para flexibilidade (mês anterior, ano anterior conforme contexto).

Clientes Período Anterior =
CALCULATE(
    [Clientes Distintos],
    DATEADD('TabelaDatas'[Date], -1, MONTH)
)

Passo 4: Identificar clientes perdidos entre períodos

Para obter clientes perdidos precisamos do conjunto de clientes que compraram no período anterior mas não no período actual. Implementamos uma medida que usa FILTER com EXCEPT ou funções de relação para comparar conjuntos de CustomerID.

Clientes Perdidos =
VAR ClientesPrev = CALCULATETABLE(
    VALUES(Vendas[CustomerID]),
    DATEADD('TabelaDatas'[Date], -1, MONTH)
)
VAR ClientesNow = CALCULATETABLE(
    VALUES(Vendas[CustomerID])
)
RETURN
COUNTROWS(EXCEPT(ClientesPrev, ClientesNow))

Passo 5: Calcular o turnover (percentagem)

Com os dois numeradores (Clientes Perdidos) e denominador (Clientes Período Anterior) calculamos a percentagem. Use DIVIDE para evitar divisão por zero e formate como percentagem no Power BI.

Turnover Clientes (%) =
DIVIDE(
    [Clientes Perdidos],
    [Clientes Período Anterior],
    0
)

Passo 6: Tratar casos comuns e filtros

Erros comuns: (1) relações de data ausentes conduzem a valores errados; (2) usar contexto impróprio quando a visualização tem filtros adicionais (segmentadores, categorias); (3) comparar períodos com volumes muito baixos gera percentagens voláteis. Para respeitar filtros de produto ou região, as medidas já utilizam o contexto actual. Se quiseres comparar períodos fixos, encapsula DATEADD dentro de CALCULATE com ALL ou ALLSELECTED conforme a necessidade.

Clientes Período Anterior (ignorar produto) =
CALCULATE(
    [Clientes Distintos],
    DATEADD('TabelaDatas'[Date], -1, MONTH),
    ALL(Vendas[ProductID])
)

Verificar o resultado

Cria uma tabela no Power BI com TabelaDatas[MonthYear], [Clientes Distintos], [Clientes Período Anterior], [Clientes Perdidos] e [Turnover Clientes (%)]. Confirma que:

  • Clientes Período Anterior corresponde ao mês anterior no mesmo contexto.
  • Clientes Perdidos + Clientes Retidos = Clientes Período Anterior (podes criar Clientes Retidos = Clientes Período Anterior - Clientes Perdidos para verificar).
  • Turnover apresentado como percentagem faz sentido para picos/vales conhecidos nos dados.

Conclusão

Agora tens medidas para calcular turnover de clientes em DAX que podes adaptar (mês, trimestre, ano) e filtrar por produto ou região. Próximos passos: criar visualizações com linhas e cartões, comparar com aquisição de clientes ou segmentar por cohorts. Dica: testa as medidas em períodos com volumes maiores para reduzir ruído e adiciona uma medida de Clientes Novos para ver o balanço entre perda e aquisição.