Biblioteca de 28 funções DAX definidas pelo usuário (UDFs) com código completo, argumentos, exemplos e teste em DAX Query View: calendário, comparativo com o ano anterior, texto, datas fiscais, feriados móveis e estatística.
29 funções
Guia de uso
1. Requisitos
Funções DAX definidas pelo usuário (UDFs) estão disponíveis de forma
geral no Power BI Desktop e no Power BI Service desde a versão de junho
de 2026 e exigem nível de compatibilidade do banco 1702 ou superior.
2. Gravar uma função no modelo
Abra a DAX Query View, cole o Código completo da função e
execute (o EVALUATE do fim testa a função).
Clique em Update model with changes para gravar todas as funções
da consulta, ou em Update model: Add new function acima de uma
função para gravar só ela.
A função aparece no Model explorer, no nó Functions.
Na TMDL view, use createOrReplace com function no lugar de
FUNCTION. Num Power BI Project, as funções ficam em functions.tmdl.
A função precisa avaliar o argumento em outro contexto, como dentro de CALCULATE
⚠️ Parâmetro expr é reavaliado a cada uso dentro da função. Se a
função só faz conta com o valor, prefira ANYVAL ou NUMERIC.
4. Documentar a função
Use /// acima de FUNCTION, com @param e @returns: a descrição
aparece no IntelliSense. Comentários // e /* */ não aparecem.
DEFINE/// Diferença entre o valor atual e o do ano anterior./// @param {ANYVAL} Valor - Valor atual./// @param {ANYVAL} ValorAA - Valor do ano anterior./// @returns Valor − ValorAA, ou BLANK se um dos dois estiver em branco.FUNCTIONDelta.Absoluto=(Valor:ANYVAL,ValorAA:ANYVAL)=>IF(ISBLANK(Valor)||ISBLANK(ValorAA),BLANK(),Valor-ValorAA)EVALUATE{Delta.Absoluto(120,100)}
5. Listar as funções do modelo
EVALUATEINFO.USERDEFINEDFUNCTIONS()
6. Limitações
Sem recursão, sem sobrecarga e sem tipo de retorno explícito.
Funções não vão para pastas de exibição e não podem ser ocultadas.
Segurança em nível de objeto (OLS) não passa para a função: uma função
que usa uma medida protegida não fica protegida.
Devolve a data de maior venda e o valor, num único texto.
MelhorDiadeVendas=CONCATENATEX(TOPN(1,VALUES(TabDimCalendario[Data]),[Total de Vendas]),FORMAT(TabDimCalendario[Data],"dd-mmm")&" | "&FORMAT([Total de Vendas],"#,.0K"),", "-- separa as datas em caso de empate)
TOPN devolve todas as linhas empatadas na primeira posição: o
delimitador ", " evita que as datas saiam grudadas.
⚠️ A vírgula logo antes do ponto decimal em "#,.0K" divide o valor
por 1.000. O texto final segue a localidade do modelo.
Seta de variação
Troca os triângulos de Delta.Info por setas Unicode.
SetaΔ%TotaldeVendas=VARvDeltaPct=[Δ% Total de Vendas]RETURNSWITCH(TRUE(),ISBLANK(vDeltaPct),BLANK(),-- sem ano anteriorvDeltaPct>0,"🡽",vDeltaPct=0,"🢂","🢆")
⚠️ Use ISBLANK e não vDeltaPct = BLANK (): todo operador de
comparação, exceto ==, trata BLANK como 0, então uma variação zero viraria BLANK e a seta
horizontal nunca apareceria.
Formate a medida Δ% Total de Vendas conforme o padrão AV/AA/Δ das
funções Delta.*.