Forum Discussion

Jack_Roberts's avatar
Jack_Roberts
Copper Contributor
Dec 09, 2021

How to count periods of absence in excel

Hey, I am creating a spreadsheet to track holidays and absence. I need to figure out a way of counting periods of absence. For example, in the attachment I want TEST 1 to show as one period of absence whereas TEST 2 should have two and TEST 3 should have three.

 

Please help!

 

 

 

  • Jack_Roberts 

    Here is a custom VBA function that you can use:

    Function Periods(daterange As Range, coderange As Range, code As String)
        Dim i As Long
        Dim f As Boolean
        For i = 1 To daterange.Count
            If Weekday(daterange(i).Value, vbMonday) <= 5 Then
                If coderange(i).Value = code Then
                    If Not f Then
                        Periods = Periods + 1
                        f = True
                    End If
                Else
                    f = False
                End If
            End If
        Next i
    End Function

    In CC3, enter the formula

    =Periods($B$9:$B$42,CC9:CC42,"S")

    Adjust the ranges as needed, then fill to the right.

    Don't forget to save the workbook as a macro-enabled workbook and to allow macros when you open the workbook.

    • Jack_Roberts's avatar
      Jack_Roberts
      Copper Contributor

      HansVogelaar Thank you, I'm one step closer now! That doesn't quite get what I'm after though, I need TEST 1 to show as one period and so on as over a weekend should still count as one period. It should only count as more if there is a working day between periods.

       

    • Dagmara912's avatar
      Dagmara912
      Copper Contributor
      Thanks for the VBA code, with this my formula does what I want. The issue I am having is that we have some weekend staff and I need their absences counted as well. Could you provide me with another code please?

Resources