|
|
|
A |
B |
C |
D |
E |
F |
G |
|
No. |
unterschiedliche Datumswerte |
datum0 |
datum1 |
datum2 |
datum3 |
datum4 |
3 |
1 |
2 |
01.01.2018 |
01.01.2018 |
01.01.2018 |
01.02.2018 |
01.03.2018 |
4 |
2 |
0 |
01.04.2018 |
01.01.2018 |
01.01.2018 |
01.04.2018 |
01.04.2018 |
5 |
3 |
2 |
01.01.2018 |
01.01.2018 |
01.04.2018 |
01.02.2018 |
01.04.2018 |
>> Das Ziel ist es heraus zu finden, wie viele vom Ursprungsdatum abweichende Datumswerte ich habe
Das geht relativ einfach so (anhand deiner gezeigten Beispieltabelle):
Option Explicit
Public Sub Beispiel()
Dim dic As Object
Dim dtm(0 To 4) As Date
Dim key0 As String
Dim keyJ As String
Dim i As Long
Dim j As Long
For i = 3 To 5 'Bsp für drei Datensätze
dtm(0) = Worksheets("data").Cells(i, "C").Value 'Ursprungsdatum
dtm(1) = Worksheets("data").Cells(i, "D").Value
dtm(2) = Worksheets("data").Cells(i, "E").Value
dtm(3) = Worksheets("data").Cells(i, "F").Value
dtm(4) = Worksheets("data").Cells(i, "G").Value
key0 = Format$(dtm(0), "yyyy-mm-01")
Set dic = CreateObject("Scripting.Dictionary") 'Late-Binding
For j = 1 To 4
keyJ = Format$(dtm(j), "yyyy-mm-01")
'Datum0 < Datum1-4 ?
If CDate(key0) < CDate(keyJ) Then
'Nur wenn Datum1-4 neue/einzigartig ... ?
If Not dic.Exists(keyJ) Then
'... dann Datum merken.
dic(keyJ) = Empty
End If
End If
Next
Worksheets("data").Cells(i, "B").Value = dic.Count
Next
End Sub
Grüße
Trägheit
|