Ir para conteúdo
  • 0

Cálculo de dias e Horas Homens Trabalhadas sem acidentes com afastamento


Rafael Fina Ferreira
Ir para solução Solucionado por champanjonata ,

Pergunta

  • Alunos

Pessoal, boa tarde!


Preciso automatizar o cálculo de dias e homens horas trabalhadas sem acidente com afastamento no BI.

No projeto em anexo, existem duas bases. Uma para controle dos acidentes (eventos) e outra para calcular o efetivo e Horas Homens Trabalhadas (HHT).

Os acidentes com afastamento são os FAT e LWC, controlados na coluna "Classificação da lesão" na tabela fControleEventos. Existe um segundo critério para considerar estes acidentes com afastamento. Na coluna "relação com o trabalho", o mesmo deve estar classificado como "Ocupacional":

Se o acidente for = "LWC" ou "FAT" (Coluna Classificação da Lesão - Base fControleEventos) e = "Ocupacional" (Coluna Relação com  o Trabalho - Base fControleEventos), é considerado como acidente com afastamento.

image.png.b8c8a64abdc1eb9edda7e09251649995.png

Note que apenas o primeiro LWC é considerado acidente com afastamento.

Entendo este conceito, o proximo passo seria calcular os dias sem acidente com afastamento, até o dia atual, considerando o último acidente com afastamento, de forma dinâmica.

E posteriormente saber quantidade de horas homens trabalhadas sem acidentes com afastamento, utilizando, a somatória dos dados presentes na coluna "HHT", da base fDados Contratadas.

image.png.c81f3b30b67d3cd0a49ef4631b62a7c5.png

Nota: até o momento não ocorreu acidente classificado como FAT, mas se faze necessário deixar esta regra no cálculo.

O resultado seria algo parecido com a imagem abaixo:

 

image.png.119cddbe6c4f14a153b1ff870c6352ff.png

Arquivo BBIX e bases estão em anexo.

Obrigado.

 

Gestão_Eventos.xlsx HHT_Corporativo.xlsx Reports padrões - forum.pbix

Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução
Em 03/02/2024 em 09:55, Rafael Fina Ferreira disse:

Bom dia, doutor!

Não chegou no resultado esperado.

Vou detalhar um pouco mais as características de cada necessidade para facilitar o processo, inclusive estou anexando um novo PBIX e bases mais resumidas para facilitar.

Período do contexto: 2022 e 2023;

Total de Homens Horas Trabalhadas: 3.495.460;

Total de dias 2022 e 2023: 730;

Data onde ocorreu o acidente com afastamento: 13/05/2022.

 

Para o cálculo de dias sem acidentes com afastamento, seria necessário contar os dias da coluna de dias da tabela calendário, do dia após a ocorrência do acidente (13/05/2023) até o dia de hoje, de forma automatizada. Para o contexto acima, seria até 31/12/2023, totalizando 597 dias sem acidentes com afastamento. Até hoje (03/02/2024) dariam 631 dias.

Nota: A sua função para definição dos acidentes está correta: 

Qtde. Acidentes com Afastamento =
 
CALCULATE(
    COUNTROWS(fControleEventos),
    fControleEventos[Classificação da Lesão ] in {"LWC", "FAT"} && fControleEventos[Relação com o Trabalho] = "Ocupacional"
)

 

Para o cálculo das horas homens trabalhadas sem acidentes, o raciocínio seria parecido. Porém, deve-se realizar a somatória da coluna HHT presente na tabela fDados contratadas, sempre considerando o mês subsequente ao mês da ocorrência de um evento com afastamento, tendo em vista que não temos os dados de HHT no contexto de dia, e sim no contexto de mês.

Abaixo, segue um print do resultado esperado abaixo dos dados que você calculou: (utilizei os próprios filtros dos visuais para chegar no resultado).

image.png.8197bbda9710ad5eb490a55a98f18ad1.png

Estou encaminhando novamente o pbix e as bases de forma mais resumida. Lembrando que esotu considerando para o exemplo acima os dados de 2022 e 2023.

 

Obrigado.

Eventos e HHT.pbix 289.09 kB · 0 downloads Gestão_Eventos.xlsx 984.96 kB · 0 downloads HHT_Corporativo.xlsx 639.96 kB · 0 downloads

Bom dia Rafael, tudo certo? Desculpe a demora aí... segue o pbix com as regras mencionadas. Abraço.

Eventos e HHT.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
16 horas atrás, Rafael Fina Ferreira disse:

Pessoal, boa tarde!


Preciso automatizar o cálculo de dias e homens horas trabalhadas sem acidente com afastamento no BI.

No projeto em anexo, existem duas bases. Uma para controle dos acidentes (eventos) e outra para calcular o efetivo e Horas Homens Trabalhadas (HHT).

Os acidentes com afastamento são os FAT e LWC, controlados na coluna "Classificação da lesão" na tabela fControleEventos. Existe um segundo critério para considerar estes acidentes com afastamento. Na coluna "relação com o trabalho", o mesmo deve estar classificado como "Ocupacional":

Se o acidente for = "LWC" ou "FAT" (Coluna Classificação da Lesão - Base fControleEventos) e = "Ocupacional" (Coluna Relação com  o Trabalho - Base fControleEventos), é considerado como acidente com afastamento.

image.png.b8c8a64abdc1eb9edda7e09251649995.png

Note que apenas o primeiro LWC é considerado acidente com afastamento.

Entendo este conceito, o proximo passo seria calcular os dias sem acidente com afastamento, até o dia atual, considerando o último acidente com afastamento, de forma dinâmica.

E posteriormente saber quantidade de horas homens trabalhadas sem acidentes com afastamento, utilizando, a somatória dos dados presentes na coluna "HHT", da base fDados Contratadas.

image.png.c81f3b30b67d3cd0a49ef4631b62a7c5.png

Nota: até o momento não ocorreu acidente classificado como FAT, mas se faze necessário deixar esta regra no cálculo.

O resultado seria algo parecido com a imagem abaixo:

 

image.png.119cddbe6c4f14a153b1ff870c6352ff.png

Arquivo BBIX e bases estão em anexo.

Obrigado.

 

Gestão_Eventos.xlsx 984.96 kB · 0 downloads HHT_Corporativo.xlsx 637.34 kB · 0 downloads Reports padrões - forum.pbix 337.25 kB · 0 downloads

Olá Rafael, tudo bem?

Segue anexo o pbix com as medidas, fiquei na dúvida apenas na última então por favor revise-a. Abraço.

image.png.201fd7fa795c7a910532b7e2749c4ac8.png

Reports padrões - forum.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Bom dia, doutor!

Não chegou no resultado esperado.

Vou detalhar um pouco mais as características de cada necessidade para facilitar o processo, inclusive estou anexando um novo PBIX e bases mais resumidas para facilitar.

Período do contexto: 2022 e 2023;

Total de Homens Horas Trabalhadas: 3.495.460;

Total de dias 2022 e 2023: 730;

Data onde ocorreu o acidente com afastamento: 13/05/2022.

 

Para o cálculo de dias sem acidentes com afastamento, seria necessário contar os dias da coluna de dias da tabela calendário, do dia após a ocorrência do acidente (13/05/2023) até o dia de hoje, de forma automatizada. Para o contexto acima, seria até 31/12/2023, totalizando 597 dias sem acidentes com afastamento. Até hoje (03/02/2024) dariam 631 dias.

Nota: A sua função para definição dos acidentes está correta: 

Qtde. Acidentes com Afastamento =
 
CALCULATE(
    COUNTROWS(fControleEventos),
    fControleEventos[Classificação da Lesão ] in {"LWC", "FAT"} && fControleEventos[Relação com o Trabalho] = "Ocupacional"
)

 

Para o cálculo das horas homens trabalhadas sem acidentes, o raciocínio seria parecido. Porém, deve-se realizar a somatória da coluna HHT presente na tabela fDados contratadas, sempre considerando o mês subsequente ao mês da ocorrência de um evento com afastamento, tendo em vista que não temos os dados de HHT no contexto de dia, e sim no contexto de mês.

Abaixo, segue um print do resultado esperado abaixo dos dados que você calculou: (utilizei os próprios filtros dos visuais para chegar no resultado).

image.png.8197bbda9710ad5eb490a55a98f18ad1.png

Estou encaminhando novamente o pbix e as bases de forma mais resumida. Lembrando que esotu considerando para o exemplo acima os dados de 2022 e 2023.

 

Obrigado.

Eventos e HHT.pbix Gestão_Eventos.xlsx HHT_Corporativo.xlsx

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Jonata, bom dia!

Quando inclui o filtro por projeto para poder visualizar a informação de dias sem acidentes e horas homens trabalhadas por projeto, só funcionou para o projeto onde ocorreu o acidente com afastamento. Poderia me ajudar?

 

O evento ocorreu no projeto: MARI_ALEG_Barragem:

image.png.3047dddaed593e86051ef7604c8c6afc.png

 

Para os outros apareceu a somatória total do HHT e um valor de 45329 dias.

 

image.png.71a61bb54a433a0789c04f908bcca901.png

 

obrigado.

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
20 minutos atrás, Rafael Fina Ferreira disse:

Jonata, bom dia!

Quando inclui o filtro por projeto para poder visualizar a informação de dias sem acidentes e horas homens trabalhadas por projeto, só funcionou para o projeto onde ocorreu o acidente com afastamento. Poderia me ajudar?

 

O evento ocorreu no projeto: MARI_ALEG_Barragem:

image.png.3047dddaed593e86051ef7604c8c6afc.png

 

Para os outros apareceu a somatória total do HHT e um valor de 45329 dias.

 

image.png.71a61bb54a433a0789c04f908bcca901.png

 

obrigado.

 

Olá Rafael, tudo certo?

É que no caso a condição para a medida 'Dias entre HOJE e menor data com acidente' é que tenha ao menos 1 acidente (foi isso que mencionou na regra), se olhar o projeto 'Mari_Doutor DB' não tem nenhum acidente. Você quer que nesse caso fique zerado?

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

para os projetos sem ocorrência de acidente, seria possível contabilizar os dias, a partir do primeiro dia da tabela fDadosContratadas?

No caso abaixo, para Mariana - Doutor, seriam os dias e HHT a partir de 01/01/2022, e assim com os demais projetos. Este é o ponto mais importante. E se for possivel, fazer por empresa também (A coluna empresa da tabela abaixo eu ocultei no Power Query)

image.png.fe867aa8d9471c9794651c222168ed2c.png

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
8 minutos atrás, Rafael Fina Ferreira disse:

para os projetos sem ocorrência de acidente, seria possível contabilizar os dias, a partir do primeiro dia da tabela fDadosContratadas?

No caso abaixo, para Mariana - Doutor, seriam os dias e HHT a partir de 01/01/2022, e assim com os demais projetos. Este é o ponto mais importante. E se for possivel, fazer por empresa também (A coluna empresa da tabela abaixo eu ocultei no Power Query)

image.png.fe867aa8d9471c9794651c222168ed2c.png

Tenta assim:

Dias entre HOJE e menor data com acidente =
 
var vQteAcidentes = [Qtde. Acidentes com Afastamento]
 
var vDiasAlternativo = ABS(DATEDIFF(TODAY(), MIN(fDadosContratadas[Data]), DAY))
 
var vUltimo =
 
CALCULATE(
    MIN(fControleEventos[Data]),
    fControleEventos[Classificação da Lesão ] in {"LWC", "FAT"} && fControleEventos[Relação com o Trabalho] = "Ocupacional",
    VALUES(dProjetos[Projeto])
)
 
return
IF(vQteAcidentes >= 1,
ABS(DATEDIFF(TODAY(), vUltimo + 1, DAY)), vDiasAlternativo)

Quanto a ser por projeto, empresa ou gerência basta adicionar um filtro (segmentação) que já vai funcionar.

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Vou testar aqui.

E para a função que calcula o HHT sem acidentes com afastamento? 

 

Qtde Horas Homens =
 
var vMinDataSemAcidente =
 
CALCULATE(
    MIN(fControleEventos[Data]),
    fControleEventos[Classificação da Lesão ] in {"LWC", "FAT"} && fControleEventos[Relação com o Trabalho] = "Ocupacional"
) + 29 // menor data com um mês acrescentado
 
RETURN
 
CALCULATE(
    SUM(fDadosContratadas_total[HHT]),
    FILTER(fDadosContratadas_total, fDadosContratadas_total[Data] >= DATE(YEAR(vMinDataSemAcidente), MONTH(vMinDataSemAcidente), 01) // formatei a menor data para considerar o dia 1 e o mês/ano da menor data
))
 
Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
22 minutos atrás, Rafael Fina Ferreira disse:

Vou testar aqui.

E para a função que calcula o HHT sem acidentes com afastamento? 

 

Qtde Horas Homens =
 
var vMinDataSemAcidente =
 
CALCULATE(
    MIN(fControleEventos[Data]),
    fControleEventos[Classificação da Lesão ] in {"LWC", "FAT"} && fControleEventos[Relação com o Trabalho] = "Ocupacional"
) + 29 // menor data com um mês acrescentado
 
RETURN
 
CALCULATE(
    SUM(fDadosContratadas_total[HHT]),
    FILTER(fDadosContratadas_total, fDadosContratadas_total[Data] >= DATE(YEAR(vMinDataSemAcidente), MONTH(vMinDataSemAcidente), 01) // formatei a menor data para considerar o dia 1 e o mês/ano da menor data
))
 

Se for a mesma regra, só adicionar a:

var vDiasAlternativo = ABS(DATEDIFF(TODAY(), MIN(fDadosContratadas[Data]), DAY))
 

e o if no return

IF(vQteAcidentes >= 1, CALCULATE(
    SUM(fDadosContratadas_total[HHT]),
    FILTER(fDadosContratadas_total, fDadosContratadas_total[Data] >= DATE(YEAR(vMinDataSemAcidente), MONTH(vMinDataSemAcidente), 01) // formatei a menor data para considerar o dia 1 e o mês/ano da menor data
)), vDiasAlternativo)

Link para o comentário
Compartilhar em outros sites

Faça login para comentar

Você vai ser capaz de deixar um comentário após fazer o login



Entrar Agora
×
×
  • Criar Novo...