Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
rodrigo_rocha
Contributor

Como buscar quantidade de dias dos meses anteriores II - A Revanche!!

Olá pessoal!!

A primeira parte dessa saga aconteceu aqui: Como buscar quantidade de dos meses anteriores!!

E como disse para o amigo Marcel, minha duvida foi parcialmente resolvida pois agora tenho um outro problema. A quantidade de dias que a expressão retorna é apenas a dos dias que o produto foi vendido, ou seja, se um produto foi vendido apenas hoje, essa quantidade de dias que aparece apenas para o mesmo é de 1 dia e não 30 dias do mês. Veja o exemplo abaixo:

Screenshot_11.png

No registro destacado em azul, como este produto foi vendido em todos os dias uteis do mês, ele apresenta 24 dias. Porém o registro destacado em vermelho que consta 23 dias, o produto não foi vendido em todos os dias uteis, sendo que em 1 dia o mesmo não teve venda.

Existe alguma função de calendário para que possa resolver este problema? Preciso que a mesma quantidade de dias seja contado em todos os registros mesmo que eles tenham sido vendidos em apenas 1 dia do mês. Lembro que também é preciso que esses dias sejam somados a medida que o usuário escolha mais de um mês na caixa de dados na parte superior da tela.

Desde já agradeço!!

Rodrigo Ramos Rocha

Tags (1)
1 Solution

Accepted Solutions
srchagas
Contributor III

Re: Como buscar quantidade de dias dos meses anteriores II - A Revanche!!

Tentou com e se floor

Coloca em objeto de texto e verifica como esta retornando a variavel

veja o exemplo que eu fiz.... pode se que ta dando merda na hora de voce passa a data deve ta indo numero e networkdays nao funciona

Data Formatada.PNG

Variaveis Data Formatada.PNG

=NetWorkDays('2017-01-01','2017-03-31')

Resultado Networkdays.PNG

17 Replies
srchagas
Contributor III

Re: Como buscar quantidade de dias dos meses anteriores II - A Revanche!!

Bom Dia Amigo


Duas opcoes para ti :

1 - NetWorkDays('01/10/2017','31/10/2017'), passe por duas variaveis a data inicial e final do messes

2 - Criar na master calendar os duas itens do Mes corrido: Master Calendar with Working days & Holidays Flag

rodrigo_rocha
Contributor

Re: Como buscar quantidade de dias dos meses anteriores II - A Revanche!!

Obrigado pela ajuda Thiago!!!

Porém não funcionou... ou não utilizei da maneira correta. O primeiro comando da o resultado da contagem 1 dia, mesmo colocando 2 meses ou mais. Já o segundo não adiantaria pois ele utiliza o campo data da minha aplicação e essa data possui o problema que eu descrevi acima.

Sera que estou utilizando da maneira correta?


Screenshot_12.png

Desde já agradeço!

Rodrigo Ramos Rocha

rodrigo_rocha
Contributor

Re: Como buscar quantidade de dias dos meses anteriores II - A Revanche!!

UP PLEASE!!!

MarcoARaymundo
Contributor III

Re: Como buscar quantidade de dias dos meses anteriores II - A Revanche!!

Bom dia!

Se eu entendi, deve ser algo assim que você quer.

QtdeDias.png


Pelo campo DataCompra identifico o mês anterior e gero um campo chave (pk_mesref) com a tabela que tem a qtde de dias por mês (QtDiasMes).

Tenta adaptar ao seu script.

QtDiaMes:

LOAD * INLINE [

pk_mesref,QtdDias

N1,31

N2,28

B2,29

N3,31

N4,30

N5,31

N6,30

N7,31

N8,31

N9,30

N10,31

N11,30

N12,31

];

FATO:

LOAD

DataCompra,

AddMonths(DataCompra, -1) as MesAnt,

If((Mod(Year(AddMonths(DataCompra, -1)),400)=0 or (Mod(Year(AddMonths(DataCompra, -1)),4)=0 and Mod(Year(AddMonths(DataCompra, -1)),100) > 0)) and Num(Month(AddMonths(DataCompra, -1))) = 2 ,

'B',

'N'

) & Num(Month(AddMonths(DataCompra, -1))) as pk_mesref,

Valor

;

LOAD * INLINE [

DataCompra,Valor

10/02/2012,150

05/01/2017,333

15/03/2017,231

24/05/2017,652

];

Abraços!

srchagas
Contributor III

Re: Como buscar quantidade de dias dos meses anteriores II - A Revanche!!

Como voce usou o networkDays?

voce pode usar como uma expressao passando a data inicial e a final, ele  vai ignorar tudo e vai fazer o network days.

Note que eu usei o MonthStart e Month End

Assim pego a data inicial e final do mes independente da data selecionada.


Segue um exmeplo pra voce se guiar.

rodrigo_rocha
Contributor

Re: Como buscar quantidade de dias dos meses anteriores II - A Revanche!!

Valeu Thiago... mas teria como vc me passar o codigo que esta no qvw em outro formato? Não consigo abrir arquivos feitos de outro usuario aqui no meu serviço... Não tenho permissão... Pode ser em txt mesmo

Obrigado!

srchagas
Contributor III

Re: Como buscar quantidade de dias dos meses anteriores II - A Revanche!!

Beleza

Segue o exemplo

teras algo semelhante a isso aqui :

Texte Object 1:

= 'Data Inicial: ' & vDataInicioMes

vDataInicioMes =  =MonthStart(Today())

text Object 2:

= 'Data Final: ' & vDataFimMes

vDataFimMes = =MonthEnd(Today())

Text Object 3:

= 'NetWorkdays do mes: '  & NetWorkDays(vDataInicioMes,vDataFimMes)

NetWorkDays.PNG

rodrigo_rocha
Contributor

Re: Como buscar quantidade de dias dos meses anteriores II - A Revanche!!

Thiago...

Me desculpe pela encheção de saco cara... Mas verificando aqui eu entendi que vai funcionar com o mês corrente. Ira funcionar se o usuário escolher esse mês e o mês passado totalizando 30 dias? (Novembro 5 dias; Outubro 25 dias)

Obrigado!!

srchagas
Contributor III

Re: Como buscar quantidade de dias dos meses anteriores II - A Revanche!!

Funciona Sim e so voce mudar para o "MaxData"

imagina assim, tu tens uma dimensao de data certo ? um campo chamado "Data" formado em DD/MM/YYYY

faca um Max dele seria assim:

1 - Criar uma variavel com max data, exemplo:

vMaxDataCorrente =  =Max(Data)

2- Fazer a Data Inicial do Mes:

vMaxInicioMes =  =MonthStart(vMaxDataCorrente)

vMaxFimMes =  MonthEnd(vMaxDataCorrente)

vDiasUteisMes = NetworkDays(vMaxInicioMes ,vMaxFimMes)