Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
brunoducatti
Creator
Creator

Contar dias do mes intervalo

Pessoal, como contar no qlikview a quantidade de dias de 1 mês, considerando que possuo apenas um  intervalo de datas que pode ser entre meses diferentes.

Exemplo:

Tenho uma tabela de ferias com intervalo:

16/06/2015 até 17/07/2015.

Com base nisso, preciso ter uma tabela com o ano, mês e quantos dias possui no intervalo. Ficaria:

2015,

06,

15 (dias).

2015,

07,

17 (dias)

Grato,

Bruno

1 Solution

Accepted Solutions
aderlanrm
Partner - Specialist
Partner - Specialist

Olá Bruno,

Segue uma alternativa que talvez seja útil.

Dados:

LOAD Início, Término+1 as Término INLINE [

    Início, Término

    16/6/15, 17/7/15

    10/6/15, 29/6/15

];

Férias:

LOAD Distinct Year(Início) as Ano,

    Month(Início) as Mês,

    Round(If(Término>MonthEnd(Início),MonthEnd(Início),Término)-Início) as Dias

Resident Dados;

Concatenate (Férias)

LOAD Year(Término) as Ano,

    Month(Término) as Mês,

    Round(Término-If(Início<MonthStart(Término),MonthStart(Término),Início)) as Dias

Resident Dados;

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)

View solution in original post

8 Replies
robert_mika
Master III
Master III

LOAD

Hol,

Year(Hol) as year,

Month(Hol) as month

FROM

(ooxml, embedded labels, table is Sheet1)

;

final:

load

year,

month,

count(Hol) as Dias

resident Data

Group by month,year;

drop table Data;

2015-07-27_201314.png

Feeling Qlikngry?

How To /Missing Manual(18 articles)

brunoducatti
Creator
Creator
Author

Robert, primeiramente obrigado.

No caso da sua planilha constam todos os dias.

Na minha tabela só tenho a data inicial e final. Os demais dias não estão preenchidos, possuo em tabela apenas o primeiro e o ultimo dia do intervalo.

Alguma sugestão para este caso?

robert_mika
Master III
Master III

Data:

load

num(Min(Date#(Hol)))as MinDate,

num(max(Date#(Hol)))as MaxDate

inline [

Hol

16/06/2015,

17/07/2015

]

;

let MinDate=Peek('MinDate',0,'Date');

let MaxDate=Peek('MaxDate',0,'Date');

temp:

load

Year($(MinDate)+IterNo()-1) as Year,

Month($(MinDate)+IterNo()-1) as Month,

date($(MinDate)+IterNo()-1) as Dias

AutoGenerate (1)

WHILE $(MinDate) + IterNo() - 1 <= $(MaxDate)

;

final:

load

Year,

Month,

count(Dias) as dias

resident temp

Group by Month,Year;

drop table temp;

2015-07-27_212648.png

aderlanrm
Partner - Specialist
Partner - Specialist

Olá Bruno,

Segue uma alternativa que talvez seja útil.

Dados:

LOAD Início, Término+1 as Término INLINE [

    Início, Término

    16/6/15, 17/7/15

    10/6/15, 29/6/15

];

Férias:

LOAD Distinct Year(Início) as Ano,

    Month(Início) as Mês,

    Round(If(Término>MonthEnd(Início),MonthEnd(Início),Término)-Início) as Dias

Resident Dados;

Concatenate (Férias)

LOAD Year(Término) as Ano,

    Month(Término) as Mês,

    Round(Término-If(Início<MonthStart(Término),MonthStart(Término),Início)) as Dias

Resident Dados;

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
nicolett_yuri

Como que você faz para adicionar um código com esses marcadores de linhas? Sério... não sei fazer isso rsrs!

aderlanrm

Not applicable

Assim Yuri Nicolett:

Clica nessa Seta azul do Avanced post Syntax Hightling e escolher a lingaguem

Yuri Nicolett

Print Cod.png

aderlanrm
Partner - Specialist
Partner - Specialist

É como Julio mostrou Yuri, eu sempre escolho SQL como linguagem, mas deveria ter a opção Qlik ali na lista.

Abraço.

Aderlan Rodrigues
Analista, Arquiteto de Dados e Piloto Amador Drone FPV
 (41) 9 9917-0869  www.BIdeAZ.com.br  Youtube.com/bideaz  Instagram.com/bideaz.in

"Nada é tão inútil quanto fazer eficientemente o que não deveria ser feito." (Peter Drucker)
nicolett_yuri

Boa!

Não sabia dessa!!

Muito obrigado!!