Pular para o conteúdo

Vindo do DAX: o que difere; importador assistido

Aula 13 de 137 minOperarAtualizada em 2026-10-04

Vídeo em produção

A gravação desta aula está no lote de produção. O objetivo, o exercício e a documentação já valem. Duração-alvo: 7 min.

Objetivo: Converter 5 medidas DAX; identificar o que não converte

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ítuloMinutagem-alvoRota
1Abertura — o mapa de conceitos Power BI → ingestia.bi00:00–00:50/dashboards
2Colar uma medida DAX no importador assistido00:50–02:20/dashboards (importador de DAX)
35 conversões lado a lado: SUM, DIVIDE, CALCULATE+FILTER, CALCULATE+ALL, TOTALYTD02:20–05:00/dashboards (importador de DAX)
4O que o importador sinaliza como naoSuportados05:00–06:10/dashboards (importador de DAX)
5Encerramento — revisar antes de salvar06: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 BIingestia.biO que muda
Medidas DAXFórmulas pt-BR (102 funções)Nomes em português, separador ;, decimal com vírgula, coluna pelo nome simples
Calculation groupsGrupos de cálculoMEDIDA() no item; precedência determinística, recusa empate
Parâmetros / What-ifParâmetros (field/measure/what-if)Seleção viaja na URL/bookmark, não no modelo
.pbix binárioProjeto aberto + GitDiff 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:

  1. SUM(Vendas[valor]) →
    formula
    SOMA(valor)
  2. DIVIDE(SUM(Vendas[custo]), SUM(Vendas[valor]), 0) →
    formula
    DIVIDIR(SOMA(custo); SOMA(valor); 0)
  3. CALCULATE(SUM(Vendas[valor]), FILTER(Vendas, Vendas[valor] > 150)) →
    formula
    CALCULAR(SOMA(valor); FILTRAR(valor > 150))
  4. CALCULATE(SUM(Vendas[valor]), ALL(Vendas)) →
    formula
    CALCULAR(SOMA(valor); TUDO())
  5. TOTALYTD(SUM(Vendas[valor]), Vendas[dia]) →
    formula
    ACUM_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 — vira Caractere 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):

  1. Abra o importador de DAX e cole, uma a uma, as cinco medidas da seção "Cinco conversões reais".
  2. Para cada uma, confira a tradução, o nível de confiança e compare com a tradução mostrada nesta aula.
  3. Cole uma medida DAX mais complexa do seu ambiente anterior (ou invente uma com RANKX/USERELATIONSHIP) e leia o que aparece em naoSuportados.
  4. 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".

Carregando seu progresso…