TOP

DAX-Lição 2. Função CALCULATE

Descrição

A primeira função para começar a aprender DAX é CALCULATE. Esta função não tem uma contrapartida exata em Excel, mas é comparável às funções SUMIFS e COUNTIFS . Resumindo, esta função aplica filtros a outras funções de cálculo, assim podemos selecionar e incluir nos cálculos apenas os dados que necessitamos.

Sintaxe da função CALCULATE()

=CALCULATE(< expressão estatística >, < filtro1 >, < filtro2 >,...)

< expressão estatística >

Expressão estatística deve nos retornar o resultado do cálculo (um valor, não uma tabela). Por esta razão, funções estatísticas do tipo são frequentemente utilizadas nesta configuração SUM , MÍNIMO , MÁX. , COUNTROWS etc.

  1. SUM([ Nome da coluna ])
  2. SUM([ NomeColunas1 ]) / MAX([ NomeColunas2 ])
  3. Nome de outro campo de cálculo (medida)

< filtro1 >, < filtro2 >, ...

Filtro define o intervalo de dados a ser trabalhado. As condições para seleção de valores são especificadas aqui.

  1. [ Nome da coluna ] = Auto
  2. [ Nome da coluna ] >= 6
  3. ALL( 'Nome da tabela' ) ou ALL( 'Nome da tabela' [ Nome da coluna ] )
  4. FILTER ( 'Nome da tabela' , 'Nome da tabela' [ Nome da coluna ] = " Verde ")

Suponha que temos uma tabela assim, chamada Demo e carregado em PowerPivot .

Vamos criar uma tabela resumo com base nela e contar a quantidade de registros de cada produto.

Agora vamos criar um novo campo de cálculo (Measure) Count_All_Product em nossa tabela dinâmica, que exibirá o número total de registros em todas as linhas.

Como obtivemos os números no campo de cálculo Count_All_Product 16 ? A explicação é que removemos deste campo todos os filtros que foram aplicados na tabela dinâmica (cada linha da tabela dinâmica é um filtro separado), usando a função ALL() . Ou seja, em outras palavras, uma função ALL (Demo) dá o comando para remover todos os filtros do campo calculado Count_All_Product que são aplicados à tabela Demo .

Vamos adicionar outro campo (City) em linhas para ver as vendas de cada produto por cidade:

Vemos que os números estão no campo Count of Rows alteração, mas não no campo de cálculo Count_All_Product. Correto, pois no último removemos todos os filtros da fórmula. Agora vamos fazer algumas pequenas alterações em nossa fórmula e ver o resultado.

=CALCULATE(COUNTROWS(Demo);ALL(Demo[Product]))

Mudamos o argumento para a função ALL() substituindo Demo sobre Demo[Product] . Agora os filtros não serão removidos de toda a tabela Demo , mas apenas para sua coluna Demo[Product] .

Então vemos o que está em campo Count of Rows filtros estão em vigor Product e City , e apenas um filtro no campo calculado Count_All_Product City .