Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal, boa tarde.
Preciso mostrar em uma tabela dinâmica as informações de acordo com a data selecionada pelo usuário no filtro de datas, porém além das informações do dia escolhido, também preciso mostrar as informações referentes a 4 semanas anteriores. Por exemplo :
- Selecionei no filtro o dia 26/04/2015
- Na tabela, preciso mostrar os resultados de 26/04/2015, 19/04/2015, 12/04/2015, 05/04/2015 e 29/03/2015.
Fiz alguns testes utilizando o autogenerate, mas ainda não consegui chegar no resultado correto.
Alguém já passou por um problema semelhante ?
Obrigado !
Dessa forma o intervalo não vai funcionar mesmo, tente assim:
SET vDataSelecionada = =DATA;
SET vData1 = =Date(ONLY(DATA)-2, 'DD/MM/YYYY');
SET vData2 = =Date(ONLY(DATA)-4, 'DD/MM/YYYY');
SET vData3 = =Date(ONLY(DATA)-6, 'DD/MM/YYYY');
SUM( {<DATA = {'$(vDataSelecionada)','$(vData1)','$(vData2)','$(vData3)'} >} VALOR)
Caue, acredito que você consegue resolver isso com um simples set analysis,
segue um exemplo:
SUM( {<CAMPO_DATA = {">$(vFirstPeriod) <$(=vLastPeriod)"} >} CAMPO)
As variáveis vão receber o intervalo que necessita.
SET vLastPeriod = =CAMPO_DATA
SET vFirstPeriod = Date(WeekStart('$(vLastPeriod)'-28), 'DD/MM/YYYY');
Yuri,
Primeiramente obrigado pela ajuda !
Eu tentei fazer da seguinte forma :
- No meu load, criei o campo das datas utilizando a expressão que você me passou
LOAD
filial,
ordemserv,
dt_abertura,
year(dt_abertura) as ano_abertura_os,
month(dt_abertura) as mes_abertura_os,
day(dt_abertura) as dia_abertura_os,
Date(WeekStart(dt_abertura-28), 'DD/MM/YYYY') as evolucao_os,
faixa_os,
consultor,
cliente_os,
tipo_os,
valor_os
FROM
- Depois inclui o campo evolucao_os como dimensão no meu gráfico.
Quando seleciono somente ano e mês no filtro de datas está funcionando corretamente, porém se seleciono ano mês e dia, não traz as semanas anteriores. Lembrando que eu precisaria trazer a data selecionada no gráfico também, e não só as semanas anteriores.
Sabe me dizer onde eu devo estar errando ?
Abs
Caue
Caue, você precisa criar a variável e não o campo
SET vLastPeriod = =CAMPO_DATA
SET vFirstPeriod = Date(WeekStart('$(vLastPeriod)'-28), 'DD/MM/YYYY');
Depois você cria um gráfico colocando na dimensão o seu campo de data (DD/MM/YYYY) e coloca o modelo da expressão que te passei SUM( {<CAMPO_DATA = {">$(vFirstPeriod) <$(=vLastPeriod)"} >} CAMPO).
Caso tenha mais dificuldades me informe que posso te enviar um modelo de como se fazer
Yuri,
Se você puder me enviar um modelo eu lhe agradeço, assim posso entender melhor o funcionamento.
Muito Obrigado!
Caue.
No meu exemplo eu coloquei para pegar somente 2 dias para trás, ok?
É mais para você entender como se deve fazer
Yuri,
Observei duas coisas:
- Utilizando o weekstart na variável vFirstPeriod, as datas ficam diferentes pois dependendo o dia que eu seleciono preciso saber a posição 7 dias atrás mesmo que não for começo de semana.
- A expressão retorna todos os resultados quando a data estiver entre vFirstPeriod e vLastPeriod , sendo que eu só preciso mostrar 5 resultados (data selecionada, data selecionada - 7, data selecionada -14, data selecionada -21, data selecionada -28).
O ideal seria criar 5 variáveis (uma para cada data citada) ? Como ficaria a expressão para retornar a soma somente para essas datas ?
Muito Obrigado !
Caue.
Dessa forma o intervalo não vai funcionar mesmo, tente assim:
SET vDataSelecionada = =DATA;
SET vData1 = =Date(ONLY(DATA)-2, 'DD/MM/YYYY');
SET vData2 = =Date(ONLY(DATA)-4, 'DD/MM/YYYY');
SET vData3 = =Date(ONLY(DATA)-6, 'DD/MM/YYYY');
SUM( {<DATA = {'$(vDataSelecionada)','$(vData1)','$(vData2)','$(vData3)'} >} VALOR)
Yuri,
Era isso mesmo. Agora aparecem somente as datas que eu preciso.
Agradeço novamente pela ajuda !
Caue.