2017-02-03 1 views
-1

Je dois créer une formule qui me montrera la plus longue période pendant laquelle un employé a travaillé sans interruption.trouver la plus longue période de sans vides

outpud attendu est: - Agent1: - 21 jours (10 quarts aux heures 8H, 5 quarts de BO (ilness), 6 déplacements de VK (week-end)

je besoin d'une formule ou VBA (i ne peux pas utiliser vérification manuelle car il y a environ 140 emplees que je devrais vérifier :))

Example of table

+1

À quoi ressemblent les données d'entrée? Qu'avez-vous essayé? –

Répondre

0

solution VBA

en supposant tout en plus des valeurs de 8 ', « BO » et « VK » sont considérés comme une interruption, cela devrait indiquer le nombre total de jours de la plus longue période de travail ininterrompue:

Option Explicit 

Function longestPeriod(rng As Range) As Integer 
    Dim k As Integer, cell As Range 
    k = 0 
    longestPeriod = 0 
    For Each cell In rng 
     If cell.Value = "8" Or cell.Value = "BO" Or cell.Value = "VK" Then 
      k = k + 1 
     Else 
      If k > longestPeriod Then 
       longestPeriod = k 
      k = 0 
      End If 
     End If 
    Next cell 
    If k > longestPeriod Then 
     longestPeriod = k 
    End If 
End Function 

Exemple d'utilisation: = longestPeriod (B6: B500)