Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa noite pessoal,
Como faço para "pegar" apenas os dias úteis do mês corrente, ou seja, até 10 de outubro?
Obrigado desde já.
Desculpa a falta de detalhamento na minha resposta...foi pelo celular e bem rápida mesmo.
O WeekDay < 5 indica (se nada foi alterado na seção main) que queremos apenas os dias úteis. Veja o help:
Pode aproveitar teu MasterCalendar e fazer assim:
MasterCalendar:
Load
TempDate as [data_emissao],
week(TempDate) As semana,
Year(TempDate) As Ano,
Month(TempDate) As Mês,
Day(TempDate) As dia,
(Year(TempDate)-1) * 12 + num(month(TempDate)) as PeriodoID,
ApplyMap('QuartersMap', Month(TempDate),Null()) as Quarter,
MonthName(TempDate) as MesAno,
Week(weekstart(TempDate)) & '-' & WeekYear(TempDate) as semanaano,
If(TempDate<=Today(),1,0) AS FlgRealizado,
If(TempDate>=Today(),1,0) AS FlgProjetado,
WeekDay(TempDate) as diasemana,
If(WeekDay(TempDate)<5,'Sim','Não') as DiaUtil,
num(TempDate) as DataEmissao#
Resident TempCalendar;
Drop Table TempCalendar;
Vi em um outro post que um amigo estava com problemas parecidos e você informou que utiliza planilhas e insere informações também via script...poderia compartilhar conosco o passo a passo ou compartilhar a planilha e o script... estou com grande dificuldade em trazer dias úteis e feriados...
att,
Josh,
Pode criar no teu script uma flag para dias úteis (há diversas outras formas de fazer isso):
Sua_Tabela:
Load
OutrosCampos,
If(WeekDay(CAMPO_DATA)<5, 'Sim','Não') as DiaUtil
From SuaBase;
Daí na tela bastaria na sua medida aplicar o set analysis com o campo DiaUtil. Exemplo:
Sum({<DiaUtil={'Sim'},CampoData={">=$(=MonthStart(Today()))"}>}Valor)
Essa medida soma o campo Valor apenas nos dias úteis (DiaUtil={'Sim'}), para o mês corrente (CampoData={">=$(=MonthStart(Today()))"})
Olá Thiago,
Agradeço pela ajuda... vou implementar e verificar os resultados... poderia só me explicar o pq "<5"?
No caso estamos em outubro...dia 11... como faria para trazer apenas os dias úteis em relação a esses 11 dias? O projetado consegui fazer...
estou utilizando Master Calendar... continuo utilizando o MonthStart?
MasterCalendar:
Load
TempDate as [data_emissao],
week(TempDate) As semana,
Year(TempDate) As Ano,
Month(TempDate) As Mês,
Day(TempDate) As dia,
(Year(TempDate)-1) * 12 + num(month(TempDate)) as PeriodoID,
ApplyMap('QuartersMap', Month(TempDate),Null()) as Quarter,
MonthName(TempDate) as MesAno,
Week(weekstart(TempDate)) & '-' & WeekYear(TempDate) as semanaano,
If(TempDate<=Today(),1,0) AS FlgRealizado,
If(TempDate>=Today(),1,0) AS FlgProjetado,
WeekDay(TempDate) as diasemana,
num(TempDate) as DataEmissao#
Resident TempCalendar;
Drop Table TempCalendar;
Obrigado desde já.
Desculpa a falta de detalhamento na minha resposta...foi pelo celular e bem rápida mesmo.
O WeekDay < 5 indica (se nada foi alterado na seção main) que queremos apenas os dias úteis. Veja o help:
Pode aproveitar teu MasterCalendar e fazer assim:
MasterCalendar:
Load
TempDate as [data_emissao],
week(TempDate) As semana,
Year(TempDate) As Ano,
Month(TempDate) As Mês,
Day(TempDate) As dia,
(Year(TempDate)-1) * 12 + num(month(TempDate)) as PeriodoID,
ApplyMap('QuartersMap', Month(TempDate),Null()) as Quarter,
MonthName(TempDate) as MesAno,
Week(weekstart(TempDate)) & '-' & WeekYear(TempDate) as semanaano,
If(TempDate<=Today(),1,0) AS FlgRealizado,
If(TempDate>=Today(),1,0) AS FlgProjetado,
WeekDay(TempDate) as diasemana,
If(WeekDay(TempDate)<5,'Sim','Não') as DiaUtil,
num(TempDate) as DataEmissao#
Resident TempCalendar;
Drop Table TempCalendar;
Thiago,
Muito obrigado pelo retorno... estou implementando e me deparei com algo engraçado... ao invés do qlik excluir os dias 6 e 7 de outubro que seria sábado e domingo, respectivamente, ele está tirando 5 e 6... sexta feira e sábado...saberia informar o pq?


Thiago bom dia.
Existe alguma forma de considerarmos os feriados também? Atualmente possuo uma tabela com todas as datas de feriados.
Obrigado
Imagino que na seção Main do seu script a variável FirstWeekDay esteja o problema...
Mas adapte a expressão do script para:
If(WeekDay(TempDate,6)<5,'Sim','Não') as DiaUtil,
Murilo,
Se você possui uma tabela com feriados aí fica mais fácil. Exemplo para o seu caso:
Feriados:
Mapping
Load
DataFeriado,
NomeFeriado
From SuaTabelaFeriados;
TabelaFato:
Load
OutrosCampos,
ApplyMap('Feriados',CampoData) as Feriado, //Aqui, se não for feriado o retorno é null
If(WeekDay(CampoData)<5 and IsNull(Peek(Feriado)), 'Sim','Não') as DiaUtil
From SuaTabelaFeriados;
Oi Murilo
Pode adicionar os feriados que possui como um map antes do calculo do dia da semana
Primeiro realiza um mapping load da relação das datas que são feriados
MAP_FERIADOS:
Mapping Load
dia, 'Não'
FROM [lib://seu_arquivo_com_os_feriados..];
Depois adiciona na formula uma busca dos casos que sua data esta na listagem anterior, caso contrario aplica a formula que o Thiago passou anteriormente
ApplyMap('MAP_FERIADOS', TempDate, If(WeekDay(TempDate,6)<5,'Sim','Não')) as DiaUtil,