Ir para conteúdo
  • 0

Horas Extras


Geilton
Ir para solução Solucionado por Bruno Abdalla de Souza ,

Pergunta

  • Alunos

Boa tarde pessoal!

estou com dificuldade de calcular horas extras dessa forma em que os dados são disponibilizados do sistema de ponto. Ele não contém todas as batidas do dia em uma linha, e sim a cada batida é inserido uma linha, então em um dia ficam 4 linhas. E aí não estou conseguindo saber como resolver dessa forma, conseguindo enxergar as linhas anteriores para fazer o cálculo. Se alguém saber como proceder, agradeço!

Segue o exemplo de como fica.

 

image.png.4c47619d8f096af9aaf78087cdf2680c.png

Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Veja se é isso:

Tempo Trabalho = 
    VAR vPis = MAX(batidas[pis])
    VAR vData = MAX(batidas[data])
    VAR vTeste = 
        SUMMARIZE(
            FILTER(
                ALL(batidas),
                batidas[pis] = vPis &&
                batidas[data] = vData
            ),
            batidas[horário]
        )
    VAR vTesteID = 
        ADDCOLUMNS(
            vTeste,
            "ID",
                VAR vHorario = [horário]
            RETURN
                COUNTROWS(
                    FILTER(
                        vTeste,
                        [horário] <= vHorario
                    )
                )
        )
    VAR vEntrada = 
        SUMX(
            FILTER(
                vTesteID,
                NOT(ISEVEN([ID]))
            ),
            [horário]
        )
    VAR vSaida = 
        SUMX(
            FILTER(
                vTesteID,
                ISEVEN([ID])
            ),
            [horário]
        )
RETURN
    vSaida-vEntrada

 

Tempo_Horario_formatado = 
    VAR vHorario = [Tempo Trabalho] / 3600
    VAR HORAS = INT(vHorario)
    VAR MINUTOS = INT(60 * (vHorario - HORAS))
    VAR SEGUNDOS = ROUND(((vHorario - HORAS) * 60 - MINUTOS) * 60, 0)
    VAR vHH = 
        IF(
            LEN(HORAS) = 1,
            "0" & HORAS,
            HORAS
        )
    VAR vMM = 
        IF(
            LEN(MINUTOS) = 1,
            "0" & MINUTOS,
            MINUTOS
        )
    VAR vSS = 
        IF(
            LEN(SEGUNDOS) = 1,
            "0" & SEGUNDOS,
            SEGUNDOS
        )
    VAR RESULTADO = HORAS & ":" & MINUTOS & ":" & SEGUNDOS
    VAR RESULTADO2 = CONVERT(vHH & vMM & vSS, INTEGER)          
RETURN
    RESULTADO2

 

ponto_teste.pbix

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos
Em 30/03/2022 em 18:07, Geilton disse:

Que estava verificando a diferença aí do Leo com o exemplo que tenho, é que o id que tenho ele não se repete, é único. Cada batida independente se for no mesmo dia e do mesmo funcionário ele tem um id diferente.

Bom Dia , Veja se isso pode te ajudar!

 

Tabalhando com horas.pbix BASE_TESTE.xlsx

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...