Ir para conteúdo
  • 0

Faltas consecutivas por funcionário


liviacardinali
Ir para solução Solucionado por Erick Oliveira ,

Pergunta

  • Alunos

Bom dia

O sistema de RH da empresa que eu trabalho nao é dos melhores. Temos um relatório que pode ser extraído que retorna os shifts trabalhados por cada funcionário, com o dia, horário e se foi trabalhado ou nao. Tem as categorias "Worked", "Certified Sick", "Statutory Sick Pay", etc. 

Minha gerente quer que eu mostre no dashboard os funcionários que tiveram faltas consecutivas por 10 dias ou mais. A questao é que como eu trabalho para uma rede de hotéis, nao sao dias úteis e sim realmente dias trabalhados (as folgas sao as vezes durante a semana).

Eu adicionei em anexo um excel de  como a coluna precisa ser resultada.

Pode ser uma medida também... Nao sei o que é mais fácil.

Eu tentei de todos os jeitos mas eu simplesmente nao estou conseguindo chegar no resultado. Acredito que seja algo relativamente fácil de se fazer.

 

Por favor poderiam me ajudar

BI.xlsx

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
  • Alunos
  • Solução

Boa tarde, @liviacardinali;

Use a medida:

Qty Days = 
MAXX (
    SUMMARIZE ( fTimeRecording, fTimeRecording[Date], fTimeRecording[Employee ID] ),
    CALCULATE (
        VAR _Employee =
            MAX ( fTimeRecording[Employee ID] )
        VAR _Date =
            MAX ( fTimeRecording[Date] )

        VAR _InitialTable =
            FILTER (
                ALL ( fTimeRecording ),
                fTimeRecording[Employee ID] = _Employee
                    && fTimeRecording[Date] <= _Date
            )

        VAR _MostRecentWorked =
            CALCULATE (
                MAX ( fTimeRecording[Date] ),
                FILTER ( _InitialTable, fTimeRecording[Type] = "Worked" )
            )
            
        VAR _Result =
            COUNTROWS (
                FILTER (
                    _InitialTable,
                    NOT fTimeRecording[Type] = "Worked"
                        && fTimeRecording[Date] > _MostRecentWorked
                )
            )
        RETURN
            _Result
    )
)

 

Link para o comentário
Compartilhar em outros sites

  • 0
  • Alunos

Por coluna calculada:
 

Dias fora =
Var __ultimo_dia_trabalhado =
CALCULATE(
    MAX(Base_Livia[Date]),
    Base_Livia[Employee ID] = EARLIER(Base_Livia[Employee ID])  //Verifica somente entre o próprio funcionário, precisa disto pq tem removefilter na tabela inteira
    ,Base_Livia[Date] <= EARLIER(Base_Livia[Date]) //Filtra a tabela, somente até a data do contexto
    , Base_Livia[Type] = "Worked" //Verifica somente entre os dias trabalhados
    , REMOVEFILTERS(Base_Livia) //Remove filtros quando causados por filtros de contexto
    )
var __dias =
CALCULATE(
    COUNTROWS(Base_Livia),
    Base_Livia[Date]>__ultimo_dia_trabalhado, //Filtra datas da tabela que são acima da última data trabalhada, ELE IRÁ EXCLUIR A PROPRIA LINHA AQUI SE FOR TRABALHADO
    Base_Livia[Date] <= EARLIER(Base_Livia[Date]),  //Filtra datas anteriores a verificada
    Base_Livia[Employee ID] = EARLIER(Base_Livia[Employee ID]), //Verifica somente entre o próprio funcionário, precisa disto pq tem removefilter na tabela inteira
    REMOVEFILTERS(Base_Livia)) //Remove filtros quando causados por filtros de contexto
 
RETURN __dias
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...