O que você vai aprender?
Aqui, veremos 5 abordagens diferentes, começando com os cálculos de tabela mais simples até a duplicação avançada do conjunto de dados e juntando-o a ele mesmo. Utilizaremos a base pública Superloja, disponível no Tableau.
Dica inspirada no blog https://jimdehner2.blogspot.com/
Introdução:
Cálculos YoY e YTD são métricas de negócios fundamentais – afinal, quem não quer saber como eles se compararam ao ano passado, mês passado ou como eles estão no ano até a data. Parece que os usuários em todos os níveis de experiência têm dúvidas sobre como concluir cálculos do tipo período sobre período e período até a data ou têm expectativas diferentes para o resultado. Então vamos lá!
1: Cálculos da Tabela
A maneira mais fácil de fazer um cálculo de período sobre período é com uma diferença percentual de cálculo de tabela padrão:
– Bastante fácil, mas a maioria dos usuários deseja eliminar a coluna vazia do ano inicial da série. Isso não pode ser feito com um cálculo de tabela.
2: LOD e Fixed
O segundo método usa 2 LODs e requer um ponto de partida fixo (fixed). Esse ponto de partida pode ser de um parâmetro, a data atual (Today()) ou a última data no conjunto de dados {max(date)} O exemplo usa Today().
– O valor YTD atual pode ser determinado usando o LOD:
{ FIXED [Category]: sum( if DATETRUNC(“year”,[Order Date])= DATETRUNC(“year”,TODAY())and DATETRUNC(“day”,[Order Date])<= DATETRUNC(“day”,TODAY()) then [Sales] end )}
Onde o ano da dimensão da data é comparado com o ano de Today() e todos os dias do ano anterior e incluindo Today() e incluídos no total.
– Da mesma forma, o cálculo do valor YTD anterior é:
{ FIXED [Category]: sum( if DATETRUNC(“year”,[Order Date])= DATETRUNC(“year”,dateadd(“year”,-1,TODAY())) and DATETRUNC(“day”,[Order Date])<= DATETRUNC(“day”,dateadd(“year”,-1,TODAY())) then [Sales] end )}
E compara o ano da data com 1 ano antes de Today () usando uma função Dateadd.
– Então, a diferença percentual YoY é simplesmente calculada usando:
(sum([Current YTD Sales (today)])-sum([Prior YTD Sales (today) ]))/
sum([Prior YTD Sales (today) ])
3: Período variável POP
Freqüentemente, os usuários desejam comparar YTD versus PYTD ou MTD versus PMTD (ou mais) com base na seleção de um parâmetro pelo usuário final. Primeiro, um parâmetro é necessário para selecionar a base de comparação.
– Em seguida, 2 lógicas de Case para os totais do período Current ou Prior até a data – as lógicas case usam LODs semelhantes aos usados no exemplo anterior.
– Selecionando o Yaers retorna o YTD (July 9, 2020) em relação ao YTD Prior (July 9, 2019).
– E selecionando o Month irá comparar o MTD (July 9, 2020) com o MTD Prior (June 9, 2020).
4: Comparação dinâmica YoY
Com menos frequência, um usuário desejará fazer uma comparação YoY em um intervalo de datas e isso apresenta um problema com as três primeiras abordagens. Os cálculos da tabela fazem uma comparação por posição em uma tabela de dados, não pela data real e as soluções de LOD dependem da fixação de uma data final.
Uma comparação YoY dinâmica ou em execução pode ser feita, mas será necessário duplicar o conjunto de dados e juntá-lo a si mesmo, compensando a data em um ano. Mas isso só pode ser feito em níveis onde o conjunto de dados é sólido – ou seja, sem nulos no conjunto de dados
O primeiro exemplo usa um subconjunto de dados muito simples dos dados da Super-loja que inclui apenas a data do pedido, a categoria, a subcategoria e o valor de vendas. O passo 1 é juntar uma cópia dos dados com ele mesmo no nível de subcategoria, mês e ano, mas compensando o ano.
– Quando você abre qualquer planilha, haverá 2 conjuntos de dados no quadro de dados – um é o conjunto de dados original.
– E a outra é a cópia que foi juntada para criar um conjunto de dados do ano anterior.
– Agora vamos ver como expandir o modelo e criar um YoY móvel. Para manter o visual simples, amplie a data para dados trimestrais e compacte as categorias, de modo que olharemos apenas para os totais.
Para os totais móveis do Current year e Prior, usaremos um cálculo de tabela.
window_sum(sum([Sales]),-3,0)
– E Prior year:
window_sum(sum([Sales Prior Year]),-3,0)
They result in this:
5: Use um scaffold para preencher os nulos
Existe um problema quando há nulos ou vazios nos dados.
É preciso expandir o conjunto de dados para o nível do mês e do dia e introduzir vazios nos dados.
– Os dados do ano anterior (Prior) não totalizarão mais adequadamente devido aos nulos nos dados.
– Para corrigir o problema, é necessário primeiro criar as células ausentes. Isso é feito usando o scaffolding dos dados – No exemplo é usado o Prep para criar uma escada no nível de data / categoria e juntando-a de volta aos dados originais.
– Resolvendo os nulos e o ano anterior agora totaliza corretamente.