Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
pamelastephanie
New Contributor II

Última sexta feira do mês

Pessoal, boa tarde!

Estou precisando pegar a última sexta feira do mês. É possível fazer isso?

Mais precisamente, do mês de novembro (Black Friday).

A ideia é o usuário clicar num botão com o nome Black Friday e mostrar comparativos do ano atual com o ano passado.

Tags (1)
1 Solution

Accepted Solutions
felipedl
Valued Contributor III

Re: Última sexta feira do mês

Olá Pamela,

Pegando o código do calendário mestre da comunidade

Master Calendar Generation Script

fiz o seguinte script:

CalendarMaster:

LOAD

    Date(floor(Data)) AS Data,

    Year(Data) AS Year,

    'Q' & Ceil(Month(Data) / 3) AS Quarter,  

    Month(Data) As Month,

    Day(Data) As Day,

    Week(Data) As Week,

    WeekDay(Data) as WeekDayName;

Load Date(MinDate + IterNo() -1 ) AS Data While (MinDate + IterNo() - 1) <= Num(MaxDate);

Load

    // 06/07/2009

     40000 AS MinDate,

    Today() AS MaxDate

AutoGenerate(1);

// seleciona a maior data do mês de novembro onde é sexta-feira

tmp:

Load

Year,

Month,

WeekDayName,

Date(max(floor(Data)),'DD/MM/YYYY') as Teste

Resident CalendarMaster

where WeekDayName = 'sex' and Month = 'nov'

group by

Year,

Month,

WeekDayName;

left join (CalendarMaster)

Load

Teste as Data,

1 as [Flag Black Friday]

Resident tmp;

Isso retorna o seguinte

sample.png

7 Replies
thiago_justen
Valued Contributor III

Re: Última sexta feira do mês

Pamela,

Com esse script crie o calendário(afurtado):

LET vDateMin   = Num(MakeDate(year(Today())-1,1,1));

LET vDateMax   = Num(MakeDate(year(Today()),12,31));

TempCalendario:

LOAD 

Date($(vDateMin) + RowNo() - 1)  AS TempDate

AUTOGENERATE 1

WHILE $(vDateMin)+IterNo()-1<= $(vDateMax);

Calendario:

LOAD

         Date(TempDate,'DD/MM/YYYY')                 AS Calendario_Data,

         Year(TempDate) AS Ano,

        WeekDay(TempDate) AS DiaSemana,

        Day(TempDate) AS Dia,

        Month(TempDate) AS Mes 

Resident TempCalendario;

drop table TempCalendario;

Com essa fórmula você terá a última sexta-feira de novembro do mês corrente.

max({<Mes={"nov"},DiaSemana={"sex"},Ano={'$(=max(Ano))'}>}Calendario_Data)

E com essa a do ano anterior:

max({<Mes={"nov"},DiaSemana={"sex"},Ano={'$(=max(Ano)-1)'}>}Calendario_Data)

Por aí dá pra ter uma ideia. O que você acha?

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
felipedl
Valued Contributor III

Re: Última sexta feira do mês

Olá Pamela,

Pegando o código do calendário mestre da comunidade

Master Calendar Generation Script

fiz o seguinte script:

CalendarMaster:

LOAD

    Date(floor(Data)) AS Data,

    Year(Data) AS Year,

    'Q' & Ceil(Month(Data) / 3) AS Quarter,  

    Month(Data) As Month,

    Day(Data) As Day,

    Week(Data) As Week,

    WeekDay(Data) as WeekDayName;

Load Date(MinDate + IterNo() -1 ) AS Data While (MinDate + IterNo() - 1) <= Num(MaxDate);

Load

    // 06/07/2009

     40000 AS MinDate,

    Today() AS MaxDate

AutoGenerate(1);

// seleciona a maior data do mês de novembro onde é sexta-feira

tmp:

Load

Year,

Month,

WeekDayName,

Date(max(floor(Data)),'DD/MM/YYYY') as Teste

Resident CalendarMaster

where WeekDayName = 'sex' and Month = 'nov'

group by

Year,

Month,

WeekDayName;

left join (CalendarMaster)

Load

Teste as Data,

1 as [Flag Black Friday]

Resident tmp;

Isso retorna o seguinte

sample.png

thiago_justen
Valued Contributor III

Re: Última sexta feira do mês

Muito massa seu script Felip!

Anotado aqui...

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
pamelastephanie
New Contributor II

Re: Última sexta feira do mês

Felip e Thiago,

muito obrigada pela ajuda!

Adaptei meu script assim como o felipedl‌ sugeriu e funcionou perfeitamente!

Obrigada!

felipedl
Valued Contributor III

Re: Última sexta feira do mês

Maravilha Pamela,. que bom que ajudou

felipedl
Valued Contributor III

Re: Última sexta feira do mês

Valeu hehe, que bom que ajudou pra você também Thiago .

thiago_justen
Valued Contributor III

Re: Última sexta feira do mês

Sem dúvidas Felip!!! Excelente dica...

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