Laboratório – inteligência de dados temporais e medidas no DAX

Neste laboratório, você criará medidas com expressões DAX envolvendo manipulação de contexto de filtro.

Neste laboratório, você aprenderá a:

  • Usar a função CALCULATE () para manipular o contexto do filtro

  • Usar as funções de Inteligência de dados temporais

Exercício 1: Trabalhar com contexto de filtro

Neste exercício, você criará medidas com expressões DAX envolvendo manipulação de contexto de filtro.

Abra o arquivo inicial do laboratório, encontrado na pasta D:\DA100\Lab06B\starter.

Tarefa 1: Criar um visual de matriz

Nesta tarefa, você criará um visual de matriz para testar suas novas medidas.

  1. No modo de relatório do Power BI Desktop, crie uma página de relatório.

    criar relatório

  2. Na Página 3, adicione um visual de matriz.

    adicionar visual de matriz

  3. Redimensione o visual da matriz de modo a preencher a página inteira.

  4. Para configurar os campos de visuais da matriz, no painel Campos, arraste a hierarquia de Região | Regiões e solte-a dentro do visual.

  5. Adicione também o campo Venda | Vendas.

  6. Para expandir toda a hierarquia, no canto superior direito do visual da matriz, clique no ícone de seta bifurcada duas vezes.

    clique na seta bifurcada

    Lembre-se de que a hierarquia de Regiões possui os níveis de Grupo, País e Região.

  7. Para formatar o visual, abaixo do painel de Visualizações, selecione Formatar.

    selecionar painel Formatar

  8. Na caixa de Pesquisa, digite Nível.

  9. Defina a propriedade Layout de nível como Desativada.

    layout de nível desativado

  10. Verifique se o visual da matriz tem quatro cabeçalhos de coluna.

    verifique se há quatro cabeçalhos de coluna

    Na Adventure Works, as regiões de vendas são organizadas em grupos, países e regiões. Todos os países, exceto os Estados Unidos, têm apenas uma região, que recebe o mesmo nome do país. Como os Estados Unidos são um grande território de vendas, ele é dividido em cinco regiões.

    Você criará várias medidas neste exercício, depois as testará adicionando-as ao visual da matriz.

Tarefa 2: Manipular o contexto de filtro

Nesta tarefa, você criará várias medidas com expressões DAX que usam a função CALCULATE() para manipular o contexto de filtro.

  1. Na exibição Relatório, na faixa Modelagem, dentro do grupo Cálculos, clique em Nova medida para adicionar uma medida "Vendas de todas as regiões" à tabela Vendas.

  2. Use a seguinte expressão para criar a medida:

    Para sua conveniência, todas as definições DAX neste laboratório podem ser copiadas do arquivo D:\DA100\Lab06B\Assets\Snippets.txt.

    Sales All Region =
    CALCULATE(SUM(Sales[Sales]), REMOVEFILTERS(Region))
    

    A função CALCULATE() é uma função poderosa usada para manipular o contexto do filtro. O primeiro argumento usa uma expressão ou medida (uma medida é apenas uma expressão nomeada). Os argumentos subsequentes permitem modificar o contexto do filtro.

    A função REMOVEFILTERS() remove os filtros ativos. Ela pode não remover nenhum argumento ou usar uma tabela, uma coluna ou várias colunas como seu argumento.

    Nesta fórmula, a medida avalia a soma da coluna Vendas em um contexto de filtro modificado, que remove todos os filtros aplicados à tabela Região.

  3. Na barra de fórmulas, copie a expressão do arquivo Snippets.txt e pressione Inserir. Isso cria a medida na tabela Vendas. Revise a lista de campos no painel Campos na tabela Vendas, e você verá a medida Vendas de todas as regiões.

  4. Marque a medida Vendas de todas as regiões no painel Campos para adicionar a medida ao visual da matriz.

    Adicionar a medida Vendas de todas as regiões

  5. Observe que a medida Vendas de todas as regiões calcula o total de vendas de todas as regiões por região, país (subtotal) e grupo (subtotal).

    Essa medida ainda não entregou um resultado útil. Quando as vendas de um grupo, país ou região são divididas por esse valor, é gerada uma taxa útil conhecida como "porcentagem do total geral".

  6. No painel Campos, verifique se a medida Vendas de todas as regiões está selecionada e, na barra de fórmulas, substitua o nome da medida e a fórmula pela seguinte fórmula:

    Dica

    Para substituir a fórmula existente, primeiro copie o snippet. Em seguida, clique dentro da barra de fórmulas e pressione CTRL+A para selecionar todo o texto. Em seguida, pressione CTRL+V para colar o snippet e substituir o texto selecionado. Em seguida, pressione Enter.

    Sales % All Region =
    DIVIDE(
       SUM(Sales[Sales]),
       CALCULATE(
            SUM(Sales[Sales]),
            REMOVEFILTERS(Region)
       )
    )
    

    A medida foi renomeada para refletir com precisão a fórmula atualizada. A função DIVIDE() divide a medida Vendas (não modificada pelo contexto de filtro) pela medida Vendas em um contexto modificado que remove todos os filtros aplicados à tabela Região.

  7. No visual da matriz, observe que a medida foi renomeada e que valores diferentes agora aparecem para cada grupo, país e região.

  8. Formate a medida % de vendas de todas as regiões como uma porcentagem com duas casas decimais.

    alterar medida para porcentagem

  9. No visual da matriz, revise os valores da medida % de vendas de todas as regiões.

    revisar os valores da % de vendas de todas as regiões

  10. Adicione outra medida à tabela Vendas, com base na seguinte expressão, e formate-a como uma porcentagem:

    Sales % Country =
    DIVIDE(
       SUM(Sales[Sales]),
       CALCULATE(
           SUM(Sales[Sales]),
           REMOVEFILTERS(Region[Region])
       )
    )
    
  11. Observe que a fórmula da medida % de vendas por país difere ligeiramente da fórmula da medida % de vendas de todas as regiões.

    A diferença é que o denominador modifica o contexto de filtro, removendo filtros na coluna Região da tabela Região, e não todas as colunas da tabela Região. Isso significa que todos os filtros aplicados às colunas grupo ou país são preservados. Isso gera um resultado que representa as vendas como uma porcentagem do país.

  12. Adicione a medida % de vendas por país ao visual da matriz.

  13. Observe que apenas as regiões dos Estados Unidos produzem um valor que não é 100%.

    Estados Unidos não têm 100%

    Lembre-se de que somente os Estados Unidos têm várias regiões. Todos os outros países têm uma única região, o que explica porque todos eles têm 100%.

  14. Para melhorar a legibilidade dessa medida no visual, substitua a medida % de vendas por país por esta fórmula aprimorada.

    Sales % Country =
    IF(
        ISINSCOPE(Region[Region]),
        DIVIDE(
            SUM(Sales[Sales]),
            CALCULATE(
                SUM(Sales[Sales]),
                REMOVEFILTERS(Region[Region]
            )
        ) 
    )
    

    Inserida na função IF(), a função ISINSCOPE() é usada para testar se a coluna região é o nível em uma hierarquia de níveis. Quando ela tem o valor true, a função DIVIDE() é avaliada. A ausência de uma parte falsa significa que a função retorna o valor em branco quando a coluna região não está no escopo.

  15. Observe que a medida % de vendas por país agora retorna um valor apenas quando a região está no escopo.

    Valor da % de vendas por país retornado quando a região está no escopo

  16. Adicione outra medida à tabela Vendas, com base na seguinte expressão, e formate-a como uma porcentagem:

    Sales % Group =
    DIVIDE(
        SUM(Sales[Sales]),
        CALCULATE(
             SUM(Sales[Sales]),
             REMOVEFILTERS(
                 Region[Region],
                 Region[Country]
             )
        )
    )
    

    Para alcançar vendas como uma porcentagem de grupo, dois filtros podem ser aplicados para remover de maneira eficiente os filtros em duas colunas.

  17. Adicione a medida % de vendas por grupo ao visual da matriz.

  18. Para melhorar a legibilidade dessa medida no visual, substitua a medida % de vendas por grupo por esta fórmula aprimorada.

    Sales % Group =
    IF(
        ISINSCOPE(Region[Region])
             || ISINSCOPE(Region[Country]),
        DIVIDE(
            SUM(Sales[Sales]),
            CALCULATE(
                SUM(Sales[Sales]),
                REMOVEFILTERS(
                     Region[Region],
                     Region[Country]
                )
            )
        )
    )
    
  19. Observe que a medida % de vendas por grupo agora retorna um valor apenas quando a região ou o país estão no escopo.

  20. Em uma exibição Modelo, coloque as três novas medidas em uma pasta de exibição nomeada Índices.

    pasta índices

  21. Salve o arquivo do Power BI Desktop.

    As medidas adicionadas à tabela Vendas modificaram o contexto de filtro para gerar uma navegação hierárquica. Observe que o padrão para alcançar o cálculo de um subtotal requer a remoção de algumas colunas do contexto de filtro e, para chegar no total geral, todas as colunas devem ser removidas.

Exercício 2: Usar inteligência de dados temporais

Neste exercício, você criará uma medida de vendas YTD (desde o início do ano) e uma medida de crescimento YoY (ano a ano).

Tarefa 1: Criar uma medida YTD

Nesta tarefa, você criará uma medida de vendas YTD.

  1. Na exibição Relatório, na Página 2, observe o visual da matriz que apresenta várias medidas com anos e meses agrupados nas linhas.

  2. Adicione uma medida à tabela Vendas, com base na seguinte expressão, e formate-a para zero casas decimais:

    Sales YTD =  
    TOTALYTD(SUM(Sales[Sales]), 'Date'[Date], "6-30")
    

    A função TOTALYTD() avalia uma expressão – neste caso, a soma da coluna Vendas – de acordo com determinada coluna de data. A coluna de data deve pertencer a uma tabela de data marcada como uma tabela de data. A função também pode usar um terceiro argumento opcional representando a última data de um ano. A ausência dessa data significa que 31 de dezembro é a última data do ano. Na Adventure Works, junho é o último mês do ano, portanto, o argumento "6-30" é usado.

  3. Adicione o campo Vendas e a medida Vendas YTD ao visual da matriz.

  4. Observe o acúmulo de valores de vendas durante o ano.

    acúmulo de valores de vendas

    A função TOTALYTD() executa a manipulação de filtro, especificamente manipulação de filtros de tempo. Por exemplo, para computar vendas YTD para setembro de 2017 (terceiro mês do ano fiscal), todos os filtros na tabela Data são removidos e substituídos por um novo filtro de datas que começa no início do ano (1º de julho de 2017) e estende-se até a última data do período dentro do contexto (30 de setembro de 2017).

    Observação

    Muitas funções de inteligência de dados temporais estão disponíveis em DAX para dar suporte a manipulações de filtros de tempo comuns.

Tarefa 2: Criar uma medida de crescimento YoY

Nesta tarefa, você criará uma medida de crescimento YoY.

  1. Adicione uma medida à tabela Vendas, com base na seguinte expressão:

    Sales YoY Growth =
    VAR SalesPriorYear =
        CALCULATE(
            SUM(Sales[Sales]),
            PARALLELPERIOD(
                'Date'[Date],
                -12,
             MONTH
            )
        )
    RETURN
        SalesPriorYear
    

    A fórmula da medida Crescimento de vendas YoY declara uma variável. As variáveis podem ser úteis para simplificar a lógica da fórmula e são mais eficientes quando uma expressão precisa ser avaliada diversas vezes dentro da fórmula (o que é o caso da lógica de crescimento YoY). As variáveis são declaradas por um nome exclusivo, e a expressão de medida deve ser emitida depois da palavra-chave RETURN.

    A variável SalesPriorYear recebe uma expressão que calcula a soma da coluna Vendas em um contexto modificado que usa a função PARALLELPERIOD() para deslocar 12 meses para trás de cada data no contexto de filtro.

  2. Adicione a medida Crescimento de vendas YoY ao visual da matriz.

  3. Observe que a nova medida retorna um valor em branco para os primeiros 12 meses (não foram registradas vendas antes do ano fiscal de 2017).

  4. O valor da medida Crescimento de vendas YoY para Julho de 2017 é o valor de Vendas para Janeiro de 2016.

    Crescimento de vendas YoY para julho de 2017 e Vendas de janeiro de 2016

    Agora que a "parte difícil" da fórmula foi testada, você pode substituir a medida pela fórmula final que computa o resultado de crescimento.

  5. Para completar a medida, substitua a medida Crescimento de vendas YoY por esta fórmula, formatando-a como uma porcentagem com duas casas decimais:

    Sales YoY Growth =
    VAR SalesPriorYear =
        CALCULATE(
              SUM(Sales[Sales]),
              PARALLELPERIOD(
              'Date'[Date],
              -12,
              MONTH
            )
    )
    RETURN
       DIVIDE(
           (SUM(Sales[Sales]) - SalesPriorYear),
           SalesPriorYear
       )
    
  6. Na fórmula, na cláusula RETURN, observe que a variável é referenciada duas vezes.

  7. Verifique que o crescimento YoY para Julho de 2018 é de 392,83%.

    Crescimento YoY

    Isso significa que as vendas de julho de 2018 (US$ 2.411.559) representam quase 400% (quase 4x) de melhoria nas vendas realizadas no ano anterior (US$ 489.328).

  8. Em uma exibição Modelo, coloque as duas novas medidas em uma pasta de exibição chamada Inteligência de dados temporais.

    Pasta Inteligência de dados temporais

  9. Salve o arquivo do Power BI Desktop.

    O DAX inclui muitas funções de inteligência de dados temporais para facilitar a implementação de manipulações de filtro de tempo em cenários de negócios comuns. Este exercício conclui o desenvolvimento do modelo de dados.

Exercício 3: Publicar o arquivo do Power BI Desktop

Neste exercício, você publicará o arquivo do Power BI Desktop no Power BI.

Observação

O exercício a seguir exigirá que você faça logon no serviço do Power BI. Você pode usar sua conta existente ou criar uma conta de avaliação antes de iniciar esta parte do laboratório.

Tarefa 1: Publicar o arquivo

Nesta tarefa, você publicará o arquivo do Power BI Desktop no Power BI.

  1. Salve o arquivo do Power BI Desktop.

  2. Para publicar o arquivo, na guia de faixa de opções Página Inicial, dentro do grupo Compartilhar, clique em Publicar.

  3. Na janela Publicar no Power BI, selecione o workspace de Análise de Vendas.

    selecionar o workspace de Análise de Vendas

  4. Clique em Selecionar.

  5. Quando o arquivo tiver sido publicado com êxito, clique em Entendi.

  6. Feche o Power BI Desktop.

  7. No Edge, no serviço do Power BI, no painel Navegação (localizado à esquerda), examine o conteúdo de seu workspace de Análise de Vendas.

    Conteúdo do workspace de Análise de Vendas

    A publicação adicionou um relatório e um conjunto de dados. Se você não os encontrar, pressione F5 para recarregar o navegador e expanda o workspace novamente.

    O modelo de dados foi publicado para se tornar um conjunto de dados. O relatório, usado para testar seus cálculos de modelo, foi adicionado como um relatório. Esse relatório não é obrigatório. Portanto, você o excluirá agora.

  8. Passe o cursor sobre o relatório de Análise de Vendas, clique nas reticências verticais (…) e selecione Remover.

    Remover relatório de Análise de Vendas

  9. Quando você for solicitado a confirmar a exclusão, clique em Excluir.