I like the way that you added NA Mike.
To address the duplicates issue, I used this approach.
Private Sub UserForm_Initialize()
CheckBox1 = False
CheckBox1.Caption = "Show ALL"
AllList
End Sub
Private Sub CheckBox1_Click()
If CheckBox1.Caption = "Show #N/A" Then
AllList
CheckBox1.Caption = "Show ALL"
ElseIf CheckBox1.Caption = "Show ALL" Then
NAlist
CheckBox1.Caption = "Show #N/A"
End If
End Sub
Sub AllList()
Dim i&, j&
With ListBox1
.List = Sheet1.Range("A2", Sheet1.Range("A2").End(xlDown)).Resize(, .ColumnCount).Value
For i = 0 To .ListCount - 1
For j = 0 To .ColumnCount - 1
If IsError(.List(i, j)) Then .List(i, j) = "#N/A"
Next j
Next i
End With
End Sub
Sub NAlist()
Dim i&, j&
With Sheet2
.Range("D1").Value = Sheet1.Range("C1").Value
.Range("D2").Formula = "=NA()"
Sheet1.UsedRange.Resize(, 3).AdvancedFilter Action:=xlFilterInPlace, _
CriteriaRange:=.Range("D1:D2"), Unique:=True
Sheet1.Range("A2", Sheet1.Range("A2").End(xlDown)).Resize(, 3).SpecialCells(xlCellTypeVisible).Copy
.Range("A1").PasteSpecial xlPasteValues
ListBox1.List = .UsedRange.Value
Sheet1.ShowAllData
.UsedRange.Clear
End With
With ListBox1
For i = 0 To .ListCount - 1
For j = 0 To .ColumnCount - 1
If IsError(.List(i, j)) Then .List(i, j) = "#N/A"
Next j
Next i
End With
End Sub