Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia,
Estou tendo bastante dificuldades em separar uma comparação de valores dos anos listados em uma nova coluna chamada Comparado. Segue abaixo o print de como está o desenvolvimento até o momento, e o outro print mostrando como preciso finalizar.
Atual
Necessidade
O problema é que não consigo separar os dois valores dos anos com a nova medida. Então será que no cálculo das dimensões de Valor Faturado e Qtde Faturado devo fazer uma sentença que liste primeiro os dois anos e em seguida o Comparado? E como fazer isso.
Segue abaixo a Medidas:
Valor Faturado:
Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}
,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}>} Vl_Mercadoria_NF)
& '' &
Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}
,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}>} Vl_Mercadoria_NF)
Qtde Faturado:
Num( Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}
,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}>} Qtde_FatUnit_NotaItem))
& '' &
Num( Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}
,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}>} Qtde_FatUnit_NotaItem))
Caso ajude essa informação tenho uma dimensão em Coluna que mudei o rótulo para Ano:
Ano_Emissao_Nota
E valor Linha que mudei o rótulo para UF:
UF_Cliente
Agradeço desde já qualquer ajuda.
Att,
Rodrigo
Rodrigo, o Dim não vai ser uma variável, e sim uma dimensão mesmo. Coloque assim no script:
Passo 1)
Dimensao:
LOAD
rowno() as Dim
AutoGenerate 3;
Passo 2)
NotaFiscal:
LOAD
Data_Emissao_Nota,
Ano_Emissao_Nota
FROM [lib://Qvd - Homologação (mx_administrador)/Forum_NotaFiscal_M*.qvd](qvd);
SET vMax_Ano =
max(Ano_Emissao_Nota);
Passo 3) Dimensão das 3 colunas (Ano Atual -1, Ano Atual, e Comparativo):
=pick(Dim,
vMax_Ano-1,
vMax_Ano,
'Comparativo'
)
Passo 4) Criar as medidas com set analysis. Como na posição 1 está o vMax_Ano -1, o set analysis das duas medidas deve ser o mesmo. Você vai criar uma medida para valor faturado e outra para qtd. faturado. Para valor faturado fica:
=pick(vDim,
Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vMax_Ano -1)'}>}Vl_Mercadoria_NF), <--------- POSIÇÃO 1
Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vMax_Ano -0)'}>}Vl_Mercadoria_NF), <---------- POSIÇÃO 2
Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vMax_Ano -0)'}>}Vl_Mercadoria_NF)
/ <---------- POSIÇÃO 3
Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vMax_Ano -1)'}>}Vl_Mercadoria_NF)
)
obs: Na medida do comparativo (posição 3) eu só coloquei [Ano atual] / [Ano atual -1] como exemplo, depende de como é seu comparativo.
Rodrigo, usando suas expressões eu faria assim:
Comparativo Valor Faturado:
Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}>} Vl_Mercadoria_NF)
/
Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}
>} Vl_Mercadoria_NF)
Comparativo Qtde Faturado:
Num( Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),0))))"}>} Qtde_FatUnit_NotaItem))
/
Num( Sum ({<Periodo=,Ano_Emissao_Nota={"$(=year((addyears(max(Data_Emissao_Nota),-1))))"}>} Qtde_FatUnit_NotaItem))
Abs e Sucesso!!
Thiago,
Já havia realizado essa expressão de cálculo. Porem não me trouxe nenhum resultado.
Segue abaixo como ficou.
Se eu inverter as colunas fica mais claro que não está OK ainda
Preciso ver alguma forma de separar essa medida da coluna Ano. Existe como fazer isso?
Pode disponibilizar um qvf de exemplo?
Thiago, o problema que o qvf que estou utilizando possui muita informação da empresa. Então até eu montar outro com as informações apenas para essa particularidade vai ser um pouco difícil pois estou com várias demandas de entrega. Se apenas com o qvf de exemplo vai conseguir algo, posso tentar no meu horário de almoço montar ele e te mandar.
Perfeito, se puder, me mande um com dados fictícios que mantenham somente a estrutura da sua dash atual.
Rodrigo, uma solução viável é Pick().
Passo 1) Cria uma dimensão no script, i.e. um vetor de 0 a 2. Digamos que você chame de Dim. Cada valor do vetor será um valor da dimensão, por exemplo:
0 -> 2017
1 -> 2018
2 -> Comparativo
Passo 2) Cria uma variável que pega o máximo ano. Digamos que você chame de vMax_Ano
Passo 3) Na dimensão você coloca:
=pick(Dim,
vMax_Ano-1,
vMax_Ano,
'Comparativo')
Passo 4) Então você cria 2 expressões, uma pra valor faturado e outra pra quantidade faturado. Dentro do pick na expressão, você vai colocar um set analysis com os anos. Exemplo:
=pick(Dim,
Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'}>}Vl_Mercadoria_NF),
Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -0)'}>}Vl_Mercadoria_NF),
Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -0)'}>}Vl_Mercadoria_NF)
/
Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'}>}Vl_Mercadoria_NF),
)
Não analisei exatamente suas expressões, mas fica algo deste jeito. Pode implementar que funciona.
Thiago,
Segue em anexo o qvf. Com os valores apresentados no print anterior.
Boa Tarde Leonardo,
Analisando sua resposta estou tentando reproduzir ela. Segue abaixo minha percepção de execução dos passos descritos por você:
Passo 1) Script Carga
Set vDim;
Passo 2) Script Carga
NotaFiscal:
LOAD
Data_Emissao_Nota,
Ano_Emissao_Nota
FROM [lib://Qvd - Homologação (mx_administrador)/Forum_NotaFiscal_M*.qvd](qvd);
vMax_Ano = Max(Ano_Emissao_Nota);
vDT_Max_Ano = Max(Data_Emissao_Nota);
Passo 3) Dimensão da Coluna certo?
=pick(vDim,
vMax_Ano-1,
vMax_Ano,
'Comparativo'
)
Passo 4) Criar as Medidas com o Set Analysis:
=pick(vDim,
Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'}>}Vl_Mercadoria_NF),
Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -0)'}>}Vl_Mercadoria_NF),
Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -0)'}>}Vl_Mercadoria_NF)
/
Sum ({<Periodo=,Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'},Ano_Emissao_Nota={'$(=vDT_Max_Ano -1)'}>}Vl_Mercadoria_NF)
)
Após executar esses passos a tela ficou em branco sem nenhum resultado. Estaria correto a forma que executei?
Rodrigo,
Segue minha sugestão para a resolução da questão.
Expressões usadas:
Valor Faturado:
Sum(Aggr(Sum(Vl_Mercadoria_NF),Ano_Emissao_Nota,UF_Cliente))
Qtde Faturada:
Sum(Aggr(Sum(Qtde_FatUnit_NotaItem),Ano_Emissao_Nota,UF_Cliente))
Comparativo Valor Faturado:
(Sum(Aggr(Sum(Vl_Mercadoria_NF),Ano_Emissao_Nota,UF_Cliente))/Before(total Sum(Aggr(Sum(Vl_Mercadoria_NF),Ano_Emissao_Nota,UF_Cliente))))-1
Comparativo Qtde Faturada:
(Sum(Aggr(Sum(Qtde_FatUnit_NotaItem),Ano_Emissao_Nota,UF_Cliente))/Before(total Sum(Aggr(Sum(Qtde_FatUnit_NotaItem),Ano_Emissao_Nota,UF_Cliente))))-1