Asumiendo que las fechas se encontraran en las columnas A y B (al igual que lo que te mostrara en la fórmula base) y a partir de la celda A1, podrías intentar lo siguiente:
Código vb:
Ver originalSub Macro781()
Dim LastRow As Long, Q As Long
Application.ScreenUpdating = False
' Determino última fila
LastRow = [a1].End(xlDown).Row
' Defino "AL" como columna auxiliar. Para el cálculo necesito que la columna A
' esté ordenada.
' Al término del cálculo vuelvo al orden inicial mediante esta columna
[AL1] = 1: [AL1].Resize(LastRow).DataSeries Type:=xlLinear
' Ordeno según columna A
Range("A1:AL" & LastRow).Sort Key1:=[a1], Order1:=xlAscending, Header:=xlNo
' Fórmula Matricial en celda D1
[d1].FormulaArray = "= SUMPRODUCT( B$1:B" & LastRow & " - A$1:A" & _
LastRow & " ) - SUMPRODUCT( IF( A$2:A" & LastRow & "<B$1:B" & _
LastRow - 1 & ", B$1:B" & LastRow - 1 & " - A$2:A" & LastRow & ", 0) )"
' Traslado resultado a variable "Q"
Q = [d1]: [d1].ClearContents
' Ordeno según columna AL
Range("A1:AL" & LastRow).Sort Key1:=[AL1], Order1:=xlAscending, Header:=xlNo
' Elimino columna AL: cumplió su cometido
[AL1].EntireColumn.Delete
Application.ScreenUpdating = True
' Muestro el dato en D1
[d1] = Q
End Sub
Saludos, Cacho.