How to merge Scopus and Web of Science exports and remove the duplicates
Send the exports from every database, get one standardized spreadsheet with the duplicates removed and the counts to fill a PRISMA flowchart.
Free credits · No credit card · Instant access What changed recently
What this solves
Two databases, two export formats, and the same article indexed in both. This tool reads .bib, .nbib, .ris, .csv and .txt files from Scopus, Web of Science, PubMed, Dimensions and Lens, aligns them into one set of columns, removes duplicates by DOI and then by title, and returns the spreadsheet plus a flowchart with the counts of each stage.
How it works
-
Send the exports and name each source
Drop the .bib, .nbib, .ris, .csv and .txt files in together. Label each one with the database it came from so the counts stay separate.
-
Check the merge report
See how many records each source contributed, how many were removed at the DOI stage and at the title stage, and how many remain.
-
Download in the format your next tool reads
Take the clean spreadsheet, the original with duplicates, a BibTeX for Biblioshiny, a CSV for VOSviewer and the flowchart as an image.
Method
What happens to your file, step by step, and where the result stops being a decision made by a model.
How it works inside
Accepts .bib, .nbib, .ris, .csv and .txt. Format is decided by content, not only by extension: a .csv is tested against the Dimensions and Lens signatures before falling back to the Scopus reader; a .txt is tested for the RIS marker 'TY - ' at line start, then for the Scopus text signature, and otherwise goes to the Web of Science parser. Each file becomes the same 13 columns, rows with no identity field filled are dropped, author names are rewritten as 'Surname, A. B.', and spelling variants across the whole dataset collapse to the most frequent form (the key strips accents, hyphens and punctuation). Deduplication runs in two stages. First by canonical DOI: prefixes like doi: and https://doi.org/ are stripped and the DOI is recognized by its standard shape (10. followed by the registrant number and a slash). Two records under one DOI collapse only when their normalized titles are identical or, across different databases, reach 0.90 or more similarity in a character-by-character text comparison, which keeps book chapters that share a book DOI. Then by the normalized title key alone (lowercased, accents and punctuation removed). In each group the record with the highest 'Cited by' survives. Counts before, after DOI, after title and final are recorded for the flowchart.
Where AI is used, and where it is not
Deduplication has no model in it. Every decision that removes or keeps a record is deterministic text comparison: canonical DOI, normalized title, a 0.90 similarity score for cross-database titles, and 'Cited by' as the tiebreak. Author standardization, separator normalization and all counts follow fixed text rules, with no model involved. A language model appears at exactly one point, and it does not touch the merged spreadsheet: when the VOSviewer CSV is generated, affiliation blocks in which no recognized country name is found go to gpt-4.1-nano in batches of 80, which infers the country from the institution, the city or the postal code. Blocks the model also cannot place are dropped from that file so they do not become junk nodes in the VOSviewer country map. The .xlsx, the .bib and the flowchart carry no model output at all.
What it accepts
- Files with extension .bib, .nbib, .ris, .csv or .txt, several at once. Any other extension is refused before parsing.
- Exports recognized by content signature: Scopus (CSV and TXT), Web of Science (TXT), PubMed (.nbib), RIS, BibTeX, Dimensions (CSV) and Lens (CSV).
- The upload is capped at 150 MB in total, counting all files together. There is no per-file size cap and no limit on the number of files.
- An optional label per file overwrites the Source column; without one, the parser default applies (Scopus, Web of Science, PubMed, BibTeX, RIS, Dimensions, Lens).
- A file that yields zero records aborts the whole merge with the reason (unreadable, header only, broken quoting, no bibliographic fields) and no credits are consumed.
What you get back
- One .xlsx without duplicates and one .xlsx with every record still in place, saved right before deduplication (names and separators already standardized), both with the same 13 columns.
- A VOSviewer CSV in Scopus format: 12 columns, UTF-8 with BOM, minimal quoting, affiliations rewritten so each block ends in a canonical country name.
- A BibTeX file for use in biblioshiny.
- A PRISMA-style flowchart as PNG at 300 dpi, with counts per source, records before deduplication, removed by DOI, removed by title and the final total.
- A per-source completeness matrix: filled cells, total and percentage for each column, showing at most 8 source columns with the rest grouped.
What this tool does not do
- It does not search any database. It merges the files you exported yourself.
- It does not combine the content of duplicates. One record per group survives, the one with the highest 'Cited by', and the fields of the discarded record are lost, including a DOI or an abstract only that record had. That count is the value your own export already carried: no citation number is looked up or refreshed here, so it is worth exactly what it was worth in the file you sent.
- Records with no DOI and no title are not deduplicated. An empty key would collapse unrelated records, so they pass straight through.
- The Affiliations column is deliberately left out of separator normalization, because a comma there separates parts of one address. Affiliation formatting stays as the source database wrote it.
- In the VOSviewer CSV, an affiliation block with no country recognized and none inferred is dropped from that file. Nothing is dropped from the .xlsx.
- Plan
- Starter
- Cost
- 20 credits
What you get
-
Formats it actually reads
Scopus CSV and TXT, Web of Science TXT, PubMed .nbib, RIS, BibTeX, Dimensions CSV and Lens CSV. CSV and TXT are identified by their content.
-
Deduplication in two declared stages
First by normalized DOI, keeping one record per document. Then by normalized title. The record with the higher citation count survives.
-
Book chapters are not collapsed
Records sharing a book DOI keep their own rows when the titles differ. Across databases, near-identical titles under one DOI count as the same document.
-
Numbers for the PRISMA flowchart
The tool records how many came from each source, how many left at each dedup stage and how many remain, and draws the figure as a PNG.
Changelog
Every line below is a change that actually shipped, dated by the day it went out.
-
Latest
- A merge that produces no records stops charging the 20 credits and saving an empty spreadsheet.
- A rejected file now says why it was rejected, instead of one message covering four causes.
- Submitting the form with no file at all no longer charges credits.
Show 5 earlier updates
-
- Blank rows stop counting as identified records in the totals that go to your method section.
- The flowchart gains a screening column, shown only when no record is left undecided.
- A step that removed nothing no longer takes a column, and removals branch from their origin box.
- The screened corpus carries into the bibliometric analysis, and the next step unlocks when screening ends.
-
- The same article coming from Scopus and Web of Science is now collapsed into one record.
- DOIs read from Web of Science no longer carry an appended early access date.
- Abstracts that start with a word matching a WoS tag are no longer merged into other fields.
- Results saved while inside a research project are captured into that project.
-
- The flowchart is readable at page width, with larger type, white background and the Xplore logo.
- Flowchart numbers follow the language separator, 2.109 in Portuguese and 2,109 in English.
-
- Dimensions and Lens CSV exports can now be merged, alongside the formats already supported.
- Scopus plain text exports can now be merged.
- Web of Science RIS files now bring index keywords and citation counts, previously empty and zero.
- The VOSviewer file resolves countries from Dimensions and Lens affiliations, and drops blocks with no country.
-
- Book chapters that share the book DOI are preserved instead of collapsing into a single record.
- A Document Type column comes through from Scopus, Web of Science, RIS and BibTeX.
- RIS files can be merged, including RIS content detected inside a .txt file.
- The merged base can be exported as BibTeX, and author name variants are unified across exports.
Questions and answers
How does it decide two records are the same article?
By DOI first: records under the same DOI merge when their normalized titles match. Between different databases a near match is enough, because Scopus and WoS write symbols differently. Then by normalized title, across everything that is left.
What happens to records with no DOI?
They skip the DOI stage and go to the title stage. A record with neither a usable DOI nor a title is kept as it is: collapsing it would risk merging unrelated works, which is the worse error.
Can I check what was removed?
Yes. The original spreadsheet with the duplicates still in it is available for download next to the clean one, so you can compare row by row and audit any decision.
Is anything charged if the merge fails?
No. Credits are consumed only after the merge finishes successfully. Unreadable files, wrong formats and a merge that ends with zero records all stop before the charge and tell you which fix applies.
How to cite this tool
Used it in your research? Here is the reference, already filled in with the version you are looking at and today's access date.
ABNT (NBR 6023)
LESSA, P. W. B. Merge Databases. Versão 2026.08. [S. l.]: Xplore Dados, 2026. Disponível em: https://xploredados.com/en/tool/merge-databases. Acesso em: 21 ago. 2026.
APA 7
Lessa, P. W. B. (2026). Merge Databases (Version 2026.08) [Computer software]. Xplore Dados. https://xploredados.com/en/tool/merge-databases
BibTeX
@software{xploredados_merge_databases_2026,
author = {Lessa, Patrick Wendell Barbosa},
title = {Merge Databases},
organization = {Xplore Dados},
version = {2026.08},
year = {2026},
url = {https://xploredados.com/en/tool/merge-databases},
urldate = {2026-08-21}
}
Start with the free credits
Create an account and test the tools before deciding on a plan.
Create free account