Hi Pat,
The option to VLOOKUP numbers is NOT an option, because it returns the number IMMEDIATELY LESS than the number being looked up. Plus, the numbers are required to be sorted in ascending order.
A potential alternative, to use the TEXT function to convert the numbers to TEXT, and then use the VLOOKUP function, is also NOT a viable option. The VLOOKUP function, in looking up TEXT, acts like the FIND function - i.e. it will return text which is included WITHIN a number, instead of returning "N/A" because the ACTUAL number is NOT in the table.
For example, looking up number "6559", will return "1" or TRUE even if column2 does NOT include "6559", so long as column2 includes a number such as "65593" or "6559467".
For the above reasons, I decided to use the "DCOUNT" function which DOES WORK. I needed to create a small working model which I am prepared to send you, once you provide me with your email address, and to anyone else who is interested.
I am including the VBA code, preceeding with a descriptio of what the code does, but I suggest you are better off in receiving the actual file, as it will be easier to grasp the process.
Regards, ...Dale Watson dwatson@bsi.gov.mb.ca
===========
DESCRIPTION
===========
The VBA code attached to the button performs the following:
1) Goes to the top of the "exist" column (A15), then to A16
2) Copies the value from the next column ("column1"

to the cell named "num".
3) "Num" is part of a "criteria" range (called "crit"

which is used by the database formula located in the cell named "dform".
4) The "dform" formula determines whether the number exists in the second column (with field name of "column2"

.
5) The VBA code places the result of the "dform" formula into the current cell. Being a DCOUNT formula, if there is NO number, "0" will be entered, and if there is more than 1 idential number, the count will be entered (1 or more).
6) Using the exist column, and the "exist_crit" criteria, the code then extracts the numbers which do NOT exist (those with a "0" in column1) to the "output" range. REMINDER: All data immediately below the "output" range is automatically deleted with each extraction.
========
VBA CODE
========
Dim test As Variant
Sub Do_Extraction()
Application.ScreenUpdating = False
Range("exist_top"

.Select
ActiveCell.Offset(1, 0).Select
Test_Exist_Column
Extract_Non_Existing
Range("A1"

.Select
Application.ScreenUpdating = True
End Sub
Sub Test_Exist_Column()
Do
test = ActiveCell.Offset(0, 1).Value
Range("num"

.Value = ActiveCell.Offset(0, 1).Value
If Range("num"

.Value = "" Then Exit Sub
ActiveCell.Value = Range("dform"

.Value
ActiveCell.Offset(1, 0).Select
'Loop Until test = ""
Loop
End Sub
Sub Extract_Non_Existing()
Range("alldata"

.AdvancedFilter Action:=xlFilterCopy, _
CriteriaRange:=Range("exist_crit"

, _
CopyToRange:=Range("output"

, Unique:=False
End Sub
===========
END OF CODE
===========
Again, if you want a copy of the actual file, don't hesitate to ask ...Dale Watson dwatson@bsi.gov.mb.ca