fx

DAX

DAX Query

Guia da DAX Query View (consultas, medidas e funções no escopo da consulta, INFO.VIEW, ///, limites e atalhos), cookbook SQL → DAX com 12 padrões e cores da barra de fórmulas.

Fórmula DAX define um cálculo (medida, coluna, regra de RLS). Consulta DAX devolve dados do modelo, como um SELECT no SQL. A DAX Query View é o editor de consultas do Power BI: você testa medida com dado real, explora o modelo, documenta e depura sem criar visual.

1. Onde abrir

OndeComoRequisito
Power BI DesktopÍcone Exibição de consulta DAX na barra da esquerdaNenhum. Disponível para todos (GA) desde maio/2024
Power BI Service / FabricMenu de contexto do modelo semântico › Write DAX queries, ou o mesmo botão na página de detalhes do modeloPermissão de escrita no modelo e a opção do workspace Users can edit data models in the Power BI service ligada
Desktop com conexão dinâmicaConecte ao modelo publicado e abra a DAX Query ViewPermissão Build no modelo. É o caminho de quem é Viewer no workspace

Fora do Power BI, DAX Studio (gratuito), Tabular Editor e SQL Server Management Studio também executam consultas DAX.

2. Barra de fórmulas × DAX Query View

AspectoBarra de fórmulasDAX Query View
Para quêCriar medida, coluna calculada, tabela calculadaConsultar, testar, documentar e depurar
DevolveUm valor por contexto (medida) ou uma tabela no modeloUma ou mais tabelas de resultado
DEFINENãoSim: medidas, variáveis e funções da consulta
Grava no modeloSimSó quando você usa Update model with changes ou o CodeLens
A consulta fica salva—Sim, nas abas do arquivo (.pbix, ou pasta DAXQueries no .pbip). Na web, some ao fechar

3. Anatomia de uma consulta

EVALUATE é obrigatório. DEFINE, ORDER BY e START AT são opcionais.

DEFINE
    // Variáveis da consulta: valem para todo o bloco
    VAR vDataInicio = DATE ( 2026, 1, 1 )
    VAR vDataFim = DATE ( 2026, 6, 30 )

    // Medida da consulta: não altera o modelo
    MEASURE Vendas[Total de Vendas 1S] =
        CALCULATE (
            SUM ( Vendas[Valor Venda] ),
            DATESBETWEEN ( 'Calendário'[Data], vDataInicio, vDataFim )
        )

EVALUATE
    SUMMARIZECOLUMNS (
        Produto[Categoria],
        "Total de Vendas 1S", [Total de Vendas 1S]
    )
ORDER BY
    Produto[Categoria] ASC
START AT "Eletrônicos"    // começa a lista nesta categoria
  • DEFINE aceita MEASURE, VAR e FUNCTION. Só existe um DEFINE por consulta, antes do primeiro EVALUATE.
  • EVALUATE pode aparecer várias vezes. Cada um devolve uma tabela, e o seletor Resultado alterna entre elas.
  • ORDER BY ordena o resultado. A propriedade Classificar por coluna do modelo não vale aqui: para ordenar Mês pelo número do mês, inclua a coluna do número na consulta e use-a no ORDER BY.
  • START AT traz um valor constante para cada coluna do ORDER BY, na mesma ordem e com o mesmo tipo. Texto em coluna numérica dá erro.

⚠️ DEFINE TABLE e DEFINE COLUMN existem na sintaxe, mas a Microsoft avisa que são "para uso interno" e podem dar erro em tempo de execução. Para tabela temporária, use VAR com expressão de tabela (seção 7).

4. EVALUATE: tudo que devolve tabela

// Tabela inteira do modelo
EVALUATE Produto

// Valores distintos de uma coluna
EVALUATE VALUES ( Produto[Categoria] )

// Um valor escalar vira tabela entre chaves
EVALUATE { [Total de Vendas] }

// Uma linha com várias medidas
EVALUATE
    ROW (
        "Total de Vendas", [Total de Vendas],
        "Ticket Médio", [Ticket Médio]
    )

// Top 5 produtos por venda
EVALUATE
    TOPN (
        5,
        SUMMARIZECOLUMNS ( Produto[Produto], "Vendas", [Total de Vendas] ),
        [Vendas], DESC
    )
ORDER BY [Vendas] DESC

💡 TOPN escolhe as linhas pela ordem do próprio argumento. O ORDER BY só ordena o que o TOPN já devolveu.

5. DEFINE MEASURE: testar antes de publicar

A medida da consulta vive só durante a execução. Se já existir uma medida com o mesmo nome no modelo, a da consulta tem prioridade — sem alterar a do modelo.

DEFINE
    MEASURE Vendas[Ticket Médio] =
        DIVIDE ( SUM ( Vendas[Valor Venda] ), COUNTROWS ( Vendas ) )

    MEASURE Vendas[Margem Bruta %] =
        DIVIDE (
            SUM ( Vendas[Valor Venda] ) - SUM ( Vendas[Custo] ),
            SUM ( Vendas[Valor Venda] )
        )

    MEASURE Vendas[Status do Ticket] =
        IF ( [Ticket Médio] >= 1500, "✔️ Acima da meta", "⚠️ Abaixo da meta" )

EVALUATE
    SUMMARIZECOLUMNS (
        Vendedor[Nome do Vendedor],
        "Ticket Médio", [Ticket Médio],
        "Margem Bruta %", [Margem Bruta %],
        "Status", [Status do Ticket]
    )
ORDER BY [Ticket Médio] DESC

Para gravar no modelo:

  • CodeLens acima de cada MEASURE: Update model: Add new measure (medida nova) ou Update model: Overwrite measure (fórmula diferente da do modelo).
  • Botão Update model with changes: grava todas de uma vez.

💡 Para uma medida isolada, o padrão da casa é DEFINE MEASURE + EVALUATE ROW ( ... ).

6. DEFINE VAR: parâmetros da consulta

Variáveis do DEFINE valem para a consulta inteira, inclusive dentro das medidas definidas nela — diferente da VAR de uma medida, que é local à fórmula.

DEFINE
    VAR vAno = 2026
    VAR vMes = 4
    VAR vMeta = 50000
    VAR vTopN = 5

    MEASURE Vendas[Total de Vendas no Mês] =
        CALCULATE (
            SUM ( Vendas[Valor Venda] ),
            'Calendário'[Ano] = vAno,
            'Calendário'[Mês #] = vMes
        )

EVALUATE
    TOPN (
        vTopN,
        SUMMARIZECOLUMNS (
            Vendedor[Nome do Vendedor],
            "Vendas no Mês", [Total de Vendas no Mês],
            "Atingiu a Meta", IF ( [Total de Vendas no Mês] >= vMeta, "✔️", "❗" )
        ),
        [Vendas no Mês], DESC
    )
ORDER BY [Vendas no Mês] DESC

7. Tabela temporária com VAR

Uma VAR pode guardar uma tabela. Exemplo: metas digitadas na consulta, cruzadas com a medida [Total de Vendas] do modelo para cada vendedor.

DEFINE
    VAR vMetas =
        DATATABLE (
            "Código do Vendedor", STRING,
            "Meta 2º Tri", DOUBLE,
            {
                { "V-01", 45000 },
                { "V-02", 38000 },
                { "V-03", 52000 },
                { "V-04", 41000 }
            }
        )

    // SELECTCOLUMNS com expressão quebra a linhagem da coluna do modelo.
    // Sem isso, NATURALLEFTOUTERJOIN não reconhece a coluna em comum.
    VAR vVendas =
        SELECTCOLUMNS (
            SUMMARIZECOLUMNS (
                Vendedor[Código do Vendedor],
                "Venda Realizada", [Total de Vendas]
            ),
            "Código do Vendedor", Vendedor[Código do Vendedor] & "",
            "Venda Realizada", [Venda Realizada]
        )

EVALUATE
    ADDCOLUMNS (
        NATURALLEFTOUTERJOIN ( vVendas, vMetas ),
        "% da Meta", DIVIDE ( [Venda Realizada], [Meta 2º Tri] )
    )
ORDER BY [% da Meta] DESC

⚠️ NATURALLEFTOUTERJOIN só junta colunas com mesmo nome, mesmo tipo e mesma linhagem. Coluna do modelo e coluna de DATATABLE não têm a mesma linhagem, por isso a conversão com & "" no exemplo.

8. DEFINE FUNCTION: funções definidas pelo usuário

As funções DAX definidas pelo usuário (UDF) estão disponíveis para todos (GA) desde junho/2026. Na consulta, você define, testa e grava no modelo como faz com medida.

DEFINE
    /// Formata uma variação percentual com seta: ▲ 12,5% / ▼ 3,0%.
    /// Retorna "—" quando o valor é BLANK.
    FUNCTION FormatarVariacao = ( pValor : SCALAR NUMERIC ) =>
        IF (
            ISBLANK ( pValor ),
            "—",
            IF ( pValor >= 0, "▲ ", "▼ " ) & FORMAT ( ABS ( pValor ), "0.0%" )
        )

EVALUATE
    ROW (
        "Alta", FormatarVariacao ( 0.125 ),
        "Queda", FormatarVariacao ( -0.03 ),
        "Sem dado", FormatarVariacao ( BLANK () )
    )

Depois de testar, grave no modelo com Update model with changes, como na medida.

9. Consultas rápidas e ações rápidas

Clique com o botão direito num objeto do painel Dados › Consultas rápidas. A consulta abre numa aba nova e já roda.

ObjetoConsulta rápidaO que gera
Qualquer lugarDefine all measures in the modelTodas as medidas num DEFINE (até 500 medidas)
Qualquer lugarDefine new measureUm bloco DEFINE MEASURE vazio
TabelaShow top 100 rowsSELECTCOLUMNS com as 100 primeiras linhas e ORDER BY
Tabela / colunaShow column statisticsMínimo, máximo, média, contagem etc.
ColunaShow data previewDISTINCT dos valores
MedidaEvaluateSUMMARIZECOLUMNS pronto para você incluir colunas de agrupamento
MedidaDefine and evaluateA fórmula da medida num DEFINE, pronta para editar
MedidaDefine with references and evaluateA medida e todas as medidas que ela referencia

Ação rápida (lâmpada): num EVALUATE sem DEFINE, clique na medida e escolha Define ou Define with references.

Fluxo completo para editar uma medida: Consultas rápidas › Evaluate → lâmpada › Define → edite e rode → CodeLens Overwrite measure.

Consulta de um visual: no modo Relatório, Otimizar › Performance Analyzer › Iniciar gravação › Atualizar visuais, expanda o visual e escolha Run in DAX query view. Serve para entender por que um visual mostra um valor inesperado.

10. Documentar o modelo com INFO.VIEW

As funções INFO.VIEW.* devolvem os metadados do modelo como tabela. Diferente das INFO.*, elas também funcionam em tabela calculada, coluna e medida.

// Inventário das tabelas
EVALUATE
    SELECTCOLUMNS (
        INFO.VIEW.TABLES (),
        "Tabela", [Name],
        "Armazenamento", [StorageMode],
        "Oculta", [IsHidden],
        "Descrição", [Description]
    )
ORDER BY [Tabela]

// Dicionário de medidas
EVALUATE
    SELECTCOLUMNS (
        INFO.VIEW.MEASURES (),
        "Medida", [Name],
        "Tabela", [Table],
        "Pasta", [DisplayFolder],
        "Descrição", [Description],
        "Fórmula", [Expression],
        "Formato", [FormatString],
        "Oculta", [IsHidden]
    )
ORDER BY [Tabela], [Pasta], [Medida]

⚠️ A coluna [Expression] só aparece para quem tem permissão de escrita no modelo e não aparece em conexão dinâmica. As demais colunas aparecem para todos.

11. Descrever a medida com ///

Escreva a descrição em linhas /// logo acima do MEASURE e rode Update model with changes. A descrição vai para a propriedade Description da medida.

DEFINE
    /// Soma o valor líquido das vendas.
    /// Exclui pedidos cancelados e devoluções.
    /// Retorna BLANK() quando não há vendas no período filtrado.
    /// Usada nos KPIs comerciais e financeiros.
    MEASURE Vendas[Total de Vendas Líquidas] =
        SUM ( Vendas[Valor Líquido] )

EVALUATE
    ROW ( "Total de Vendas Líquidas", [Total de Vendas Líquidas] )
  • Onde aparece: no tooltip da medida na DAX Query View, no Model Explorer e no painel Dados. As consultas rápidas Define… trazem a descrição de volta como ///.
  • O que escrever: o que a medida calcula, regras de negócio, exceções, quando retorna BLANK() e onde é usada. Pense no próximo desenvolvedor e no Copilot.
  • O que evitar: repetir a fórmula na descrição, texto genérico ("Calcula vendas") e descrição desatualizada.

12. Depurar uma medida em etapas

Quebre a medida em medidas intermediárias e veja em qual coluna o valor começa a divergir do esperado.

DEFINE
    MEASURE Vendas[Total de Vendas AV] = SUM ( Vendas[Valor Venda] )
    MEASURE Vendas[Total de Vendas AV YTD] =
        TOTALYTD ( [Total de Vendas AV], 'Calendário'[Data] )
    MEASURE Vendas[Total de Vendas AA YTD] =
        CALCULATE ( [Total de Vendas AV YTD], SAMEPERIODLASTYEAR ( 'Calendário'[Data] ) )
    MEASURE Vendas[Δ% Total de Vendas YTD] =
        DIVIDE ( [Total de Vendas AV YTD] - [Total de Vendas AA YTD], [Total de Vendas AA YTD] )

EVALUATE
    SUMMARIZECOLUMNS (
        'Calendário'[Ano],
        "AV", [Total de Vendas AV],
        "AV YTD", [Total de Vendas AV YTD],
        "AA YTD", [Total de Vendas AA YTD],
        "Δ% YTD", [Δ% Total de Vendas YTD]
    )
ORDER BY 'Calendário'[Ano]

Erro na grade de resultados: a mensagem começa com a posição, por exemplo Query (4, 23) = linha 4, caractere 23. O botão de copiar leva o erro para a área de transferência.

13. Grade de resultados e limites

  • Ordenar e filtrar direto no cabeçalho da grade (GA em junho/2026). Vale só para as linhas já devolvidas: se o resultado foi cortado, ponha o ORDER BY e o filtro na própria consulta.
  • Copiar leva a grade inteira, com cabeçalho, separada por tabulação.
  • A grade ignora o formato da coluna ou medida (moeda, milhar etc.).
LimiteValor
Dados por consulta15 MB (a linha em andamento termina, as seguintes são cortadas)
Valores por consulta1.000.000 (ex.: 20 colunas → no máximo 50.000 linhas)
Linhas por consulta na web99.999
Define all measuresIndisponível acima de 500 medidas
EditorFica lento acima de ~500 linhas

14. Referência rápida

CláusulaSintaxeObrigatória
DEFINEDEFINE seguido de uma ou mais definiçõesNão (um por consulta)
MEASUREMEASURE Tabela[Medida] = <expressão escalar>Não
VARVAR vNome = <expressão escalar ou de tabela>Não
FUNCTIONFUNCTION Nome = ( pParam : Tipo ) => <corpo>Não
EVALUATEEVALUATE <expressão de tabela>Sim (um ou mais)
ORDER BYORDER BY <expressão> [ASC | DESC], ...Não
START ATSTART AT <valor>, ... (um por coluna do ORDER BY)Não

15. Atalhos

AtalhoAção
Shift + Alt + FFormatar a consulta
Ctrl + /Comentar ou remover o comentário
Ctrl + F / Ctrl + HLocalizar / Localizar e substituir
Ctrl + Alt + PPaleta de comandos (mostra os demais atalhos)
Ctrl + IAbrir o Copilot
Enter ou TabAceitar a sugestão do IntelliSense
EscFechar sugestões

Para executar, use o botão Executar (roda a consulta inteira ou só as linhas selecionadas). A lista completa está em Atalhos do Power BI.

Fontes

Cookbook: SQL → DAX Query View (12 padrões)

Quem vem do SQL reconhece SELECT, WHERE, GROUP BY e ORDER BY, mas a sintaxe da consulta DAX é outra. Os 12 padrões abaixo mostram a tradução lado a lado.

Duas camadas, dois nomes. O SQL consulta a camada física (TabFatVendaCamiseta, TabDimCalendario, colunas em PascalCase). O DAX consulta o modelo semântico, onde as mesmas tabelas aparecem com nome de negócio ('Vendas Camisetas', 'Calendário') — veja o Padrão de Nomenclatura.

SQLDAX
SELECT * FROM tEVALUATE t
WHERECALCULATETABLE, FILTER ou argumento de filtro do SUMMARIZECOLUMNS
GROUP BY + agregaçãoSUMMARIZECOLUMNS com medidas
JOINNão precisa: os relacionamentos do modelo fazem o papel
SELECT DISTINCTVALUES, DISTINCT ou SUMMARIZE só com colunas
TOP nTOPN
ORDER BYORDER BY
OFFSET / paginaçãoSTART AT

1. Consultas simples

1 — SELECT *:

SELECT * FROM dbo.TabFatVendaCamiseta;
EVALUATE
    'Vendas Camisetas'

2, 3 e 4 — ORDER BY (uma coluna, várias colunas, DESC):

SELECT * FROM dbo.TabFatVendaCamiseta
ORDER BY NumeroNotaFiscal ASC, ItemNotaFiscal DESC;
EVALUATE
    'Vendas Camisetas'
ORDER BY
    'Vendas Camisetas'[Número da Nota Fiscal] ASC,
    'Vendas Camisetas'[Item da Nota Fiscal] DESC

6 — WHERE com AND e IN:

SELECT * FROM dbo.TabFatVendaCamiseta
WHERE SiglaTamanho = 'EG' AND CodigoModelagem IN ('M', 'U');
EVALUATE
    CALCULATETABLE (
        'Vendas Camisetas',
        'Vendas Camisetas'[Sigla do Tamanho] = "EG",
        'Vendas Camisetas'[Código da Modelagem] IN { "M", "U" }
    )

💡 Cada condição vira um argumento de filtro. Filtrar coluna é mais leve que FILTER sobre a tabela inteira.

8 — TOP N:

SELECT TOP 100 * FROM dbo.TabFatVendaCamiseta ORDER BY ValorFaturado DESC;
EVALUATE
    TOPN ( 100, 'Vendas Camisetas', 'Vendas Camisetas'[Valor Faturado], DESC )
ORDER BY 'Vendas Camisetas'[Valor Faturado] DESC

💡 TOPN escolhe as linhas pela ordem do próprio argumento. O ORDER BY só ordena o resultado — sem ele, a saída não tem ordem garantida.

9 — Paginação com START AT:

SELECT * FROM dbo.TabFatVendaCamiseta
WHERE NumeroNotaFiscal >= '008080'
ORDER BY NumeroNotaFiscal;
EVALUATE
    'Vendas Camisetas'
ORDER BY 'Vendas Camisetas'[Número da Nota Fiscal]
START AT "008080"

⚠️ START AT traz um valor constante para cada coluna do ORDER BY, na mesma ordem e com o mesmo tipo.

2. Agrupamento com medidas

5 — GROUP BY com JOIN:

SELECT c.Ano, c.NumeroMes,
       SUM(f.QuantidadeCamiseta) AS Camisetas,
       SUM(f.ValorFaturado)      AS Faturado
FROM dbo.TabFatVendaCamiseta AS f
JOIN dbo.TabDimCalendario    AS c ON f.DataVenda = c.Data
GROUP BY c.Ano, c.NumeroMes
ORDER BY c.Ano, c.NumeroMes;
EVALUATE
    SUMMARIZECOLUMNS (
        'Calendário'[Ano],
        'Calendário'[Mês #],
        "Camisetas", [Total de Camisetas],
        "Faturado", [Total Faturado]
    )
ORDER BY
    'Calendário'[Ano],
    'Calendário'[Mês #]

💡 O JOIN some: o relacionamento 'Vendas Camisetas'[Data da Venda] → 'Calendário'[Data] já existe no modelo.

⚠️ Classificar por coluna não vale na consulta. Para ordenar pelo nome do mês, inclua 'Calendário'[Mês #] e use-o no ORDER BY.

7 — GROUP BY com WHERE:

SELECT c.Ano, c.NumeroMes,
       SUM(f.QuantidadeCamiseta) AS [Camisetas EG, M&U],
       SUM(f.ValorFaturado)      AS [Faturado EG, M&U]
FROM dbo.TabFatVendaCamiseta AS f
JOIN dbo.TabDimCalendario    AS c ON f.DataVenda = c.Data
WHERE f.SiglaTamanho = 'EG' AND f.CodigoModelagem IN ('M', 'U')
GROUP BY c.Ano, c.NumeroMes
ORDER BY c.Ano, c.NumeroMes;
EVALUATE
    SUMMARIZECOLUMNS (
        'Calendário'[Ano],
        'Calendário'[Mês #],
        TREATAS ( { "EG" }, 'Vendas Camisetas'[Sigla do Tamanho] ),
        TREATAS ( { "M", "U" }, 'Vendas Camisetas'[Código da Modelagem] ),
        "Camisetas EG, M&U", [Total de Camisetas],
        "Faturado EG, M&U", [Total Faturado]
    )
ORDER BY
    'Calendário'[Ano],
    'Calendário'[Mês #]

💡 Os filtros do SUMMARIZECOLUMNS vêm antes das medidas. TREATAS filtra só a coluna; FILTER ( 'Vendas Camisetas', ... ) materializaria a tabela fato inteira.

10 — SELECT DISTINCT:

SELECT DISTINCT NomeEstampa FROM dbo.TabFatVendaCamiseta;
EVALUATE
    VALUES ( 'Vendas Camisetas'[Nome da Estampa] )

SUMMARIZE ( 'Vendas Camisetas', 'Vendas Camisetas'[Nome da Estampa] ) dá o mesmo resultado e serve para combinar várias colunas.

11 — GROUP BY por uma coluna:

SELECT NomeEstampa,
       SUM(QuantidadeCamiseta) AS Camisetas,
       SUM(ValorFaturado)      AS Faturado
FROM dbo.TabFatVendaCamiseta
GROUP BY NomeEstampa
ORDER BY NomeEstampa;
EVALUATE
    SUMMARIZECOLUMNS (
        'Vendas Camisetas'[Nome da Estampa],
        "Camisetas", [Total de Camisetas],
        "Faturado", [Total Faturado]
    )
ORDER BY 'Vendas Camisetas'[Nome da Estampa]

12 — GROUP BY com filtro:

SELECT NomeEstampa,
       SUM(QuantidadeCamiseta) AS [Camisetas EG, M&U],
       SUM(ValorFaturado)      AS [Faturado EG, M&U]
FROM dbo.TabFatVendaCamiseta
WHERE SiglaTamanho = 'EG' AND CodigoModelagem IN ('M', 'U')
GROUP BY NomeEstampa
ORDER BY NomeEstampa;
EVALUATE
    SUMMARIZECOLUMNS (
        'Vendas Camisetas'[Nome da Estampa],
        TREATAS ( { "EG" }, 'Vendas Camisetas'[Sigla do Tamanho] ),
        TREATAS ( { "M", "U" }, 'Vendas Camisetas'[Código da Modelagem] ),
        "Camisetas EG, M&U", [Total de Camisetas],
        "Faturado EG, M&U", [Total Faturado]
    )
ORDER BY 'Vendas Camisetas'[Nome da Estampa]

3. SUMMARIZE ou SUMMARIZECOLUMNS?

Padrão da casa: SUMMARIZE só para agrupar colunas (como o SELECT DISTINCT). Para calcular valores por grupo, SUMMARIZECOLUMNS com medidas, como nas consultas 5, 7, 11 e 12. É a função que a consulta rápida Evaluate gera.

// Evite: medida calculada dentro do SUMMARIZE
EVALUATE
    SUMMARIZE (
        'Vendas Camisetas',
        'Vendas Camisetas'[Nome da Estampa],
        "Faturado", [Total Faturado]
    )

⚠️ Diferença de resultado: SUMMARIZECOLUMNS remove as linhas em que todas as expressões dão BLANK. SUMMARIZE mantém o grupo mesmo sem valor. Se precisar da linha vazia, envolva todas as expressões em IGNORE ou use ADDCOLUMNS ( VALUES ( ... ), ... ).

Fontes

Cores da Barra de Fórmulas DAX

Cores do realce de sintaxe da barra de fórmulas do Power BI Desktop (tema claro), medidas por amostragem de pixel em capturas de tela reais. Use para que código DAX em slides, apostilas e documentação fique com a cara do Desktop.

ElementoCorExemplo
Comentário#008000// Medida didática
Palavra-chave (VAR, RETURN)#0000FFVAR, RETURN
Função#3165BBCALCULATE, SUM, IF, SWITCH, DIVIDE
Variável#008080vTotalVendas
Texto entre aspas#A31515"Crescimento forte"
Número#0986582025, 0.15
Tabela e coluna#001080Vendas[Valor Venda]
Operador#000000=, <>, >=, &, &&

💡 Função ≠ palavra-chave. VAR e RETURN são palavras reservadas da linguagem e usam azul puro (#0000FF). IF e SWITCH parecem estrutura de controle, mas são funções e usam o azul das funções (#3165BB).

⚠️ A Microsoft não publica essa paleta. Os valores podem mudar com atualizações do Desktop ou com o tema escuro.