Selo de estado:
Preview(teto atual do produto) · Curso ACD-320 — Fórmulas pt-BR: de SOMA a CALCULAR · Aula 13 de 13 · Atualizado em 2026-10-04.
Objetivo#
Ao final desta aula você vai converter 5 medidas DAX; identificar o que não converte.
Vídeo#
Identificador no manifesto: acd-320-13-dax-para-formulas-pt-br · duração-alvo 7 min · tela do produto: /dashboards.
Roteiro:
| # | Capítulo | Minutagem-alvo | Rota |
|---|---|---|---|
| 1 | Abertura — o mapa de conceitos Power BI → ingestia.bi | 00:00–00:50 | /dashboards |
| 2 | Colar uma medida DAX no importador assistido | 00:50–02:20 | /dashboards (importador de DAX) |
| 3 | 5 conversões lado a lado: SUM, DIVIDE, CALCULATE+FILTER, CALCULATE+ALL, TOTALYTD | 02:20–05:00 | /dashboards (importador de DAX) |
| 4 | O que o importador sinaliza como naoSuportados | 05:00–06:10 | /dashboards (importador de DAX) |
| 5 | Encerramento — revisar antes de salvar | 06:10–07:00 | /dashboards |
Conteúdo#
Última aula do curso: você já sabe escrever a linguagem do zero (aulas 1–12); agora o objetivo é traduzir o que já existe num modelo Power BI. O produto tem um importador de DAX assistido com uma matriz de conformidade — ele traduz o que tem equivalente e sinaliza o que não tem, em vez de fingir que converteu tudo. Trate toda conversão como um rascunho a revisar, nunca como um botão mágico.
O mapa de conceitos, em uma tabela
| Power BI | ingestia.bi | O que muda |
|---|---|---|
| Medidas DAX | Fórmulas pt-BR (102 funções) | Nomes em português, separador ;, decimal com vírgula, coluna pelo nome simples |
| Calculation groups | Grupos de cálculo | MEDIDA() no item; precedência determinística, recusa empate |
| Parâmetros / What-if | Parâmetros (field/measure/what-if) | Seleção viaja na URL/bookmark, não no modelo |
.pbix binário | Projeto aberto + Git | Diff por widget/versão em vez de binário opaco |
Cinco conversões reais
O importador deriva o mapa de funções do próprio registro do motor (aliases em inglês → nome pt-BR) e só usa tradução manual onde a aridade, a ordem ou a semântica mudam — documentado na matriz de conformidade. Cinco exemplos, DAX à esquerda e a tradução validada no motor à direita:
SUM(Vendas[valor])→formulaSOMA(valor)DIVIDE(SUM(Vendas[custo]), SUM(Vendas[valor]), 0)→formulaDIVIDIR(SOMA(custo); SOMA(valor); 0)CALCULATE(SUM(Vendas[valor]), FILTER(Vendas, Vendas[valor] > 150))→formulaCALCULAR(SOMA(valor); FILTRAR(valor > 150))CALCULATE(SUM(Vendas[valor]), ALL(Vendas))→formulaCALCULAR(SOMA(valor); TUDO())TOTALYTD(SUM(Vendas[valor]), Vendas[dia])→formulaACUM_ANO(SOMA(valor); data)
Repare no padrão: Tabela[Coluna] do DAX some — vira coluna pelo nome simples (aula 1); vírgula vira ;; ALL(Vendas) (tabela inteira) vira TUDO() sem argumento, nunca TUDO(Vendas) (aula 6 mostrou exatamente esse erro).
Honestidade em primeiro lugar: o que o importador NÃO inventa
Três garantias do importador, por design:
- A fórmula original DAX é preservada byte a byte ao lado da tradução — você sempre pode comparar.
- Todo trecho sem equivalente entra como não suportado, com motivo em português — nunca é engolido em silêncio.
- Toda tradução emitida é validada no motor antes de aparecer como confiável; se o motor rejeitar, a confiança despenca e o aviso aparece.
A confiança da tradução vem em três níveis: alta (100% mapeado, validado), média (mapeado com avisos — coluna deduzida, medida não resolvida) e baixa (placeholder presente ou validação falhou). Trate "média" e "baixa" como "revise antes de salvar", não como erro bloqueante.
O que ainda não existe (seja honesto no planejamento)
É um DAX-like genuíno (contexto de filtro real, aulas 5–6), mas não é DAX completo: não há tabelas virtuais arbitrárias no motor (por isso CALCULAR tem um repertório fechado de modificadores) e não há engine colunar em memória tipo VertiPaq — a performance vem do BigQuery mais snapshot/cache. Se uma medida DAX depende de uma tabela virtual complexa sem equivalente direto, o importador sinaliza e cabe a você reescrever com os iteradores da aula 7 ou os modificadores da aula 6.
Como o importador deriva o mapa de funções
O importador não mantém uma lista manual de 102 traduções: ele deriva o mapa a partir do próprio registro de funções do motor — o mesmo FN_REGISTRY com nome canônico e aliases em inglês que alimenta esta aula e o catálogo público. Só existe tradução manual escrita à parte onde a aridade, a ordem dos argumentos ou a semântica mudam de um jeito que uma tabela de "nome → nome" não resolveria — por exemplo, ALL(Vendas) (tabela) virando TUDO() (sem argumento), ou RANKX virando CLASSIFICAR com assinatura simplificada. Essas exceções documentadas são exatamente a matriz de conformidade.
Quando vale a pena importar, e quando vale mais reescrever
Para medidas simples (agregações, CALCULATE com FILTER/ALL, time intelligence básica), o importador costuma sair com confiança alta e economiza a digitação. Para medidas que dependem de recursos sem equivalente — tabelas virtuais arbitrárias, USERELATIONSHIP dentro de CALCULATE, funções estatísticas raras —, a tradução sai de baixa confiança ou nem sai; nesses casos, é mais rápido entender a intenção da medida original e escrever direto na linguagem pt-BR usando o que as aulas 1 a 12 ensinaram, em vez de insistir em "corrigir" uma tradução malformada.
Erros comuns
- Aceitar uma tradução de confiança "baixa" sem revisar o
naoSuportados— o motivo em português geralmente aponta exatamente o que reescrever na mão. - Copiar
Tabela[Coluna]para dentro do editor pt-BR esperando que funcione — viraCaractere inesperado: "["fora do importador (aula 1). - Esperar paridade 100% com DAX — o produto é honesto sobre o que não existe; não prometa isso ao seu time.
Estado da capacidade
O importador de DAX assistido e a matriz de conformidade (C06.6) estão em Preview.
Faça você mesmo#
No workspace de treino Aurora Varejo (abra /dashboards no console):
- Abra o importador de DAX e cole, uma a uma, as cinco medidas da seção "Cinco conversões reais".
- Para cada uma, confira a tradução, o nível de confiança e compare com a tradução mostrada nesta aula.
- Cole uma medida DAX mais complexa do seu ambiente anterior (ou invente uma com
RANKX/USERELATIONSHIP) e leia o que aparece emnaoSuportados. - Revise e salve só as traduções de confiança alta ou média — nunca uma de confiança baixa sem reescrever.
Você terminou quando as cinco medidas tiverem sido importadas com confiança alta e você tiver pelo menos um exemplo real do que o importador sinalizou como não suportado.
Checagem rápida#
Três perguntas no final da aula, corrigidas no servidor. A aula só conta como concluída depois da checagem.
Documentação relacionada#
Capacidades ensinadas#
C06.6 — o selo exibido na aula é sempre o estado mais conservador entre as capacidades citadas; nada aqui é "GA".