Duplicate matching is entity-specific, and Deals are the gap
Pipedrive's import tool merges likely duplicates for two entity types. Persons match on organization, phone, or email, if any of those fields matches an existing record, the rows merge instead of creating a new person. Organizations match on address, same name is fine as long as the address differs, but a matching address merges the records. Deals have no equivalent field-based match, because the same deal name can legitimately recur across a sales pipeline. Import a spreadsheet of deals that carries no Pipedrive System ID column twice, and the second run doesn't recognize a single row from the first, it just adds a second copy of each.
Where this actually bites
The failure mode isn't usually a deliberate double-import. It's a report-and-push workflow: pull deals into a sheet, edit stage or value, push the changes back, and repeat next week. Without an explicit match key, "push back" and "import fresh" look the same to Pipedrive, both create rows. A pipeline that should have forty open deals ends up with forty, plus a dozen stale copies from earlier pushes that nobody is closing, because they're not the deals anyone is actually working.
The one dependable match key: the Pipedrive ID
Pipedrive's own guidance for updating records through a spreadsheet import is to include the Pipedrive System ID column and match on it. That's the one field the platform will reliably use to find and update the existing deal instead of creating a new one, since name-based matching isn't available for this entity. Any workflow that pushes deal updates back from a sheet needs that ID written back into the sheet on the first pull, so every later push has something to match against.
Where this fits with the rest of the export
The ID requirement applies whether the push is a one-off correction or part of a recurring refresh. See scheduling a Pipedrive export to Google Sheets for setting up the pull side, why your Pipedrive export is missing custom fields if the same report is also short on fields, and exporting Pipedrive to Google Sheets for the general export picture.
ID write-back on every pull, so pushes update instead of duplicate
Pipedrive Bulk Importer & Exporter writes the Pipedrive ID back into the sheet on export and uses it for every push, so a corrected deal updates the existing record instead of adding a copy.
See Pipedrive Bulk Importer & Exporter