If there's one column that has ALL values, I'd import it in MS Access, then define select-distinct-queries on all columns and make a query based on that column with an outer join to all other columns.

If there's no such column it's somewhat more difficult (but still doable using a union query to make the 'base' table).

The total operation can be programmed in one macro with three steps in MS Access (assuming the 2007 version still has macro's): empty the table, import from workbook and run the query.
That's far easier than writing your own code in VBA in Excel to do this.

But it can be done in Excel also, I think. Define a shadow worksheet with the 'full' column copied, and all other columns containing a VLOOKUP-formula (maybe surrounded by an IF) that checks if value in the cell in that row in the full column happens to exist in the corresponding column of the original worksheet. No VBA, no macro's, no sorting (except maybe the full column in the original sheet), no procedures, just formulas; that's the proper way to use Excel.


Hope this helps.


Kees