1. Tipo no Power Query × tipo no modelo
| Power Query | Modelo do Power BI |
|---|---|
Int64.Type (Número inteiro) | Número inteiro |
Currency.Type (Número decimal fixo) | Número decimal fixo |
type number, Decimal.Type, Double.Type | Número decimal |
Percentage.Type | Número decimal (com máscara de percentual no Power Query) |
type text | Texto |
type logical | Verdadeiro/falso |
type date, type time, type datetime | Data/hora |
type datetimezone | Data/hora (o fuso é descartado) |
type duration | Número decimal |
type binary | Não suportado: converta ou remova |
any (sem tipo) | Texto |
⚠️ Decimal.Type é ponto flutuante, apesar do nome. O decimal fixo é o
Currency.Type.
2. Definir tipos
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
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??.