Eventos
Junte-se a nós na FabCon Vegas
31 de mar., 23 - 2 de abr., 23
O melhor evento liderado pela comunidade Microsoft Fabric, Power BI, SQL e AI. 31 de março a 2 de abril de 2025.
Registre-se hoje mesmoNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
A linguagem DAX (Data Analysis Expression) usa operadores para criar expressões que comparam valores, executam cálculos aritméticos ou trabalham com cadeias de caracteres.
Há quatro tipos diferentes de operadores de cálculo: aritmético, comparação, concatenação de texto e lógico.
Para executar operações matemáticas básicas, como adição, subtração ou multiplicação; combinar números; e produzir resultados numéricos, use os operadores aritméticos a seguir.
Operador aritmético | Significado | Exemplo |
---|---|---|
+ (sinal de adição) | Adição | 3+3 |
– (sinal de subtração) | Subtração ou sinal | 3–1–1 |
* (asterisco) | Multiplicação | 3*3 |
/ (barra) | Divisão | 3/3 |
^ (sinal de interpolação) | Exponenciação | 16^4 |
Observação
O sinal de adição pode funcionar como um operador binário e como um operador unário. Um operador binário requer números em ambos os lados do operador e executa a adição. Quando você usa valores em uma fórmula DAX em ambos os lados do operador binário, o DAX tentará converter os valores em tipos de dados numéricos, se eles ainda não forem números. Por outro lado, o operador unário pode ser aplicado a qualquer tipo de argumento. O símbolo de adição não afeta o tipo nem o valor e é simplesmente ignorado, enquanto o operador de subtração cria um valor negativo, se aplicado a um valor numérico.
Você pode comparar dois valores com os operadores a seguir. Quando dois valores são comparados usando estes operadores, o resultado é um valor lógico, TRUE ou FALSE.
Operador de comparação | Significado | Exemplo |
---|---|---|
= | Igual a | [Região] = "EUA" |
== | Estrito igual a | [Região] == "EUA" |
> | Maior que | [Data de vendas] > "Jan 2009" |
< | Menor que | [Data de vendas] < "1º Jan 2009" |
>= | Maior ou igual a | [Quantidade] >= 20000 |
<= | Menor ou igual a | [Quantidade] <= 100 |
<> | Diferente de | [Região] <> "EUA" |
Todos os operadores de comparação, exceto ==, tratam BLANK como igual ao número 0, cadeia de caracteres vazia "", DATE(1899, 12, 30) ou FALSE. Como resultado, [Column] = 0 será true quando o valor de [Column] for 0 ou BLANK. Por outro lado, [Column] == 0 é true somente quando o valor de [Column] é 0.
Use o E comercial (&) para unir ou concatenar duas ou mais cadeias de texto para produzir uma só parte do texto.
Operador de texto | Significado | Exemplo |
---|---|---|
& (e comercial) | Conecta ou concatena dois valores para produzir um valor de texto contínuo | [Region] & ", " & [City] |
Use operadores lógicos (&&) e (||) para combinar expressões para produzir um só resultado.
Operador de texto | Significado | Exemplos |
---|---|---|
&& (E comercial duplo) | Cria uma condição AND entre duas expressões que têm um resultado booliano. Se ambas as expressões retornarem TRUE, a combinação das expressões também retornará TRUE; caso contrário, a combinação retornará FALSE. | ([Region] = "France") && ([BikeBuyer] = "yes")) |
|| (barra vertical dupla) | Cria uma condição OR entre duas expressões lógicas. Se uma das expressões retornar TRUE, o resultado será TRUE; somente quando as duas expressões são FALSE o resultado é FALSE. | (([Region] = "France") || ([BikeBuyer] = "yes")) |
IN | Cria uma condição OR lógica entre cada linha sendo comparada a uma tabela. Observação: a sintaxe do construtor de tabela usa chaves. | 'Produto'[Cor] IN { "Vermelho", "Azul", "Preto" } |
Em alguns casos, a ordem na qual o cálculo é executado pode afetar o valor retornado. Portanto, é importante entender como o pedido é determinado e como você pode alterar a ordem para obter os resultados desejados.
Uma expressão avalia os operadores e valores em uma ordem específica. Todas as expressões sempre começam com um sinal de igual (=). O sinal de igual indica que os caracteres seguintes constituem uma expressão.
Após o sinal de igual, estão os elementos a serem calculados (os operandos), que são separados por operadores de cálculo. As expressões sempre são lidas da esquerda para a direita, mas a ordem na qual os elementos são agrupados pode ser controlada em algum grau usando parênteses.
Se você combinar vários operadores em uma única fórmula, as operações serão ordenadas conforme a tabela a seguir. Se os operadores tiverem um valor de precedência igual, eles serão ordenados da esquerda para a direita. Por exemplo, se uma expressão contiver tanto um operador de multiplicação quanto um de divisão, eles serão avaliados na ordem em que aparecem na expressão, da esquerda para a direita.
Operador | Descrição |
---|---|
^ | Exponenciação |
– | Sinal (como em –1) |
* e / | Multiplicação e divisão |
+ e – | Adição e subtração |
& | Conecta duas cadeias de caracteres de texto (concatenação) |
=,==,<,>,<=,>=,<>,IN | Comparação |
NOT | NOT (operador unário) |
Para alterar a ordem de avaliação, você deve incluir entre parênteses a parte da fórmula que deve ser calculada primeiro. Por exemplo, a fórmula a seguir produz 11 porque a multiplicação é calculada antes da adição. A fórmula multiplica 2 por 3 e, em seguida, adiciona 5 ao resultado.
=5+2*3
Por outro lado, se você usar parênteses para alterar a sintaxe, a ordem será alterada para que 5 e 2 sejam adicionados juntos e o resultado seja multiplicado por 3 para produzir 21.
=(5+2)*3
No exemplo a seguir, os parênteses em torno da primeira parte da fórmula forçam o cálculo a avaliar a expressão (3 + 0.25)
primeiro e, em seguida, dividir o resultado pelo resultado da expressão (3 - 0.25)
.
=(3 + 0.25)/(3 - 0.25)
No exemplo a seguir, o operador de exponenciação é aplicado primeiro, de acordo com as regras de precedência para operadores e, em seguida, o operador de sinalização é aplicado. O resultado dessa expressão é -4.
=-2^2
Para garantir que o operador de sinalização seja aplicado primeiro ao valor numérico, você pode usar parênteses para controlar operadores, conforme mostrado no exemplo a seguir. O resultado dessa expressão é 4.
= (-2)^2
O DAX manipula e compara facilmente vários tipos de dados, assim como o Microsoft Excel. No entanto, o mecanismo de computação subjacente é baseado no SQL Server Analysis Services e fornece recursos avançados adicionais de um armazenamento de dados relacional, incluindo suporte mais avançado para tipos de data e hora. Portanto, em alguns casos, os resultados de cálculos ou o comportamento das funções podem não ser os mesmos do Excel. Além disso, o DAX dá suporte a mais tipos de dados do que o Excel. Esta seção descreve as principais diferenças.
Em geral, os dois operandos nos lados esquerdo e direito de qualquer operador devem ser do mesmo tipo de dados. No entanto, se os tipos de dados forem diferentes, o DAX os converterá em um tipo de dados comum para aplicar o operador em alguns casos:
Por exemplo, suponha que você tenha dois números que deseja combinar. Um número resulta de uma fórmula, como =[Price] * .20
, e o resultado pode conter muitas casas decimais. O outro número é um inteiro que foi fornecido como um valor de cadeia de caracteres.
Nesse caso, o DAX converterá os números em números reais em um formato numérico, usando o maior formato numérico que pode armazenar os dois tipos de números. Em seguida, o DAX aplicará a multiplicação.
Dependendo da combinação de tipo de dados, a coerção de tipo poderá não ser aplicada a operações de comparação. Para ver uma lista de tipos de dados compatíveis com o DAX, confira Tipos de dados compatíveis em modelos tabulares e Tipos de dados no Power BI Desktop.
Inteiro, Número Real, Moeda, Data/Hora e Em Branco são considerados numéricos para fins de comparação. Em branco é avaliado como zero ao executar uma comparação. As combinações de tipo de dados a seguir têm suporte para operações de comparação.
Tipo de Dados do Lado Esquerdo | Tipo de Dados do Lado Direito |
---|---|
Numérica | Numérica |
Booliano | Boolean |
String | Cadeia de caracteres |
Outras comparações mistas de tipo de dados retornarão um erro. Por exemplo, uma fórmula como ="1" > 0 retorna um erro informando que operações de comparação DAX não dão suporte a valores de comparação do tipo texto com valores do tipo inteiro.
Tipos de Dados usados no DAX | Tipos de Dados usados no Excel |
---|---|
Números (I8, R8) | Números (R8) |
Cadeia de caracteres | Cadeia de caracteres |
Booliano | Booliano |
DateTime | Variante |
Moeda | Moeda |
A ordem de precedência das operações em fórmulas DAX é basicamente a mesma usada pelo Microsoft Excel, mas não há suporte para alguns operadores do Excel, como a porcentagem. Além disso, não há suporte para intervalos.
Portanto, sempre que você copiar e colar fórmulas do Excel, examine-as com cuidado, pois alguns operadores ou elementos nas fórmulas podem não ser válidos. Quando há alguma dúvida sobre a ordem na qual as operações são executadas, recomenda-se usar parênteses para controlar a ordem das operações e remover qualquer ambiguidade sobre o resultado.
Eventos
Junte-se a nós na FabCon Vegas
31 de mar., 23 - 2 de abr., 23
O melhor evento liderado pela comunidade Microsoft Fabric, Power BI, SQL e AI. 31 de março a 2 de abril de 2025.
Registre-se hoje mesmoTreinamento
Módulo
Escrever fórmulas DAX para modelos do Power BI Desktop - Training
Neste módulo, você aprenderá a escrever fórmulas DAX para criar tabelas calculadas, colunas calculadas e medidas, que são tipos diferentes de cálculos de modelo. Além disso, você aprenderá a escrever e formatar fórmulas DAX, que consistem em expressões que usam funções, operadores, referências a objetos de modelo, constantes e variáveis.
Certificação
Microsoft Certified: Power BI Data Analyst Associate - Certifications
Demonstre métodos e boas práticas que se alinhem aos requisitos técnicos e comerciais para modelagem, visualização e análise de dados com o Microsoft Power BI.