Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa tarde pessoal,
Estou com a seguinte dúvida. Como eu trago o valor do mes (jan,fev,mar e etc) ao invés do numero do mês ? Creio que ficou claro.
Sum({< Mes = {$(=Max(Mes))}>}TotalDue) / Sum({< Mes = {$(=Max(Mes) - 1)}>}TotalDue)
att. Daniel Veloso
No seu caso, crie um campo numérico no seu script que vai dar tudo certo
Year(OrderDate) as Ano,
Month(OrderDate) as Mês,
Num(Month(OrderDate)) as MesNum,
E depois
Sum({< MesNum = {$(=Max(Mes))}>}TotalDue) / Sum({< MesNum= {$(=Max(Mes) - 1)}>}TotalDue)
Boa tarde Daniel,
Deixe-me ver se entendi bem... Você deseja o valor total de um determinado mês para usar na expressão? Diga-nos que resultado deseja, o que você deseja contabilizar?.
Se possível poste um qvw com parte dos dados para que possamos lhe ajudar melhor.
Felicidades...
=Month('10/10/1995')
Retorna 'out' -> Nome do mês
Mas não faz sentido trabalhar com dados não-numéricos numa expressão SET.
Abs
Se campo mês é uma string ou um dual?
Ah tá! Agora entendi!
A função Month faz isso mesmo. Faz o seguinte:
Formata o resultado com a função Num, assim ó: Num(Month('10/10/1995'), '0') Assim você obterá o número do mês ao invés do nome abreviado.
Felicidades...
Foi aplicado o metodo month numa variavel data, e ela me retorna o mes em string.
A expressao abaixo objetiva mostrar a evoluçao do mes atual referente ao mes anterior:
Sum({< Mes = {$(=Max(Mes))}>}TotalDue) / Sum({< Mes = {$(=Max(Mes) - 1)}>}TotalDue)
Mas para comparação "< Mes = {$(=Max(Mes))}>". é preciso transformar o Mes em numero(Pois ele está em string). E o Max(mes) me retorna um inteiro.
Ficou mais claro ?
Segue em anexo o qvd na publicação principal.
O que seria Dual ?
Att. Daniel Veloso
Um exemplo: um campo data é um "dual"
Você vê 14/12/2016, mas internamente o Qlik armazena 42718 (quantidade de dias desde 31/12/1899).
=month(Today()) retorna 'dez', certo? Mas internamente ele armazena 12
=num(month(Today()))
No seu caso, crie um campo numérico no seu script que vai dar tudo certo
Year(OrderDate) as Ano,
Month(OrderDate) as Mês,
Num(Month(OrderDate)) as MesNum,
E depois
Sum({< MesNum = {$(=Max(Mes))}>}TotalDue) / Sum({< MesNum= {$(=Max(Mes) - 1)}>}TotalDue)
Oi Daniel,
Se o seu objetivo é exibir uma evolução em relação ao mês anterior você deve trabalhar com as datas inteiras, caso contrário você não obterá uma resposta correta quando iniciar um novo ano. Para isso use a Seguinte expressão:
(Sum(If(InMonth('$(=Max(Total OrderDate))',OrderDate,0),TotalDue)) //Soma dos valores do maior mês da seleção atual
/
Sum(If(InMonth(AddMonths('$(=Max(Total OrderDate))', -1),OrderDate,0),TotalDue)) //Soma dos valores do segundo maior mês da seleção atual
)-1 //Subtração de 1 para que o percentual de aumento ou queda seja correto
Veja como fica uma tabela demonstrando os resultados:
Também anexei seu qvw com essa alteração para que você possa analisar melhor.
Torço para essa expressão possa atender suas necessidades.
Felicidades...