When a spreadsheet looks wrong, the instinct is to delete duplicates first. I've started doing that last, because duplicates are usually the symptom of something earlier that was never fixed.
The order I use now is: data types, then whitespace, then structure, then duplicates.
Data types first because it's the cheapest check and the most expensive to miss. A column of numbers stored as text will sum to zero or be skipped entirely by aggregation functions, and nothing on screen tells you why . The values look like numbers. They are not. Filtering or summing a text column can return a plausible-looking result that is simply wrong.
Whitespace second. A trailing space makes "New York" and "New York " two different categories in a pivot table, and neither the filter nor the pivot will warn you . Same for nonprinting characters carried in from an export. This is invisible until you count distinct values and the count doesn't match what you see.
Structure third. Blank rows, subtotal lines, merged headers. If the range isn't a flat table, formulas and pivots behave unpredictably. This is a layout problem, not a data problem, and it's easier to fix before touching individual values.
Duplicates last. Removing duplicates before fixing types and whitespace can delete records that only looked duplicated because of a formatting difference, or keep records that are actually different but got normalized later . Once types and whitespace are clean, the duplicate removal is working against a consistent definition of "same."
This isn't a universal order. If a file has an obvious duplicate explosion from a bad join, duplicates jump to the front. But for the ordinary messy export, the duplicate rows are usually downstream of something simpler.
The part I'm less sure about: how much of this is worth automating versus checking by eye. Power Query can record the cleanup steps and refresh them next month, which handles repetition well . But the first pass on an unfamiliar file is still manual, and I haven't found a shortcut that doesn't just move the guesswork somewhere else.