Em projetos de Business Intelligence de alta performance, a organização do código e a governança do modelo de dados são tão importantes quanto a precisão dos cálculos. Para resolver problemas comuns de manutenção, redundância e dificuldade de rastreio em DAX, desenvolvi uma arquitetura de medidas em camadas (Efeito Cascata) inspirada em conceitos de engenharia de software.
Essa abordagem estrutura o painel de forma hierárquica, dividindo as regras de negócio em níveis bem definidos.
Medidas Primárias (A Base): Representam a fundação do modelo. São agregações diretas e somas simples aplicadas sobre as tabelas fato brutas (ex: Receita Bruta, Receita Liquida, Volume Kg/L).
Receita Bruta = SUM('fFaturamento'[receita_bruta])
Medidas Secundárias (O Processamento Intermediário): Adicionam um nível lógico superior, combinando ou manipulando as medidas primárias para gerar indicadores direcionados (ex: Preco Liq. Medio, Receita Liq A, Volume A).
Preco Liq. Medio = DIVIDE([Receita Liquida],[Volume Kg/L],0)
Ou
Preço Liq B = CALCULATE([Preco Liq. Medio], REMOVEFILTERS(calendario),DATESBETWEEN(calendario[Date],[Inicio_PeriodoB],[Fim_PeriodoB]))
Medidas Terciárias (A Complexidade Analítica): Tratam-se de cálculos avançados, inteligência de tempo e regras complexas de comparação que dependem das camadas anteriores para funcionar (ex: Alerta_Comparacao_Meses, YoY Receita Liq).
Alerta_Comparacao_Meses =
VAR MesesPeriodoA = CALCULATE( DISTINCTCOUNT(calendario[Mês/Ano]),
DATESBETWEEN(Calendario[Date], [Inicio_PeriodoA],[Fim_PeriodoA]))
VAR MesesPeriodoB = CALCULATE( DISTINCTCOUNT(calendario[Mês/Ano]),
DATESBETWEEN(Calendario[Date], [Inicio_PeriodoB],[Fim_PeriodoB]))
RETURN
IF( MesesPeriodoA <> MesesPeriodoB, "⚠️ Atenção: As janelas têm tamanhos diferentes " & MesesPeriodoA & " vs " & MesesPeriodoB & ". Ajuste os filtros.", BLANK())
Apoio e Contexto (Tempo e %): Pastas dedicadas a parâmetros temporais (Inicio_PeriodoA, Fim_PeriodoB) e indicadores percentuais de variação, garantindo modularidade.
Efeito Cascata e Rastreabilidade de Ponta a Ponta: Como cada camada consome a imediatamente anterior, se um indicador apresenta divergência, é possível rastrear o fluxo desde a raiz (Primárias) até a regra final (Terciárias) com total segurança.
Manutenibilidade Segura: Alterações em uma base de cálculo primária propagam-se de forma controlada, evitando o efeito "bola de neve" ou quebras inesperadas em relatórios complexos.
Escalabilidade e Limpeza: O modelo fica visualmente organizado em pastas lógicas dentro do Power BI, facilitando a colaboração em equipe e a leitura rápida por outros desenvolvedores.
💡 Na prática: A aplicação desse padrão transforma a DAX de um amontoado de fórmulas isoladas em um sistema modular, garantindo relatórios mais limpos, fáceis de dar manutenção e preparados para crescer junto com o negócio.
Simulação de Projeto Pessoal: Dashboard de Orçamento Familiar
Desenvolvimento de um modelo de controle financeiro com foco em análise trimestral de despesas. O projeto realiza o comparativo entre as principais contas da casa, permitindo a identificação de gargalos, sazonalidade de gastos e suporte à tomada de decisões para o planejamento financeiro de médio prazo.