A family of Microsoft spreadsheet software with tools for analyzing, charting, and communicating data.
You could also use a VBA macro. In the code below, change the worksheet names as appropriate.
To enter this Macro (Sub), <alt-F11> opens the Visual Basic Editor.
Ensure your project is highlighted in the Project Explorer window.
Then, from the top menu, select Insert/Module and
paste the code below into the window that opens.
To use this Macro (Sub), <alt-F8> opens the macro dialog box. Select the macro by name, and <RUN>.
===================================
Option Explicit
Sub MissingDates()
Dim colNames As Collection, colDates As Collection
Dim wsSrc As Worksheet, wsRes As Worksheet, rRes As Range
Dim vSrc As Variant, vRes() As Variant
Dim I As Long, J As Long
'Change worksheet names as needed
Set wsSrc = Worksheets("Sheet1")
Set wsRes = Worksheets("Sheet2")
Set rRes = wsRes.Cells(1, 1)
With wsSrc
vSrc = .Range(.Cells(2, 1), .Cells(.Rows.Count, "A").End(xlUp)).Resize(columnsize:=2)
End With
'Get Unique Name and Date lists
Set colNames = New Collection
Set colDates = New Collection
On Error Resume Next
For I = 1 To UBound(vSrc, 1)
colNames.Add vSrc(I, 1), CStr(vSrc(I, 1))
colDates.Add vSrc(I, 2), CStr(vSrc(I, 2))
Next I
On Error GoTo 0
'consider if sorting required
'Results array
ReDim vRes(0 To colNames.Count * colDates.Count, 1 To 2)
vRes(0, 1) = "Name"
vRes(0, 2) = "Date"
For I = 1 To colNames.Count
For J = 1 To colDates.Count
vRes((I - 1) * colDates.Count + J, 1) = colNames(I)
vRes((I - 1) * colDates.Count + J, 2) = colDates(J)
Next J
Next I
'Write the results to worksheet
Set rRes = rRes.Resize(UBound(vRes, 1) + 1, UBound(vRes, 2))
With rRes
.EntireColumn.Clear
.Value = vRes
With .Rows(1)
.Font.Bold = True
.HorizontalAlignment = True
End With
.EntireColumn.AutoFit
End With
End Sub
==================================