Hi,
Another approach with VBA:
Function missing(mydate As Range, InputRange As Range)
Dim rngFirst As Range, rngLast As Range
Dim varData As Variant
Dim dicInvoices As Object
Dim lngCount As Long
Set dicInvoices = CreateObject("Scripting.Dictionary")
Set rngFirst = InputRange.Find(What:=mydate.Text, After:=InputRange.Cells(1, 1), LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext)
Set rngLast = InputRange.Find(What:=mydate.Text, LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlPrevious)
varData = Range(InputRange.Cells(rngFirst.Row, InputRange.Columns(1).Column), _
InputRange.Cells(rngLast.Row, InputRange.Columns.Count))
For lngCount = 1 To UBound(varData)
If Not dicInvoices.Exists(CStr(varData(lngCount, 2))) Then
dicInvoices.Add Key:=CStr(varData(lngCount, 2)), Item:=1
End If
Next lngCount
missing = rngLast.Offset(0, 1) - rngFirst.Offset(0, 1) - dicInvoices.Count + 1 + (rngFirst.Offset(0, 1) - 500)
End Function