Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde Pessoa, tenho uma dúvida que parece simples,
Em uma tabela de saldos eu tenho a movimentação diária em formato data
01/01/2015
02/01/2015
e assim por diante, esta tabela esta ligada com a DIM_TEMPO da qual eu faço a seleção por dia_mes, mes_numero e ano_numero, ou seja, seleciono dia, mes e ano separadamente, no gráfico eu coloquei a seguinte fórmula:
sum(dia_do_mes={'$(=max(dia_do_mes)-1)'}>} saldo)
Assim o resultado é o valor do saldo do dia anterior, até aqui tudo ok, porém ao selecionar o primeiro dia do mes, ele não volta um dia anterior pois eu estou com a seleção do mes fixo pela tabela DIM_TEMPO,
uma forma que eu achei que funcionaria foi:
sum(data_movimento={'$(=max(data_movimento)-1)'}>} saldo)
porém não deu certo.
Alguma dica?
Hamilton, Faça assim .
Preciso entender o filtro do usuário :
Campo filtro do usuário é assim : 'DD/MM/YYYY' ou vc tem tudo quebrado ? Um campo com ano, um campo com dia, um campo com mês ?
Se tiver a data inteira para usuário
=if(MonthStart(NFE_Data), Monthend(AddMonths(NFE_Data,-1,-1)),sum(data_movimento='$(=max(data_movimento)-1)'}>} saldo))
Eu digo seguinte : Se a data que esta selecionada é o primeiro dia do Mes, então pego o ultimo do dia anterior.
Ai da pra jogar depois a sua expressão que você colocou no texto do post.
Vai ficar uma expressão Gigante, mas funciona.
Uma saída é você fazer no script com o comando PEEK.
Atenciosamente
Maicon Mello
May be like this:
sum(data_movimento={"$(=Date(max(data_movimento)-1, 'yourDateFormat'))"}>} saldo)
Best,
Sunny
Ola Hamilton, tens que utilizar o ADDMONTHS para que respeite essa situação.
Exemplo : =AddMonths(today()-1,0)
Att
Maicon Mello
Maicon,o today() pega a data atual, eu preciso que seja o dia anterior a seleção do usuário,
Assim como a Sunindia falou, também não funciona, se eu coloco a expressão
Date(max(data_movimento), 'DD/MM/YYYY') o resultado é = 01/03/2015, por exemplo, porém se eu coloco:
$(=Date(max(data_movimento), 'DD/MM/YYYY')) o resultado é 0,0001654259718... agora não sei o pq isso mas acho que esse é o problema.
Hamilton, boa tarde
Se vc esta com a seleção de mês fixa por um filtro, porem quer que exiba o dia anterior ao primeiro dia do mês, ou seja, o ultimo dia do mês anterior acredito que a fórmula seria.
sum({1<data_movimento={'$(=max(data_movimento)-1)'}>} saldo)
pois o 1 não considera o filtro selecionado com exceção da data que você esta colocando no set...
Nao custa tentar.
Abraços
Thiago, infelizmente eu preciso considerar alguns filtros, loja por exemplo, agora como eu disse
acredito que a formula
data_movimento={'$(=max(data_movimento)-1)'} não esta dando certo pois o resultado me retorna no formato numero e não data, agora se eu coloco data_movimento={'$(=date($(=max(data_movimento)-1)))'} ele me retorna um número estranho.
Bom vamos la!
primeira coisa verifique como o seu campo data_movimento está formatado..
Se a sua data estiver formatada neste formato DD/MM/YYYY. .tente a seguinte expressão.
sum({<data_movimento={'$(=date(max(data_movimento)-1) ) '}, campomes =, campoano =, campodia = >} saldo)
Isso vai fazer com que a sua expressão considere todos os filtros menos o mes, ano e dia, porem como ele vai assumir a data movimento estará certo..
Abraços.
Thiago, como falei, o comando $(=date(max(data_movimento)-1) ) me retorna 0,0001654259718 e não da tata formatada, por mais que eu coloquei DD/MM/YYYY esse é meu problema.
tenta sem formatar.
sum({<data_movimento={'$(=max(data_movimento)-1) '}, campomes =, campoano =, campodia = >} saldo)
Obrigado pela ajuda, mas olhe: