1. Tipo no Power Query Não tipo no modelo
| Power Query | Nome no menu do Power Query | Modelo do Power BI |
|---|---|---|
type number, Decimal.Type, Double.Type | Número decimal | Número decimal |
Currency.Type (Conversor de Moedas) | Conversor de Moedas | Número decimal fixo |
Int64.Type (Número inteiro) | Número inteiro | Número inteiro |
Percentage.Type | Porcentagem | Número decimal (com máscara de percentual no Power Query) |
type datetime | Data/hora | Data/hora |
type date | Data | Data (guardada como Data/hora, hora zero) |
type time | Hora | Hora (guardada como Data/hora) |
type datetimezone | Data/Hora/Zona | Data/hora (o fuso é descartado) |
type duration | Duração | Número decimal |
type text | Texto | Texto |
type logical | Verdadeiro/Falso | True/false |
type binary | Binário | Nã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.TransformColumnTypesaceita tipos primitivos e os tipos.Type; não aceitalist,record,tablenemfunction.- 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 Taceita os valores deTenull.optionalpermite omitir o parâmetro; ele chega comonull, por isso costuma vir junto comnullablee??.