Especificação da sintaxe DAX para o PowerPivot
O DAX (Data Analysis Expressions) é uma biblioteca de funções, operadores e constantes que podem ser combinados para criar fórmulas e expressões no PowerPivot para Excel. Esta seção fornece detalhes sobre a sintaxe e os requisitos da linguagem DAX.
Para obter exemplos dos tipos de fórmulas que você pode criar, e de como você pode usar expressões para filtrar tabelas e alterar o contexto, consulte Visão geral da linguagem DAX (Data Analysis Expressions). Este tópico contém as seguintes seções:
Requisitos de sintaxe
Requisitos de nomenclatura
Funções
Operadores e constantes
Tipos de dados
Requisitos de sintaxe
As fórmulas DAX são bem parecidas com as fórmulas digitadas em tabelas do Excel, mas há algumas diferenças essenciais.
No Microsoft Excel, você pode referenciar células ou matrizes individuais; no PowerPivot, você só pode referenciar tabelas ou colunas de dados completas. Porém, se precisar trabalhar com apenas parte de uma coluna, ou com valores exclusivos de uma coluna, você poderá obter comportamento semelhante usando funções DAX que filtram a coluna ou retornam valores exclusivos.
As fórmulas DAX não dão suporte a exatamente os mesmos tipos de dados que o Microsoft Excel. Em geral, a DAX fornece mais tipos de dados que o Excel e, ao importar, executa conversões de tipos implícitas em alguns dados. Para obter mais informações, consulte Data Types in DAX.
Uma fórmula DAX sempre inicia com um sinal de igual (=). Depois desse sinal, você pode fornecer qualquer expressão que seja avaliada como um escalar, ou uma expressão que possa ser convertida em um escalar. Entre elas estão as seguintes:
Uma constante escalar ou uma expressão que use um operador escalar (+,-,*,/,>=,...&&, ...)
Referências a colunas ou tabelas. A linguagem DAX sempre usa tabelas e colunas como entradas para funções, e nunca uma matriz ou um conjunto arbitrário de valores.
Operadores, constantes e valores fornecidos como parte de uma expressão.
O resultado de uma função e seus argumentos obrigatórios. Algumas funções DAX retornam uma tabela em vez de um escalar e devem ser encapsuladas em uma função que avalie a tabela e retorne um escalar. A menos que seja uma única tabela de colunas, linhas, a tabela será tratada como um valor escalar.
A maioria das funções PowerPivot requerem um ou mais argumentos que podem incluir tabelas, colunas, expressões e valores. Porém, algumas funções, como PI, não requerem argumentos, mas sempre exigem parênteses para indicar o argumento nulo. Por exemplo, você sempre deve digitar PI (), e não PI. Você também pode aninhar funções dentro de outras funções.
Expressões. Uma expressão pode conter qualquer um destes itens ou todos eles: operadores, constantes ou referências a colunas.
Por exemplo, todas as fórmulas a seguir são válidas.
Fórmula |
Resultado |
---|---|
=3 |
3 |
="Sales" |
Sales |
='Sales'[Amount] |
Se usar esta fórmula na tabela Sales, você obterá o valor da coluna Amount na tabela Sales referente à linha atual. |
=(0.03 *[Amount]) =0.03 * [Amount] |
Três por cento do valor na coluna Amount da tabela atual. Embora essa fórmula possa ser usada para calcular uma porcentagem, o resultado não será mostrado como uma porcentagem, a menos que você aplique formatação na tabela. |
=PI() |
O valor da constante pi. |
Observação |
---|
As fórmulas podem se comportar de maneira diferente, dependendo de serem usadas em uma coluna calculada ou em uma medida em uma Tabela Dinâmica. Você deve estar sempre atento ao contexto e à maneira como os dados usados na fórmula estão relacionados a outros que possam ser usados no cálculo. Para obter mais informações, consulte Contexto em fórmulas DAX. |
Requisitos de nomenclatura
Uma janela do PowerPivot pode conter várias tabelas, cada uma em sua própria guia. Juntas, as tabelas e suas colunas incluem um banco de dados armazenado no mecanismo analítico na memória xVelocity (VertiPaq) do PowerPivot. Dentro desse banco de dados, todas as tabelas devem ter nomes exclusivos. Os nomes de colunas também devem ser exclusivos em cada tabela. Todos os nomes de objeto não diferenciam maiúsculas e minúsculas; por exemplo, os nomes SALES e Sales representariam a mesma tabela.
Cada coluna e medida adicionada a um banco de dados PowerPivot existente deve pertencer a uma tabela específica. Você especifica a tabela que contém a coluna implicitamente, quando cria uma coluna calculada dentro de uma tabela, ou explicitamente, quando cria uma medida e especifica o nome da tabela onde a definição de medida deve ser armazenada.
Ao usar uma tabela ou coluna como entrada para uma função, geralmente você deve qualificar o nome da coluna. O nome totalmente qualificado de uma coluna é o nome da tabela, seguido do nome de coluna entre colchetes, por exemplo, 'U.S. Sales'[Products]. Um nome totalmente qualificado sempre será obrigatório quando você fizer referência a uma coluna nos seguintes contextos:
Como um argumento para a função, VALUES
Como um argumento para as funções, ALL ou ALLEXCEPT
Em um argumento de filtro para as funções, CALCULATE ou CALCULATETABLE
Como um argumento para a função, RELATEDTABLE
Como um argumento para qualquer função de inteligência de tempo
Um nome de coluna não qualificado é apenas o nome da coluna, entre colchetes: por exemplo, [Sales Amount]. Por exemplo, ao fazer referência um valor escalar na mesma linha da tabela atual, você pode usar o nome da coluna não qualificado.
Se o nome de uma tabela contiver espaços, palavras-chave reservadas ou caracteres não permitidos, coloque o nome da tabela entre aspas simples. Você também deverá colocar os nomes de tabelas entre aspas se esses nomes contiverem caracteres fora do intervalo de caracteres alfanuméricos ANSI, quer a sua localidade tenha ou não suporte para o conjunto de caracteres. Por exemplo, se você abrir uma pasta de trabalho que contenha nomes de tabela escritos em caracteres Cirílicos, como ‘Таблица’, o nome de tabela deverá ser colocado entre aspas, embora não contenha espaços.
Observação |
---|
Para facilitar a digitação dos nomes totalmente qualificados de colunas, recomendamos usar o recurso AutoCompletar Fórmula no cliente. |
Tabelas
Os nomes de tabela serão obrigatórios sempre que a coluna for de uma tabela diferente da tabela atual. Os nomes de tabela devem ser exclusivos dentro do banco de dados.
Os nomes de tabela deverão ser colocados entre aspas simples se contiverem espaços, outros caracteres especiais ou qualquer outro caractere alfanumérico não inglês.
Medidas
Nomes de medida devem estar sempre entre colchetes.
Nomes de medida podem conter espaços.
Cada nome de medida deve ser exclusivo dentro de um banco de dados. Portanto, o nome de tabela é opcional na frente de um nome de medida ao referenciar uma medida existente. Porém, ao criar uma medida, você deve sempre especificar uma tabela onde a definição da medida será armazenada.
Colunas
Os nomes de coluna devem ser exclusivos no contexto de uma tabela; no entanto, várias tabelas podem ter colunas com os mesmos nomes (a diferenciação surge com o nome da tabela).
Em geral, as colunas podem ser referenciadas sem referenciar a tabela base a que pertencem, exceto quando talvez haja um conflito de nome a ser resolvido ou com determinadas funções que exijam nomes de coluna totalmente qualificados.
Palavras-chave reservadas
Se o nome usado em uma tabela for igual a uma palavra-chave reservada do Analysis Services, ocorrerá um erro e você deverá renomear a tabela. Contudo, você pode usar palavras-chave em nomes de objeto quando o nome de objeto está entre colchetes (para colunas) ou aspas (para tabelas).
Observação |
---|
Observe que as aspas podem ser representadas por vários caracteres diferentes, dependendo do aplicativo. Se você colar fórmulas de um documento externo ou de uma página da Web, não se esqueça de verificar o código ASCII do caractere usado para abrir e fechar aspas, para assegurar que elas sejam iguais. Caso contrário, o DAX talvez não consiga reconhecer os símbolos como aspas, tornando a referência inválida. |
Caracteres especiais
Os seguintes caracteres e tipos de caractere não são válidos nos nomes de tabelas, colunas ou medidas:
Espaços à esquerda ou à direita; a menos que os espaços estejam dentro de delimitadores de nome, colchetes ou apóstrofos simples.
Caracteres de controle
Os seguintes caracteres não são válidos nos nomes de objetos do PowerPivot:
.,;':/\*|?&%$!+=()[]{}<>
Exemplos de nomes de objeto
A seguinte tabela mostra exemplos de alguns nomes de objeto:
Tipos de objeto |
Exemplos |
Comentário |
Nome da tabela |
Sales |
Se o nome da tabela não contiver espaços ou outros caracteres especiais, o nome não precisará estar entre aspas. |
Nome da tabela |
‘Canada Sales’ |
Se o nome contiver espaços, tabulações ou outros caracteres especiais, coloque-o entre aspas simples. |
Nome de coluna totalmente qualificado |
Sales[Amount] |
O nome da tabela antecede o nome da coluna, e o nome da coluna fica entre em colchetes. |
Nome de medida totalmente qualificado |
Sales[Profit] |
O nome da tabela antecede o nome da medida, e o nome da medida fica entre em colchetes. Em determinados contextos, um nome totalmente qualificado sempre será obrigatório. |
Nome de coluna não qualificado |
[Amount] |
O nome não qualificado é apenas o nome da coluna entre colchetes. Os contextos em que é possível usar o nome não qualificado incluem fórmulas em uma coluna calculada dentro da mesma tabela ou em uma função de agregação que examina a mesma tabela. |
Coluna totalmente qualificada em tabela com espaços |
‘Canada Sales’[Qty] |
O nome da tabela contém espaços; portanto, ele deve estar entre aspas simples. |
Observação |
---|
Para facilitar a digitação dos nomes totalmente qualificados de colunas, recomendamos usar o recurso Preenchimento Automático durante a criação de fórmulas. Para obter mais informações, consulte Criar fórmulas para cálculos. |
Restrições diversas
A sintaxe necessária para cada função e o tipo de operação a ser executada variam muito de acordo com a função. Porém, em geral, estas regras se aplicam a todas as fórmulas e expressões:
Fórmulas DAX e expressões não podem modificar nem inserir valores individuais em tabelas.
Você não pode criar linhas calculadas usando DAX. Você só pode criar colunas e medidas calculadas.
Ao definir colunas calculadas, você pode aninhar funções em qualquer nível.
O DAX possui várias funções que retornam uma tabela. Em geral, você usa os valores retornados por essas funções como entrada para outras funções, o que exige uma tabela como entrada.
Funções no DAX
O DAX fornece os tipos de funções a seguir.
Operadores e constantes DAX
A tabela a seguir lista os operadores suportados por DAX. Em geral, operadores em DAX se comportam do mesmo modo que no Microsoft Excel, com algumas exceções secundárias. Para obter mais informações sobre a sintaxe de operadores individuais, consulte Referência de operador DAX do PowerPivot.
Tipo de operador |
Símbolo e uso |
---|---|
Operador de parênteses |
() ordem de precedência e agrupamento de argumentos |
Operadores aritméticos |
+ (adição) - (sinal de/ subtração) * (multiplicação) / (divisão) ^ (exponenciação) |
Operadores de comparação |
= (igual a) > (maior que) < (menor que) >= (maior que ou igual a) <= (menor que ou igual a) <> (diferente de) |
Operador de concatenação de texto |
& (concatenação) |
Operadores lógicos |
&& (e) || (ou) |
Tipos de dados no DAX
Você não precisa converter ou especificar o tipo de dados de uma coluna ou valor usado em uma fórmula DAX. Quando você usa dados em uma fórmula DAX, o DAX identifica automaticamente os tipos de dados em colunas referenciadas e entre os valores digitados, além de executar conversões implícitas em que é necessário para concluir a operação especificada.
Por exemplo, se você tentar adicionar um número a um valor de data, o PowerPivot irá interpretar a operação no contexto da função, assim como faz o Excel, e converter os números em um tipo de dados comum. Em seguida, ele apresentará o resultado no formato desejado, uma data.
No entanto, há algumas limitações quanto aos valores que podem ser convertidos com êxito. Se um valor ou uma coluna possui um tipo de dados que é incompatível com a operação atual, a DAX retorna um erro. Além disso, a DAX não fornece funções que o permitam explicitamente alterar ou converter o tipo de dados dos dados existentes que você importou para uma pasta de trabalho PowerPivot.
Importante |
---|
O PowerPivot não oferece suporte ao uso do tipo de dados de variante usado no Excel. Portanto, quando você carrega ou importa dados, é esperado que os dados em cada coluna geralmente sejam de um tipo de dados consistente. |
Algumas funções retornam valores escalares, inclusive cadeias de caracteres, enquanto outras funções trabalham com números, inteiros e reais, ou com datas e horas. O tipo de dados obrigatório para cada função é descrito na seção, Referência de função DAX.
Tabelas são um novo tipo de dados em PowerPivot. É possível usar tabelas que contenham várias linhas de colunas e dados como o argumento de uma função. Algumas funções também retornam tabelas, armazenadas na memória e que podem ser usadas como argumentos de outras funções.
Para obter mais informações sobre os diferentes tipos de dados numéricos e de data/hora, bem como detalhes sobre a manipulação de cadeias de caracteres nulas e vazias, consulte Data Types Supported in PowerPivot Workbooks.