Todo painel de marketing no Power BI chega, cedo ou tarde, ao mesmo momento constrangedor: alguém soma à mão os leads e as visitas do mês, faz a divisão na calculadora e descobre que a taxa de conversão do total não bate com a do relatório. O painel não está quebrado. Ele está fazendo exatamente o que a fórmula mandou, e a fórmula foi escrita no lugar errado.
Este guia explica o que é DAX, como se lê uma fórmula, e a diferença entre medida e coluna calculada que quase nenhum tutorial em português trata a fundo. Depois mostra, com números, por que a taxa sai errada no total e traz as medidas DAX que um painel de marketing precisa, com o motivo de cada uma ser medida e não coluna.
O que é DAX no Power BI?
DAX é a sigla de Data Analysis Expressions. Segundo a documentação oficial da Microsoft, é uma linguagem de expressões de fórmulas usada em três produtos: o Analysis Services, o Power BI e o Power Pivot do Excel. Ela combina funções, operadores e valores para fazer cálculos sobre tabelas relacionadas de um modelo de dados.
A comparação mais comum é chamar o DAX de “Excel turbinado”. Ela ajuda no primeiro dia e atrapalha a partir do segundo. Muitas funções têm nome parecido com as do Excel, mas a própria Microsoft lista as diferenças: uma função DAX sempre se refere a uma coluna inteira ou a uma tabela, nunca a uma célula ou a um intervalo, e muitas funções devolvem uma tabela em vez de um número.
Essa troca de unidade é o que confunde quem vem da planilha. No Excel, você escreve a fórmula numa célula e ela calcula aquela célula. No DAX, você escreve a fórmula uma vez e o resultado depende de onde ela é usada. É esse “onde” que a documentação chama de contexto, e é ele que explica a taxa errada.
Como é a sintaxe de uma fórmula DAX?
Uma medida DAX tem quatro partes, nesta ordem: o nome da medida, o sinal de igual, a função e os argumentos entre parênteses. Tabelas aparecem entre aspas simples e colunas entre colchetes. Um exemplo de painel de marketing:
Investimento = SUM ( 'Midia'[Valor investido] )
Aqui, Investimento é o nome que vai aparecer na lista de campos; SUM é a função de agregação; 'Midia' é a tabela; [Valor investido] é a coluna. A documentação observa um detalhe que parece pequeno: na medida, o nome vem antes da fórmula; na coluna calculada, a fórmula começa direto no sinal de igual, porque o nome é o da própria coluna.
Fórmulas podem ser aninhadas, com uma função dentro da outra, e podem usar variáveis com VAR e RETURN. Variável não é enfeite: ela deixa a medida legível e evita repetir o mesmo cálculo duas vezes na mesma expressão. Em painel com dezenas de medidas, é o que permite que outra pessoa entenda o que foi feito seis meses depois.
- Funções de agregação: SUM, AVERAGE, COUNTROWS, DISTINCTCOUNT, MIN, MAX.
- Iteradoras, terminadas em X: SUMX, AVERAGEX, MAXX. Percorrem uma tabela linha a linha e agregam o resultado.
- Funções de filtro: CALCULATE, FILTER, ALL, ALLEXCEPT. Mudam o conjunto de linhas sobre o qual a conta é feita.
- Inteligência de tempo: DATEADD, SAMEPERIODLASTYEAR, DATESYTD. Comparam períodos.
- Relacionamento: RELATED, USERELATIONSHIP. Buscam valores em tabelas ligadas.
- Lógicas e de divisão segura: IF, SWITCH, DIVIDE.
Qual a diferença entre medida e coluna calculada?
É a pergunta que separa o painel confiável do painel que precisa de explicação toda segunda-feira. As duas usam DAX, as duas aparecem na lista de campos, e o Power BI deixa criar qualquer uma com dois cliques. O que muda é quando a conta acontece e o que fica guardado.
| Coluna calculada | Medida | |
|---|---|---|
| Quando é calculada | Na atualização do modelo ou ao reabrir o arquivo | Na hora, a cada célula do relatório |
| O que fica guardado | Um valor por linha, gravado na tabela | Só a fórmula; nenhum valor |
| Contexto que enxerga | A linha atual (contexto de linha) | Os filtros da célula (contexto de filtro) |
| Reage a filtro e segmentação | Não: o valor da linha é fixo | Sim: recalcula para cada seleção |
| Custo | Ocupa memória e aumenta o arquivo | Custa processamento na consulta |
| Serve bem para | Classificar linhas: faixa de ticket, canal agrupado, mês-ano | Totais, médias, taxas, comparações e qualquer número de cartão |
| Exemplo de marketing | Origem agrupada = “Pago” ou “Orgânico” | CPL, taxa de conversão, CTR, ROAS |
Comparativo elaborado pela Alliance Comunicação com base na documentação DAX overview da Microsoft.
A regra prática que sai da tabela é simples. Se o valor descreve a linha e você vai usá-lo para filtrar, agrupar ou colocar no eixo, é coluna. Se o valor resume várias linhas e vai aparecer como número num cartão, numa tabela ou num gráfico, é medida. Toda taxa de marketing cai no segundo grupo, porque taxa é sempre um resumo.
O que é contexto de linha e contexto de filtro?
A documentação descreve três tipos de contexto. O contexto de linha é, em resumo, “a linha atual”: numa coluna calculada, a fórmula enxerga os valores daquela linha e das linhas relacionadas a ela em outras tabelas. É por isso que = [Frete] + [Imposto] funciona sem você dizer qual linha somar.
O contexto de filtro é o conjunto de valores permitidos em cada coluna no momento do cálculo. Ele vem do relatório (as linhas e colunas de uma tabela visual, as segmentações, os filtros de página) e também pode ser criado dentro da própria fórmula. O terceiro, o contexto de consulta, é o recorte de dados que o motor busca para preencher cada célula.
A consequência está escrita na própria documentação: a mesma fórmula, usada numa medida, é avaliada num contexto diferente para cada célula. A linha “Campanha A” filtra as linhas da campanha A; a linha de total não filtra campanha nenhuma. Uma medida faz a conta de novo no total. Uma coluna calculada não tem como fazer, porque o valor dela já foi decidido na atualização.
Por que a taxa de conversão sai errada no total?
Porque taxa não se soma e não se tira média de taxa sem peso. Imagine duas campanhas de um mês. A campanha A, de busca pela marca, teve 1.000 visitas e 50 leads: taxa de 5%. A campanha B, de alcance, teve 9.000 visitas e 90 leads: taxa de 1%. No mês, foram 10.000 visitas e 140 leads, e a taxa real do período é 1,4%.
Agora veja o que três jeitos comuns de montar o painel mostram nesse total:
- Coluna calculada com a taxa da linha, deixada com a agregação padrão de soma: o total mostra 6,0%, a soma de 5% com 1%. Um número que não existe em lugar nenhum.
- Média da coluna de taxa (AVERAGE, ou a opção “Média” no campo): o total mostra 3,0%. Parece razoável, e por isso é mais perigoso: trata a campanha de 1.000 visitas com o mesmo peso da de 9.000.
- Medida com razão de somas:
DIVIDE ( [Leads], [Visitas] ), em que Leads e Visitas também são medidas. Na linha A dá 5%, na linha B dá 1% e no total dá 1,4%, porque no total as somas são do mês inteiro.
O mesmo raciocínio vale para CPL (investimento ÷ leads), CTR (cliques ÷ impressões), CPC, ROAS (receita ÷ investimento) e ticket médio (receita ÷ pedidos). Toda métrica que é uma razão precisa ser medida, com numerador e denominador somados no contexto da célula, e só então divididos.
Há um caso em que a coluna parece funcionar: quando a tabela tem uma linha por campanha e o relatório nunca mostra total, nem agrupa por canal, nem filtra por mês. Na prática, essa condição dura até a primeira reunião em que alguém pede “e no consolidado?”. Esse é um dos motivos pelos quais os números de um dashboard de marketing não batem com os da plataforma de mídia.
Como o DIVIDE resolve a divisão por zero?
Painel de marketing tem zero em todo canto: campanha pausada sem investimento, dia sem lead, canal novo sem visita. Dividir por zero com o operador de barra gera um resultado de infinito ou erro, que estraga cartões e gráficos. A função DIVIDE foi feita para isso.
A sintaxe é DIVIDE ( numerador, denominador [, resultado alternativo] ). Sem o terceiro argumento, a célula fica em branco, e em geral é isso que você quer: em branco, a linha some da tabela visual em vez de aparecer com um zero que sugere desempenho péssimo. Se o relatório precisar mostrar zero, passe 0 como terceiro argumento. A documentação lembra que o resultado alternativo precisa ser uma constante.
Uma decisão de negócio fica escondida aqui. CPL em branco para uma campanha sem lead é honesto: não há custo por lead porque não há lead. CPL zero seria mentira. Já uma taxa de conversão zero para uma campanha com visitas e sem lead é informação real, e nesse caso o zero vem do numerador, não da divisão por zero, e o DIVIDE devolve zero sozinho.
Quais são as medidas DAX de um painel de marketing?
A base é pequena. Com oito medidas, um painel de mídia e geração de leads responde quase tudo que a diretoria pergunta. O princípio de construção é sempre o mesmo: primeiro as medidas de soma, depois as de razão, que usam as de soma. A Microsoft confirma que uma medida pode ser usada como argumento de outra, e é isso que mantém o painel coerente.
1. Investimento, Visitas, Cliques e Impressões
Medidas de soma simples, como Investimento = SUM ( 'Midia'[Valor investido] ). Parecem desnecessárias, já que o Power BI soma a coluna sozinho quando você a arrasta. Crie mesmo assim: são elas que as medidas de razão vão chamar, e se a regra mudar (excluir taxa da plataforma, por exemplo), você muda num lugar só.
2. Leads
Se a tabela de leads tem uma linha por lead, Leads = COUNTROWS ( 'Leads' ). Se o mesmo contato pode entrar duas vezes, prefira DISTINCTCOUNT ( 'Leads'[Email] ). Essa escolha é de definição, não de técnica, e precisa estar combinada com o comercial antes de virar número em reunião.
3. CPL e taxa de conversão
CPL = DIVIDE ( [Investimento], [Leads] ) e Taxa de conversão = DIVIDE ( [Leads], [Visitas] ). São as duas que o exemplo das campanhas A e B mostrou: só como medida o total fica certo, em qualquer recorte de canal, campanha ou período.
4. CTR e ROAS
CTR = DIVIDE ( [Cliques], [Impressões] ) e ROAS = DIVIDE ( [Receita atribuída], [Investimento] ). O ROAS depende de a receita estar ligada à campanha, o que exige uma chave comum entre a tabela de vendas e a de mídia. Sem isso, a fórmula está certa e o número continua sem sentido.
5. Participação no total
% dos leads = DIVIDE ( [Leads], CALCULATE ( [Leads], ALL ( 'Canal' ) ) ). O CALCULATE muda o contexto de filtro e o ALL remove o filtro de canal só no denominador. Resultado: cada linha mostra quanto aquele canal representa do total de leads do período selecionado.
| Medida | Fórmula DAX | Por que precisa ser medida |
|---|---|---|
| Investimento | SUM ( 'Midia'[Valor investido] ) | Base das razões; regra muda num lugar só |
| Leads | COUNTROWS ( 'Leads' ) | Conta só as linhas que passaram no filtro da célula |
| CPL | DIVIDE ( [Investimento], [Leads] ) | Razão: no total, soma o investimento e os leads antes de dividir |
| Taxa de conversão | DIVIDE ( [Leads], [Visitas] ) | Média de taxas ignora o peso de cada campanha |
| CTR | DIVIDE ( [Cliques], [Impressões] ) | Mesmo problema de peso da taxa de conversão |
| ROAS | DIVIDE ( [Receita atribuída], [Investimento] ) | Razão; e DIVIDE evita erro em campanha sem gasto |
| Leads mês anterior | CALCULATE ( [Leads], DATEADD ( 'Calendario'[Data], -1, MONTH ) ) | Depende do período que a célula mostra |
| % dos leads | DIVIDE ( [Leads], CALCULATE ( [Leads], ALL ( 'Canal' ) ) ) | O denominador precisa ignorar o filtro de canal |
Medidas de referência elaboradas pela Alliance Comunicação. Os nomes de tabela e coluna são ilustrativos.
Como comparar com o período anterior em DAX?
Comparar com o mês anterior ou com o mesmo mês do ano passado é o pedido mais comum depois do total. O DAX tem uma família inteira para isso, que a Microsoft chama de funções de inteligência de tempo: elas usam conhecimento de calendário para comparar períodos equivalentes.
A medida Leads mês anterior = CALCULATE ( [Leads], DATEADD ( 'Calendario'[Data], -1, MONTH ) ) desloca o filtro de datas da célula em um mês para trás. A variação vem em seguida, de novo com DIVIDE: Variação = DIVIDE ( [Leads] - [Leads mês anterior], [Leads mês anterior] ). Para o ano anterior, troque DATEADD por SAMEPERIODLASTYEAR.
Essas funções pedem uma tabela de calendário contínua, com uma linha por dia, ligada às tabelas de mídia e de leads. Usar a data da própria tabela de leads como eixo é o atalho que faz a comparação falhar nos dias sem lead. É também o motivo mais comum de “a variação deu em branco” em painel novo.
Como usar ALLEXCEPT no DAX?
A função ALLEXCEPT remove todos os filtros de contexto de uma tabela, menos os das colunas que você indicar. Ela não é usada sozinha: entra dentro do CALCULATE para mudar o conjunto de linhas da conta. A Microsoft a descreve como atalho para quando você quer tirar o filtro de muitas colunas, mas não de todas.
Num painel de campanhas, CALCULATE ( [Leads], ALLEXCEPT ( 'Campanhas', 'Campanhas'[Canal] ) ) devolve o total de leads do canal da linha, ignorando o filtro de campanha. Dividindo os leads da campanha por esse valor, cada campanha mostra quanto pesa dentro do próprio canal, e não do total geral. É a diferença entre “a campanha X trouxe 4% dos leads” e “a campanha X trouxe 40% dos leads do Google”.
Quais os erros mais comuns em DAX?
- Taxa como coluna calculada. Funciona linha a linha e erra em todo total, agrupamento e filtro de período.
- Média de taxas no cartão. Dá um número plausível e errado; o erro só aparece quando alguém refaz a conta à mão.
- Divisão com barra em vez de DIVIDE. O primeiro dia sem lead quebra o cartão do CPL.
- Medida de razão sem medidas de base. Escrever
SUMdentro de cada razão espalha a mesma regra por dez lugares, e na primeira mudança metade fica desatualizada. - Coluna calculada para tudo. Cada coluna ocupa memória e aumenta o arquivo; em base de leads grande, o modelo fica pesado sem necessidade.
- Comparação de período sem tabela de calendário. As funções de inteligência de tempo devolvem branco ou valores estranhos.
- Medida sem nome de negócio. “Medida 7” na lista de campos é dívida para a próxima pessoa que abrir o arquivo.
Quase todos esses erros têm a mesma raiz: tratar o Power BI como planilha, em que cada número é calculado onde aparece. O DAX recompensa quem define o cálculo uma vez, no lugar certo, e deixa o contexto fazer o resto.
Qual a diferença entre DAX no Excel e no Power BI?
A linguagem é a mesma. O DAX do Excel vive no Power Pivot, o modelo de dados que fica por trás das tabelas dinâmicas, e as medidas criadas ali aparecem na lista de campos da tabela dinâmica do mesmo jeito que no Power BI. Quem aprende medida e contexto num ambiente leva o raciocínio inteiro para o outro.
As diferenças estão no que cada produto oferece em volta. A documentação registra, por exemplo, que a segurança em nível de linha não está disponível no Power Pivot do Excel, e lembra que nem todas as funções novas chegam às versões mais antigas do Excel e do Analysis Services. O Power BI também tem recursos próprios, como os cálculos visuais, que não existem na tabela dinâmica.
Na prática de marketing, a fronteira costuma ser outra: o Excel atende enquanto uma pessoa monta e lê o relatório; o Power BI entra quando o painel precisa ser atualizado sozinho e lido por várias pessoas. Se esse é o seu momento, vale entender antes quem precisa de licença Power BI Pro para ver o painel, porque o custo muda com o número de leitores.
Como saber se as medidas do painel estão certas?
- Refaça um total à mão. Escolha um mês, some leads e visitas na origem e divida. O cartão do Power BI tem de bater.
- Troque o recorte. Olhe a mesma taxa por campanha, por canal e por semana. Medida certa continua coerente; coluna calculada denuncia nos totais.
- Procure taxa acima de 100% ou soma de percentuais. É o sinal mais rápido de razão agregada do jeito errado.
- Teste um período sem dados. Uma campanha pausada deve mostrar CPL em branco, e não erro nem infinito.
- Compare com a plataforma. Diferença pequena com o Google Ads ou a Meta é normal por janela de atribuição e fuso; diferença grande costuma ser fórmula.
Essa conferência vale mais quando a taxa entra numa decisão de verba. Uma taxa de conversão que parece o dobro da real faz cortar a mídia errada. Se o problema está no funil e não na fórmula, o artigo sobre onde a taxa de conversão vaza dinheiro ajuda a separar uma coisa da outra.
Por onde começar hoje
Abra o painel que a equipe mais usa e faça o teste do total. Liste todas as colunas calculadas e marque as que guardam uma razão: elas viram medidas. Crie as medidas de soma primeiro, depois as de razão com DIVIDE, e só então refaça os cartões e as tabelas visuais. Por fim, ligue uma tabela de calendário antes de qualquer comparação de período.
Se o painel junta dados de mídia, CRM e site e ninguém sabe ao certo qual número é o oficial, o trabalho é de modelo de dados, não só de fórmula. É esse o escopo do serviço de BI e dashboards da Alliance. E se você quer saber antes onde estão as lacunas de mensuração da empresa como um todo, o diagnóstico de marketing gratuito leva cerca de 30 minutos e avalia, entre outras dimensões, a maturidade de dados e mensuração.

