Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
antoniodneto
Creator II
Creator II

Dúvida com fórmula

Pessoal,

Boa tarde.

Estou com uma fórmula no QLIK que não estou conseguindo selecionar, na teoria seria:

soma da PDD dos 12 ultimos meses dividido pela média do risco dos 12 ultimos meses



Não estou conseguindo colocar essa condição dentro da expressão.


Obrigado pela ajuda

Labels (1)
17 Replies
nicolett_yuri

Vou gerar um exemplo para você

nicolett_yuri

Segue o exemplo do AsOf para acumular 12 meses a partir do que foi selecionado

Thiago_Justen_

Antonio,

A resolução do Yuri te atendeu? Se sim, por favor, encerre a thread e marque a resposta dele como correta.

Do contrário, avise-nos para que possamos lhe ajudar.

Abs e Sucesso!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
antoniodneto
Creator II
Creator II
Author

Oi Thiago! Ainda não porque o arquivo disponibilizado pelo Yuri não permite carregar, acho que por ser QlikView.

Thiago_Justen_

Exatamente Antonio. O Yuri te mandou um qvw (extensão de arquivos do QlikView). Como você utiliza o Sense, a extensão utilizada é a qvf.

Embora no editor de script do Sense daria pra usar o Binary pra ler o arquivo e "consumir" os dados que o Yuri utilizou.

Mas enfim, segue o script que o nicolett.yuri‌ te mandou:

///$tab f. CriaCalendario

SUB CriaCalendario(vDataInicio,vDataFim,vNomeCalendario)

  LET vNomeCalendario = If(Len('$(vNomeCalendario)')=0,'Calendario','$(vNomeCalendario)');

  [$(vNomeCalendario)]:

LOAD

        Distinct

        Year(Data_) as [Ano_],

        Month(Data_) as [Mes_],

        Date(MonthStart(Data_), 'MMM/YYYY') as [MesAno_];

LOAD

Date('$(vDataInicio)'+(Iterno()-1),'$(DateFormat)' ) as Data_

    AutoGenerate 1 While (Num('$(vDataInicio)')+(Iterno()-1)<= Num('$(vDataFim)'));

ENDSUB;

///$tab CalendarioAsOf

TRACE ;

TRACE

**********************************************************************

//Criando o calendário

LET vDataInicio = MakeDate(2016,1,1);

LET vDataFim = MakeDate(2017,12,31);

Call CriaCalendario('$(vDataInicio)','$(vDataFim)','Calendario')

AsOfCalendario:

LOAD

      Distinct    

      MesAno_ as pk_Calendario,

      Ano_ as Ano,

      Mes_ as Mes,

    

      MesAno_ as MesAno,

      Ano_ as AsOfAno,

      Mes_ as AsOfMes,

    

      MesAno_ as AsOfMesAno,

      1 as FlagAsOfCalendarioComum

RESIDENT Calendario;

/* Calendário AsOf de 12 meses anteriores em relação ao selecionado. */

CONCATENATE (AsOfCalendario)

AsOf12Meses:

LOAD

*

WHERE

pk_Calendario >= MonthStart(AddMonths(AsOfMesAno,-12));

LOAD

DISTINCT

Date(MonthStart( AddMonths(MesAno_, 1 - IterNo())), 'MMM/YYYY') as pk_Calendario,

MesAno_ as MesAno,

Ano_ as Ano,

Mes_ as Mes,

    

MesAno_ as AsOfMesAno,

Ano_ as AsOfAno,

Mes_ as AsOfMes,

    

1 as FlagAsOf12Meses

RESIDENT Calendario

WHILE num( MonthStart( AddMonths(MesAno_, 1 - IterNo()))) >= '$(vDataInicio)';

DROP TABLE Calendario;

///$tab Tabela Fato

Fato:

LOAD

pk_Calendario,

Rand() as Valor,

Pick(Ceil(3*Rand()),'A','B','C') as Produto

RESIDENT AsOfCalendario

WHERE

FlagAsOfCalendarioComum = 1;

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
nicolett_yuri

Obrigado Thiago!

Ainda me confundo se o usuário esta usando Sense ou View rsrsrs

Thiago_Justen_

Imagina mestre, estamos aí pra isso!

Confesso que esse teu exemplo foi muito útil pra mim também. Sem perceber tenho uma questão a resolver parecida e que provavelmente vou utilizar dessa dica.

Portanto, eu que te agradeço!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago
Thiago_Justen_

Antônio,

Alguma das respostas acima solucionou seu problema?

Se sim,  não deixe de fechar a thread.

Abs e Sucesso!

Thiago Justen Teixeira Gonçalves
Farol BI
WhatsApp: 24 98152-1675
Skype: justen.thiago