Do Power Query para o modelo

M

1. Tipo no Power Query Não tipo no modelo

Power QueryNome no menu do Power QueryModelo do Power BI
type number, Decimal.Type, Double.TypeNúmero decimalNúmero decimal
Currency.Type (Conversor de Moedas)Conversor de MoedasNúmero decimal fixo
Int64.Type (Número inteiro)Número inteiroNúmero inteiro
Percentage.TypePorcentagemNúmero decimal (com máscara de percentual no Power Query)
type datetimeData/horaData/hora
type dateDataData (guardada como Data/hora, hora zero)
type timeHoraHora (guardada como Data/hora)
type datetimezoneData/Hora/ZonaData/hora (o fuso é descartado)
type durationDuraçãoNúmero decimal
type textTextoTexto
type logicalVerdadeiro/FalsoTrue/false
type binaryBinárioNão suportado: converta ou remova
any (sem tipo)Não aparece no menu (ícone ABC/123)Texto

Nomes conforme o Power BI Desktop em português, versão de outubro de 2026 (menu do Power Query e menu Tipo de dados do modelo).

Atenção Decimal.Type é ponto flutuante, apesar do nome. O decimal fixo é o Currency.Type.

2. Definir tipos

M
let
    Origem = Csv.Document(File.Contents("C:\dados\vendas.csv"), [Delimiter = ";"]),
    Cabecalhos = Table.PromoteHeaders(Origem),
    Tipos = Table.TransformColumnTypes(
        Cabecalhos,
        {
            {"Data da Venda", type date},
            {"Quantidade", Int64.Type},
            {"Valor Venda", Currency.Type},
            {"Produto", type text}
        },
        "pt-BR"   // cultura: lê "1.234,56" e "24/09/2026" no formato brasileiro
    )
in
    Tipos
  • A cultura ("pt-BR", "en-US") define como texto vira número e data. Sem ela, vale a configuração regional do arquivo — e a mesma consulta pode dar resultado diferente em outra máquina.
  • Table.TransformColumnTypes aceita tipos primitivos e os tipos .Type; não aceita list, record, table nem function.
  • Defina o tipo antes de filtrar e calcular: sem tipo, a interface não oferece os filtros e as transformações de data, número e texto.

3. nullable e optional

M
let
    // Arredonda um valor; casas é opcional e vale 2 quando omitido.
    Arredondar = (valor as number, optional casas as nullable number) as number =>
        Number.Round(valor, casas ?? 2)
in
    { Arredondar(3.14159), Arredondar(3.14159, 4) }   // {3.14, 3.1416}
  • nullable T aceita os valores de T e null.
  • optional permite omitir o parâmetro; ele chega como null, por isso costuma vir junto com nullable e ??.

Fontes

Conhecer a trilha Power BI ao vivo