O que é self em Python: exemplos do mundo real
O que é self em Python: exemplos do mundo real
Vamos dar outra olhada no problema discutido neste tutorial , que comparou dinamicamente os primeiros N dias úteis de cada mês. Esse problema foi baseado em uma consulta de um membro do LuckyTemplates em nosso fórum, onde ele queria procurar e comparar dinamicamente os primeiros 5, 10, 15 e 20 dias faturáveis (não fins de semana e não feriados) de um determinado mês com no mês anterior.
Em vez de usar a consulta avançada, criaremos uma solução de linguagem de codificação DAX. Você pode assistir ao vídeo completo deste tutorial na parte inferior deste blog.
No primeiro vídeo , criei uma solução de consulta avançada sobre como resolver esse problema. Mas então um de nossos especialistas LuckyTemplates, Antriksh Sharma, surgiu com uma medida brilhantemente eficiente que também vale a pena mergulhar mais fundo. Discutiremos algumas das técnicas que ele usou no desenvolvimento de uma medida, que fornecerão a você ferramentas adicionais em sua caixa de ferramentas DAX.
Certamente funcionou para mim e para alguns dos outros especialistas que deram uma olhada nisso. A comparação de dias úteis comparáveis ao longo dos meses é um padrão valioso em geral que pode ser usado em muitas situações.
Vamos mergulhar na consulta de energia e dar uma olhada no que Antriksh fez aqui. Temos o mês e o ano , o total de vendas e, por último, o total de vendas para N dias úteis que selecionamos usando a consulta avançada com base no parâmetro hipotético que desenvolvemos.
Antriksh adotou uma abordagem muito diferente, onde usou uma medida surpreendentemente curta para resolver todo o problema. A primeira coisa que notei sobre isso foi o uso do comando .
Essa é uma função DAX que não uso com muita frequência, mas é perfeita para esse tipo de problema. Se dermos uma olhada no Guia SQL BI DAX, ele diz que a função GENERATE é uma função de tabela que usa como entrada duas tabelas diferentes e, em seguida, faz um equivalente ao comando SQL CROSS APPLY.
Portanto, ele pega uma tabela base (Table1) e itera nela e, em seguida, pega uma segunda expressão de tabela e a avalia para cada linha na primeira tabela e, em seguida, retorna à tabela como saída.
Vamos pegar a medida de Antriksh e soltá-la na mesa. Podemos ver que ele produz exatamente os mesmos resultados que a solução de consulta avançada que fizemos da última vez. Isso é bom e valida ambas as medidas muito bem.
Vamos separar esta medida. O primeiro filtro aplicado aqui é Dates[IsBusinessDay] = TRUE. Isso remove todas as datas fora de fim de semana e não feriado com base no campo IsBusinessDay da tabela de data estendida.
Falamos muito mais sobre isso no primeiro tutorial , onde também explicamos como amarrar isso em nossa mesa festiva.
A parte interessante disso realmente vem nas duas entradas da tabela. A primeira tabela é apenas uma tabela de uma coluna do campo Mês e Ano na tabela Data.
Mas a entrada da segunda tabela é onde as coisas interessantes acontecem. Antriksh usou uma e, em seguida, usou nosso parâmetro dinâmico como o número de linhas no TOPN.
A medida Total Sales é anexada à segunda tabela e, em seguida, aplicada à primeira tabela.
Índice
Compreendendo uma medida complexa usando a linguagem de codificação DAX
Uma das maneiras mais fáceis de descobrir o que uma medida complexa como essa está fazendo é entrar no Editor Tabular . Podemos dar uma olhada nessa expressão e descobrir o que essa expressão TOPN está fazendo primeiro.
Vamos copiar a parte TOPN e criar uma nova consulta DAX . Lembre-se de que as consultas DAX começam com EVALUATE.
Ao colarmos a parte TOPN, veremos que ela está extraindo as 5 primeiras datas da tabela de pedidos de vendas. Existe uma tabela no TOPN que é composta pelos valores de todas as datas dos pedidos dentro da tabela de vendas.
Esta função TOPN está pegando o valor do parâmetro what-if (que neste caso é 5) e aplicando-o ao campo de data do pedido de venda. Em seguida, ele puxa as primeiras 5 datas dentro do contexto do filtro em ordem crescente com base nesse campo.
Dado que não há contexto de filtro adicional, basta extrair as primeiras 5 datas de toda a tabela.
A coluna @Sales está apenas adicionando o total de vendas dentro do contexto de filtro adequado à tabela TOPN.
Até agora, temos a primeira tabela do mês e ano, a segunda tabela do TOPN das primeiras N datas da tabela de vendas e, em seguida, o total de vendas associado a ela.
Usando a tabela GENERATE na linguagem de codificação DAX
Vamos dar uma olhada no que esta tabela GENERATE está fazendo. Voltaremos ao Editor Tabular e criaremos uma nova consulta DAX.
Vamos começar como sempre fazemos com EVALUATE, colar na parte GENERATE do código e clicar em 5.
Podemos ver que para cada linha da primeira tabela, ela está iterando e juntando com as 5 linhas da tabela TOPN avaliadas no contexto com a função @Sales.
Levou os primeiros 5 dias úteis de abril, os primeiros 5 dias úteis de maio, os primeiros 5 dias úteis de junho e assim por diante até chegar ao final da primeira tabela.
Isso é exatamente o que precisamos, e agora se torna uma questão relativamente simples de somar esses valores. Temos o resultado (que é a variável de tabela dos resultados GENERATE) e então precisamos somar a função @Sales.
Dentro do contexto, agora estamos somando os primeiros 5 dias úteis de abril, os primeiros 5 dias úteis de maio e assim por diante até chegarmos ao nosso total de $ 23.737.430, caso em que não há contexto de mês e ano para operar .
Isso resume toda a coluna @Sales e nos dá exatamente o mesmo total que tínhamos em nossa solução de consulta avançada.
Você pode ver que, se alterarmos o slicer para 10, obteremos dinamicamente os mesmos resultados com a linguagem de codificação DAX que obtivemos na consulta avançada.
Também temos o gráfico de barras na parte inferior ajustando-se dinamicamente para refletir as alterações que fizemos.
Ajustar dinamicamente o título da medida
Há outro truque adicional que gostaria de mostrar a você. Você pode criar um ajuste dinâmico em seu parâmetro hipotético e vinculá-lo dinamicamente a um título de medida.
Por exemplo, se alterarmos a segmentação na parte superior para 15, ela alterará dinamicamente o nome da medida na parte inferior para Total de vendas nos primeiros 15 dias úteis de cada mês .
Há uma maneira fácil de fazer isso no DAX usando formatação condicional . Basicamente, pegamos apenas três cordas. O primeiro é o Total Sales for First e, em seguida, concatená-lo com o valor que colhemos do parâmetro hipotético e, em seguida, vincule-o ao restante do título.
Em seguida, entramos no visual, vamos para a formatação condicional do título e clicamos em fx .
Formataremos por valor de campo e escolheremos essa medida de título dinâmica. Isso mudará a seleção do parâmetro hipotético.
Conclusão
O que temos agora é uma solução completa usando a linguagem de codificação DAX. Discutimos uma maneira realmente criativa e eficiente de fazer isso usando a função GERAR. Quero agradecer a Antriksh por compartilhar seu brilhante conhecimento DAX conosco. Aprendi muito ao usar a solução DAX dele e espero que você também.
O que é self em Python: exemplos do mundo real
Você aprenderá como salvar e carregar objetos de um arquivo .rds no R. Este blog também abordará como importar objetos do R para o LuckyTemplates.
Neste tutorial de linguagem de codificação DAX, aprenda como usar a função GENERATE e como alterar um título de medida dinamicamente.
Este tutorial abordará como usar a técnica Multi Threaded Dynamic Visuals para criar insights de visualizações de dados dinâmicos em seus relatórios.
Neste artigo, analisarei o contexto do filtro. O contexto do filtro é um dos principais tópicos sobre os quais qualquer usuário do LuckyTemplates deve aprender inicialmente.
Quero mostrar como o serviço online do LuckyTemplates Apps pode ajudar no gerenciamento de diferentes relatórios e insights gerados de várias fontes.
Aprenda a calcular suas alterações de margem de lucro usando técnicas como ramificação de medida e combinação de fórmulas DAX no LuckyTemplates.
Este tutorial discutirá sobre as ideias de materialização de caches de dados e como elas afetam o desempenho dos DAXs no fornecimento de resultados.
Se você ainda estiver usando o Excel até agora, este é o melhor momento para começar a usar o LuckyTemplates para suas necessidades de relatórios de negócios.
O que é o Gateway do LuckyTemplates? Tudo o que você precisa saber