Noções básicas dos tipos de cálculo DAX
Ao usar DAX (Data Analysis Expressions), você pode adicionar três tipos de cálculo ao seu modelo semântico:
- Tabelas calculadas
- Colunas calculadas
- Medidas
Observação
O DAX também pode ser usado para definir regras de RLS (segurança em nível de linha), que são expressões que impõem filtros a tabelas de modelo. No entanto, as regras não são consideradas cálculos de modelo, portanto, estão fora do escopo deste módulo. Para obter mais informações, confira RLS (segurança em nível de linha) com o Power BI.
Tabelas calculadas
Você pode escrever uma fórmula DAX para adicionar uma tabela calculada ao seu modelo. A fórmula pode duplicar ou transformar dados de modelo existentes ou criar uma série de dados para produzir uma nova tabela. Os dados calculados da tabela são sempre importados no modelo, aumentando o tamanho de armazenamento do modelo e estendendo o tempo de atualização dos dados.
Observação
Uma tabela calculada não pode se conectar a dados externos; você precisa usar o Power Query para realizar essa tarefa.
As tabelas calculadas podem ser úteis em vários cenários:
- Tabelas de datas
- Dimensões com função múltipla
- Análise de teste de hipóteses
Tabelas de datas
As tabelas de data são necessárias para aplicar filtros de tempo especiais conhecidos como inteligência de dados temporais. As funções de inteligência de dados temporais do DAX só funcionam corretamente quando uma tabela de datas é configurada. Quando os dados de origem não incluem uma tabela de datas, você pode criar uma como uma tabela calculada usando as funções CALENDAR ou CALENDARAUTO.
Dimensões com função múltipla
Quando duas tabelas de modelo têm vários relacionamentos, isso pode ser porque seu modelo possui uma dimensão com função múltipla. Por exemplo, se você tiver uma tabela chamada Sales que inclui duas colunas de data, OrderDateKey e ShipDateKey, ambas estarão relacionadas à coluna Date na tabela Date. Nesse caso, a tabela Date é descrita como uma dimensão com função múltipla porque poderia desempenhar a função de data do pedido ou data de remessa.
Os modelos semânticos permitem apenas um relacionamento ativo entre tabelas, que no diagrama do modelo é indicada como uma linha sólida. O relacionamento ativo é usado por padrão para propagar filtros que, nesse caso, seriam da tabela Date para a coluna OrderDateKey na tabela Sales. Todos relacionamentos restantes entre as duas tabelas ficam inativos. Em um diagrama de modelo, os relacionamentos são representados por linhas tracejadas. Os relacionamentos inativos são usados somente quando são expressamente solicitados em uma fórmula calculada usando a função USERELATIONSHIP.
Talvez um design de modelo melhor pudesse ter duas tabelas de datas, cada uma com um relacionamento ativo com a tabela Sales. Assim, os usuários de relatório podem filtrar pela data do pedido ou pela data de remessa, ou por ambas ao mesmo tempo. Uma tabela calculada pode duplicar os dados da tabela Date para criar a tabela Ship Date.
Análise de teste de hipóteses
O Power BI Desktop inclui um recurso chamado parâmetros. Quando você cria um parâmetro de intervalo numérico, uma tabela calculada é adicionada automaticamente ao modelo.
Os parâmetros de intervalo numérico permitem que os usuários de relatório selecionem ou filtrem por valores armazenados na tabela calculada. Fórmulas de medida podem usar valores selecionados de maneira significativa. Por exemplo, um parâmetro de intervalo numérico pode permitir que o usuário de relatório selecione uma taxa de câmbio hipotética, e uma medida pode dividir os valores de receita (em uma moeda local) pela taxa selecionada.
Notavelmente, as tabelas calculadas de parâmetro não estão relacionadas a outras tabelas de modelo porque não são usadas para propagar filtros. Por esse motivo, são chamadas de tabelas desconectadas.
Colunas calculadas
Você pode escrever uma fórmula DAX para adicionar uma coluna calculada a qualquer tabela do seu modelo. A fórmula é avaliada para cada linha da tabela e retorna um único valor. Quando adicionada a uma tabela de modo de armazenamento de importação, a fórmula é avaliada quando o modelo semântico é atualizado e aumenta o tamanho do armazenamento do seu modelo. Quando adicionada a uma tabela de modo de armazenamento DirectQuery, a fórmula é avaliada pelo banco de dados de origem subjacente quando a tabela é consultada.
No painel Dados, as colunas calculadas são aprimoradas com um ícone especial. O exemplo a seguir mostra uma única coluna calculada na tabela Customer chamada Age.
Medidas
Você pode escrever uma fórmula DAX para adicionar uma medida a qualquer tabela do seu modelo. A fórmula realiza a sumarização sobre os dados do modelo. Semelhante a uma coluna calculada, a fórmula deve retornar um único valor. No entanto, diferentemente das colunas calculadas, que são avaliadas no momento da atualização dos dados, as medidas são avaliadas no momento da consulta. Seus resultados nunca são armazenados no modelo.
No painel Dados, as medidas são mostradas com o ícone de calculadora. O exemplo a seguir mostra três medidas na tabela Sales: Cost, Profit e Revenue.
Ocasionalmente, as medidas podem ser descritas como medidas explícitas. Para deixar claro, medidas explícitas são cálculos de modelo escritos em DAX e comumente chamadas simplesmente de medidas. Ainda assim, o conceito de medidas implícitas também existe. As medidas implícitas são colunas que podem ser resumidas por visuais de maneiras simplistas, como contagem, soma, mínimo, máximo etc. Você pode identificar medidas implícitas no painel Dados, pois elas são mostradas com o símbolo de sigma (∑).
Observação
Qualquer coluna pode ser resumida quando adicionada a um visual. Portanto, se elas são mostradas com o símbolo de sigma ou não, quando são adicionadas a um visual, elas podem ser configuradas como medidas implícitas.
Além disso, o conceito de medida calculada não existe na modelagem de tabela. A palavra calculada é usada para descrever tabelas e colunas calculadas, que as distinguem das tabelas e colunas que se originam no Power Query. No Power Query, não há esse conceito de medida explícita.