Skip to main content
Announcements
Join us at Qlik Connect for 3 magical days of learning, networking,and inspiration! REGISTER TODAY and save!
cancel
Showing results for 
Search instead for 
Did you mean: 
rphpacheco
Creator III
Creator III

Pegar o mesmo dia da semana do ano anterior

Bom dia a todos.

Tenho um problema. Tenho um relatório de vendas onde os gestores querem que, ao selecionar uma data específica(ex: a primeira terça-feira do ano) ela seja comparada com a primeira terça do ano passado.

Tenho os campos DTNOTA que é a data extraída diretamente do banco e depois tratei este dado separando o DIA, MES e ANO. Tentei com o SET ANALYSIS mas não consegui.

Tentei tmbm criando uma variável pegando a data e diminuindo por -364, mas não rolou também.

Aguém tem ideia do que possa ser feito para isso?

Desde já agradeço!

1 Solution

Accepted Solutions
fernando_tonial
Employee
Employee

Olá Raphael,

Segue anexo o QVW alterado conforme a sua solicitação.

=Sum({$<ANO=, MES=, DIA=, DTNOTA={'$(=Date(DTNOTA-364,'DD/MM/YYYY'))'}>} VENDA)

Realmente a função parece estar errada, mas pelo que percebi esta correta.

Favor analisar.

Abraços.

Tonial.

Don't Worry, be Qlik.

View solution in original post

17 Replies
matzenbacher
Creator II
Creator II

cria um campo novo:

WeekDay(Data)

voce vai ter os dias da semana, aí pra pegar as primeiras terças.. me deixa pensar aqui..

Anonymous
Not applicable

Cara de uma olhada nas funções week() e weekday() no help... acho que pede lhe ajudar.

Not applicable

Bom dia

Não testei mas você pode tentar isto:

YearEnd( WeekDay(data de referencia),-12)

ou com  set analysis

sum( {$<Ano = {$(#vÚltimoAno)}>} Vendas )

retorna as vendas do ano anterior em relação à seleção

atual. Aqui, uma variável vÚltimoAno contendo o ano

relevante é usada em uma expansão de sinal de dólar.

sum( {$<Ano = {$(#=Only(Ano)-1)}>} Vendas )

retorna as vendas do ano anterior em relação à seleção

atual. Aqui, uma expansão de sinal de dólar é usada para

calcular o ano anterior.

matzenbacher
Creator II
Creator II

A sim, com a seleçao feita é só aplicar um set analysis que ele vai retornar o mesmo período do ano anterior.

=DD

eu faço dessa forma:

crio uma variavel: 

nome variavel: vAnoAnterior

valor:  =max(Ano)-1   ou   = max(year(data))-1

depois no setanalysis:

=Sum({$<  [Ano] = {$(vAnoAnterior)}  >} [Valor])

acho mais organizado.. mas pode ser feito de outras formas.

* e claro, cria o campo weekday() pra ter tmb o filtro do dia da semana;

rphpacheco
Creator III
Creator III
Author

Eu fiz a função YearEnd( WeekDay(data de referencia),-12) mas me retornou uma data 31/12/1888 para a seleção de 02/01/2013.

Já para o set analysis ele retorna a venda do mesmo período do ano passado, mas o que eu quero é que ele compare com o mesmo dia da semana do ano passado. Ex: se seleciono dia 02/01/2013 (quarta) ele tem que me trazer a venda de 04/01/2012 (quarta), mas isso não está acontecendo.

Criei a expressão DAYNAME(DTNOTA-364)... Ela me retorna a data que eu quero, mas não sei como colocá-la em um set analysis para trazer as vendas do mesmo período.

Desde já agradeço o empenho de todos

rphpacheco
Creator III
Creator III
Author

Desta forma eu apenas consigo pegar o valor de vendas do mesmo dia do ano passado. Mas o que preciso é comparar o mesmo dia da mesma semana do ano passado.
já criei uma variável setando o dia, mas na hora de realizar a soma atrvés do set analysis ele simplemente não funciona.

Já estou batendo platinado com essa questão rsrsrsrs
Abs.

matzenbacher
Creator II
Creator II

pois é cara.. depois que eu entendi o que tu queria que eu percebi a complicação.. mas deve ter um modo..

daqui a pouco alguem posta aí.

abs.

aderlanrm
Partner - Specialist
Partner - Specialist

Olá Raphael,

Da mesma forma que você criou os campos Dia, Mês e Ano, crie dimensão com a função WeekDay, Week e etc.

No objeto na tela, use as duas dimensões, Dia da semana e Ano por exemplo, deixando ano por útimo, e a expressão que desejar.

Em um objeto gráfico de barras por exemplo, serão criadas barras comparando a segunda dimensão com a primeira.

Recomendo ainda a criação de um grupo cíclico para ser usado no lugar da primeira dimensão, assim, você pode escolher se quer comparar ano com mês, por dia, por .... o que quiser.

Se puder, anexa o QVW que facilita a ajuda.

Grane abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dadose e Desenvolvedor
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
fernando_tonial
Employee
Employee

Olá Rafael,

Faz assim:

=Sum({$<DTNOTA={'$(=Date(DTNOTA-364,'DD/MM/YYYY'))'}>} Valor)

isso no caso de selecionar a apenas no campo DTNOTA.

Caso selecione a data nos campos deparados com Ano, Mês e Dia faça assim:

=Sum({$<Ano=, Mês=, Dia=, DTNOTA={'$(=Date(DTNOTA-364,'DD/MM/YYYY'))'}>} Valor)

Abraços

Tonial.

Don't Worry, be Qlik.