Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Bom dia pessoal, estou trabalhando em um projeto que consome dados do SAP, e estou trabalhando com dados que dizem respeito a alguns custos.
Para que possam entender o cenário, tenho dois campos com valores "PO Value" que é o valor da ordem de compra, linha a linha, e criei uma outra coluna totalizando que é a coluna "Repair Cost".(neste caso trato apenas custo de reparo).
Antigamente usava somente o campo PO Value(Também é filtrado apenas por reparo), porém os filtros influenciavam diretamente no valor total/acumulados pois poderiam ser retiradas linhas, deixando assim de compor o custo total.
Como solução criei a coluna calculada.
Meu problema agora é aplicar as mesmas expressões para realizar os mesmos calculos, porém com a coluna agregada.
Estou agregando por Notificação no momento.
Mas no exemplo a seguir preciso acumular em um intervalo de tempo(Ano Anterior vs Ano Atual por Ex)
Os totais gerais e com dimensçoes filtradas como por exemplo Organização, BU etc, funcionam.
Conteúdo das variaveis:
Period1 = '>='&date(YearStart(Today(),0),'DD/MM/YYYY')
Period2 = '>='&date(YearStart(today(),-1),'DD/MM/YYYY')&'<='&date(YearEnd(today(),-1),'DD/MM/YYYY')
Valores das variáveis
Period1 = '01/01/2018'
Period2 = '>= 01/01/2017 <= 31/12/2017'
Script set analysis
Ano Atual
Expressão Original
=if((sum({$<[MIGO Date]={"$(=$(vPeriod1))"}>} [PO Value (USD)])/1000000),
RangeSum(Above((sum({$<[MIGO Date]={"$(=$(vPeriod1))"}>} [PO Value (USD)])/1000000), 0, RowNo())),
0
)
Expressão nova:
=sum(Aggr((if((Date#([MIGO Date]))>=date(YearStart(Today(),0),'DD/MM/YYYY') ,[Repair Cost])),Notification))/1000000
Ano Anterior
Expressão Antiga:
sum({<[MIGO Date]={"$(=$(vPeriod2))"}>} [PO Value (USD)])/1000000
Expressão nova:
Assim fica não funciona
=sum(Aggr((if((Date#([MIGO Date]))>=Date(YearStart(today(),-1),'DD/MM/YYYY') and Date#([MIGO Date])<=Date(YearENd(today(),-1),'DD/MM/YYYY') ,[Repair Cost])),Notification))/1000000
Assim funciona, explicitando as datas(não entendo porque, já validei vários formatos de data)
=sum(Aggr((if((Date#([MIGO Date]))>='01/01/2017' and Date#([MIGO Date])<='31/12/2017' ,[Repair Cost])),Notification))/1000000
Caso alguém tenha alguma sugestão de como agregar valores de acordo com period utilizando uma dimensão "totalizada" ajudaria bastante.
Desculpem não poder compartilhar o QVW ou dados, é um informação sigilosa, talvez consiga criar algum mock de dados para ajudar.
Aguns prints do dado para ajudar:
If i understand correctly, You can follow like below
Sum(TOTAL <[MIGO Date]> Aggr(NODISTINCT sum ({<[MIGO Date] = {"$(=Date (YearStart (today (), - 1), 'DD / MM / YYYY'))", "$(=Date (YearENd (today (), - 1), 'DD / MM / YYYY'))"}>} [PO Value (USD)]),[Repair Cost], Notification)) / 1000000
Hello Anil,
Thanks for your reply, but not work for me.
The exp show correct in console but no show data.
--------------------/ ----------------------------
Olá Anil, obrigado pela resposta, mas não funcionou pra mim.
A expressão aparece como correta, mas não mostra valor no gráfico.
Pessoal, consegui uma breve evolução
Onde new exp ficou assim:
sum(aggr(if([MIGO Date]>=YearStart(today()-365) and [MIGO Date] <=YearEnd(today()-365),[Repair Cost]),Notification))/1000000
Porém ainda não é bem isso que preciso pois se eu fizer um filtro yeartodate ele não aparece os valores,no set consigo ignorar, fazendo assim ainda não consegui,
É possível?
Obrigado pelas respostas.
Segue print do gráfico.