- 21 Nov 2021 às 11:42
#67996
Mestres, bom dia!
Estou passando por alguns probleminhas em chegar ao resultado esperado a fim de consolidar um "sistema" de banco de horas para o setor em que trabalho.
1º Problema:
- Na consulta fSobreaviso, tenho 5 (cinco) colunas - Servidor, Data, Observação, Início Sobreaviso e Fim Sobreaviso.
- As colunas Início Sobreaviso e Fim Sobreaviso foram criadas a partir das informações entre parênteses da coluna Observação. Porém, os valores inseridos nestas colunas partem da função "Texto Inserido Entre os Delimitadores" como etapa. Com isso, mesmo convertendo esses valores para hora, não consigo (dá erro da fórmula) criar uma coluna personalizada com o seguinte roteiro: SE o valor da coluna Início do Sobreaviso for maior que o valor da coluna Fim do Sobreaviso, então (24:00 - Início Sobreaviso) + Fim Sobreaviso, caso contrário, Fim Sobreaviso - Início do Sobreaviso. Por exemplo: se o sobreaviso iniciou às 20:00 do dia 20/11/2021 e terminou às 08:00 do dia 21/11/2021, o resultado esperado seria 12:00 para que eu pegue esse valor e divida por 3, obtendo o total de 4h contabilizadas como horas trabalhadas. Ou seja, para cada 3h em sobreaviso é contabilizada 1h como hora trabalhada. Outro exemplo do resultado seria se o sobreaviso se iniciasse às 08:00 e fosse até às 20:00, bastaria subtrair 20 - 8 = 12, também contabilizando-se 3h como hora trabalhada.
2º Problema:
- Preciso calcular a carga horária mensal a ser trabalhada por cada servidor, por mês. O cálculo é feito da seguinte forma: para cada dia útil, contabiliza-se 8h. Com isso, num mês com 23 dias úteis, o servidor dele trabalhar 184h;
- Porém, tenho a questão dos afastamentos a considerar. Nos afastamentos do tipo férias e do tipo deslocamento para nova sede, é necessário considerar esses dias como não útil. Exemplo: caso o servidor esteja de férias de 1 a 10 no mês de dezembro de 2021, o quantitativo total a ser trabalhado seria de 120h (15 dias úteis x 8h). Ou seja, o cálculo dos dias úteis foi considerado do dia 11 ao dia 31 de dezembro de 2021. A mesma coisa ocorreria com o afastamento de deslocamento que englobasse o período de 25 de setembro de 2021 a 24 de outubro de 2021. Neste caso, as horas a trabalhar no mês de setembro seria de 136h (17 x 8) e no mês de outubro de 40h (5 x 8).
- Outra coisa, tenho duas tabelas no modelo de dados, quais sejam: fFeriados_Nacional e fFeriados_Local. No caso em tela, tenho que considerar os feriados, logicamente, para chegar ao quantitativo de dias úteis de determinada faixa entre datas.
3º Problema:
- Com relação às LTS (Licença para Tratamento da Própria Saúde), tenho duas regras a serem aplicadas em cada caso. A primeira regra é a seguinte: se o servidor iniciar o mês já te LTS, tenho que pegar esse período e considerar dia não útil. Se o servidor iniciar a LTS no decorrer do mês, pego esse período e verifico quantos serviços ele estava escalado. A cada serviço escalado, verifico quantas horas estavam previstas para esses serviços (se de 12h, de 8h ou 24h). Para cada dia de escalação do servidor, contabiliza-se, justamente, as horas para as quais ele estava escalado antes de apresentar o atestado.
Exemplo 1: No mês de agosto de 2021, determinado servidor entrou com LTS de 15 a 19 estando de serviço 24h e no dia de início e fim do atestado. Contabiliza-se 48h como se trabalhado tivesse.
Exemplo 2: no mês de agosto de 2021, determinado servidor entrou com LTS de 25 de agosto a 4 de setembro. Do dia 25 a 31 de agosto o servidor havia previsão de tirar dois serviços de 24h, 25 e 29. Contabiliza-se 48h tal qual o primeiro exemplo, e, complementarmente, de 1 a 4 de setembro, considera dia não útil.
Inicialmente, eu havia pensado em fazer uma tabela "personalizada" para cada servidor, "juntando" as tabelas fFeriados_Nacional, fFeriados_Local e fAfastamentos_DiasUteis_PDI (Lista) a fim de calcular a quantidade de dias úteis entre duas datas, contudo, achei que iria ficar muito trabalhoso e peço a ajuda de vocês para chegar a uma solução.
Ao final, preciso que eu tenha adicionada à consulta fHoras_TrabalhadasTotal_PDI às colunas: "Horas Contabilizadas Sobreaviso" (que é o resultado do período em que o servidor esteve de sobreaviso dividido por 3), "Qtde Carga Horária Mensal (h)" (que seria o resultado dos dias úteis a trabalhar x 8h), "Saldo Anos Anteriores" (referente à coluna Saldo anterior da Consulta fSaldosAnt2021), "Abono nas Horas" (que seria a quantidade de horas lançadas manualmente por uma pessoa responsável que representasse as horas que estavam previstas dentro do período da LTS que não foram trabalhadas, porém, que deverão ser contabilizadas), e "Ajuste no Saldo" (seria uma coluna auxiliar criada manualmente caso fosse necessário algum ajuste não previsto nas regras elencadas acima).
Seguem em anexo as pastas dos arquivos que fazem parte da base de dados, bem como o arquivo do Excel (pasta de trabalho) com as tabelas já inseridas e trabalhadas (ETL) dentro do Power Query.
Espero que eu tenha conseguido vocês entenderem. Estou à disposição para dúvidas.
Desde já agradeço.
Estou passando por alguns probleminhas em chegar ao resultado esperado a fim de consolidar um "sistema" de banco de horas para o setor em que trabalho.
1º Problema:
- Na consulta fSobreaviso, tenho 5 (cinco) colunas - Servidor, Data, Observação, Início Sobreaviso e Fim Sobreaviso.
- As colunas Início Sobreaviso e Fim Sobreaviso foram criadas a partir das informações entre parênteses da coluna Observação. Porém, os valores inseridos nestas colunas partem da função "Texto Inserido Entre os Delimitadores" como etapa. Com isso, mesmo convertendo esses valores para hora, não consigo (dá erro da fórmula) criar uma coluna personalizada com o seguinte roteiro: SE o valor da coluna Início do Sobreaviso for maior que o valor da coluna Fim do Sobreaviso, então (24:00 - Início Sobreaviso) + Fim Sobreaviso, caso contrário, Fim Sobreaviso - Início do Sobreaviso. Por exemplo: se o sobreaviso iniciou às 20:00 do dia 20/11/2021 e terminou às 08:00 do dia 21/11/2021, o resultado esperado seria 12:00 para que eu pegue esse valor e divida por 3, obtendo o total de 4h contabilizadas como horas trabalhadas. Ou seja, para cada 3h em sobreaviso é contabilizada 1h como hora trabalhada. Outro exemplo do resultado seria se o sobreaviso se iniciasse às 08:00 e fosse até às 20:00, bastaria subtrair 20 - 8 = 12, também contabilizando-se 3h como hora trabalhada.
2º Problema:
- Preciso calcular a carga horária mensal a ser trabalhada por cada servidor, por mês. O cálculo é feito da seguinte forma: para cada dia útil, contabiliza-se 8h. Com isso, num mês com 23 dias úteis, o servidor dele trabalhar 184h;
- Porém, tenho a questão dos afastamentos a considerar. Nos afastamentos do tipo férias e do tipo deslocamento para nova sede, é necessário considerar esses dias como não útil. Exemplo: caso o servidor esteja de férias de 1 a 10 no mês de dezembro de 2021, o quantitativo total a ser trabalhado seria de 120h (15 dias úteis x 8h). Ou seja, o cálculo dos dias úteis foi considerado do dia 11 ao dia 31 de dezembro de 2021. A mesma coisa ocorreria com o afastamento de deslocamento que englobasse o período de 25 de setembro de 2021 a 24 de outubro de 2021. Neste caso, as horas a trabalhar no mês de setembro seria de 136h (17 x 8) e no mês de outubro de 40h (5 x 8).
- Outra coisa, tenho duas tabelas no modelo de dados, quais sejam: fFeriados_Nacional e fFeriados_Local. No caso em tela, tenho que considerar os feriados, logicamente, para chegar ao quantitativo de dias úteis de determinada faixa entre datas.
3º Problema:
- Com relação às LTS (Licença para Tratamento da Própria Saúde), tenho duas regras a serem aplicadas em cada caso. A primeira regra é a seguinte: se o servidor iniciar o mês já te LTS, tenho que pegar esse período e considerar dia não útil. Se o servidor iniciar a LTS no decorrer do mês, pego esse período e verifico quantos serviços ele estava escalado. A cada serviço escalado, verifico quantas horas estavam previstas para esses serviços (se de 12h, de 8h ou 24h). Para cada dia de escalação do servidor, contabiliza-se, justamente, as horas para as quais ele estava escalado antes de apresentar o atestado.
Exemplo 1: No mês de agosto de 2021, determinado servidor entrou com LTS de 15 a 19 estando de serviço 24h e no dia de início e fim do atestado. Contabiliza-se 48h como se trabalhado tivesse.
Exemplo 2: no mês de agosto de 2021, determinado servidor entrou com LTS de 25 de agosto a 4 de setembro. Do dia 25 a 31 de agosto o servidor havia previsão de tirar dois serviços de 24h, 25 e 29. Contabiliza-se 48h tal qual o primeiro exemplo, e, complementarmente, de 1 a 4 de setembro, considera dia não útil.
Inicialmente, eu havia pensado em fazer uma tabela "personalizada" para cada servidor, "juntando" as tabelas fFeriados_Nacional, fFeriados_Local e fAfastamentos_DiasUteis_PDI (Lista) a fim de calcular a quantidade de dias úteis entre duas datas, contudo, achei que iria ficar muito trabalhoso e peço a ajuda de vocês para chegar a uma solução.
Ao final, preciso que eu tenha adicionada à consulta fHoras_TrabalhadasTotal_PDI às colunas: "Horas Contabilizadas Sobreaviso" (que é o resultado do período em que o servidor esteve de sobreaviso dividido por 3), "Qtde Carga Horária Mensal (h)" (que seria o resultado dos dias úteis a trabalhar x 8h), "Saldo Anos Anteriores" (referente à coluna Saldo anterior da Consulta fSaldosAnt2021), "Abono nas Horas" (que seria a quantidade de horas lançadas manualmente por uma pessoa responsável que representasse as horas que estavam previstas dentro do período da LTS que não foram trabalhadas, porém, que deverão ser contabilizadas), e "Ajuste no Saldo" (seria uma coluna auxiliar criada manualmente caso fosse necessário algum ajuste não previsto nas regras elencadas acima).
Seguem em anexo as pastas dos arquivos que fazem parte da base de dados, bem como o arquivo do Excel (pasta de trabalho) com as tabelas já inseridas e trabalhadas (ETL) dentro do Power Query.
Espero que eu tenha conseguido vocês entenderem. Estou à disposição para dúvidas.
Desde já agradeço.
Você não está autorizado a ver ou baixar esse anexo.