Use the Dataset Merger & Joiner
Choose Append / Union (stack rows) to place rows from one or more datasets in one table. Choose Keyed join (match rows by key) to match rows from exactly two distinct datasets by one or more key pairs. Parsing, mapping, joining, and export happen locally in the browser.
Append / Union Mode
Use the visible Merge mode option Append / Union (stack rows). The mapping table proposes target columns and matches names after trimming and lowercasing them. It does not normalize internal spaces. Change a source-to-target mapping or use Add a target column name and Add column when names differ.
Choose a type for each target column: auto, text, number, boolean, or date. Then set Trim & collapse whitespace, Case normalization, and Null / empty value handling. Drop exact duplicate rows removes repeated rows after mapping and coercion. Add source file/row columns adds provenance. Output follows dataset-addition order and the original order within each dataset.
Keyed Join Mode
Select two different datasets in Left dataset and Right dataset. Add one or more key pairs with Add key pair. Same-named non-key columns are matched after trimming and lowercasing their names. Use Add field mapping for differently named fields.
Choose Join type: Inner (matched rows only), Left (all left rows), Right (all right rows), or Full (all rows either side). The key controls are Ignore case in keys, Ignore whitespace in keys, and Allow empty keys to match. Output follows left-row order, right-match order, then right-only rows where the join type includes them.
Duplicate Keys, Many-to-Many Matches, and Conflicts
Set Duplicate-key policy to Keep all (allow many-to-many), Keep first row per key, Keep last row per key, or Exclude & report as error. Keep all allows duplicate groups to match, but those groups are not added to the duplicate-key report. The other policies report duplicate groups they process.
Set Many-to-many match policy to Cartesian (all combinations) or First match only. For differing shared values, Field conflict resolution can Prefer left value, Prefer right value, or Keep both (suffixed columns). The first two choices add collected differences to the conflict report. Keep both writes fields such as field_left and field_right instead of adding those differences to that report. Join types can intentionally omit unmatched rows.
Review the Result and Audit Data
After the current input and settings finish processing, the visible merged-data preview shows at most 200 rows. Each review table shows at most 300 rows, with a notice when more rows exist. These caps apply to the interface, not to the exported result.
- Union audit: input rows, output rows, duplicate rows dropped, and per-source counts.
- Join audit: left and right totals, output total, unmatched rows on each side, duplicate-key groups reported by the selected policy, and collected conflicts.
- Provenance: source row numbers use the parsed data row position with 2 added to the zero-based row index.
Use the audit export when you need the complete report rather than only the visible tables.
Load, Run, and Export
- Drop files in the drop zone or click browse files. You can also paste text, choose its format, and click Add pasted table. Select a sheet when a workbook offers more than one.
- Choose Merge mode, then configure the mapping or join controls described above.
- Load datasets and configure the merge. Processing starts automatically when the selected mode has usable inputs and settings.
- Review the result and applicable review tables. Export with Export CSV, Export JSON, Export JSONL, Export XLSX, or Export audit report (JSON).
Input extensions are .csv, .tsv, .txt, .json, .jsonl, .ndjson, .xlsx, .xlsm, .xls, .xlsb, and .ods. Delimited input uses its first row as the header row. JSON must be a top-level array. JSONL/NDJSON parses each non-empty line as a separate JSON value, so one invalid line stops parsing and identifies that line.
Limits and Data Handling
Nested JSON values are stringified; the tool does not recursively deep-merge objects. Spreadsheet layout, formulas, and formatting are not preserved: selected-sheet cell values are read. The tool does not connect to a database. The page does not establish a separate usage-limit policy, so do not assume one from this interface.
Frequently Asked Questions
What's the difference between append/union mode and keyed join mode?
Append/union stacks rows from one or more datasets, aligning columns by mapping. Keyed join matches rows from exactly two distinct datasets by key pairs and applies inner, left, right, or full join rules.
How are differently named columns handled?
In union mode, map source columns to shared target columns or add a target column. Automatic name matching trims and lowercases names. In join mode, same-named non-key fields match automatically; use Add field mapping for different names.
What happens to duplicate keys and many-to-many matches?
Choose Keep all (allow many-to-many), Keep first row per key, Keep last row per key, or Exclude & report as error, plus Cartesian (all combinations) or First match only. Keep all does not add duplicate groups to the duplicate-key report; the other duplicate policies report groups they process.
Are conflicts or unmatched rows ever silently discarded?
For rows processed by the join, unmatched left and right rows are collected in the report. A join type can intentionally omit them from the merged output, and Exclude & report as error can exclude duplicate-key groups. Prefer left value and Prefer right value collect differing shared values in the conflict report. Keep both (suffixed columns) writes both values in output columns and does not add those differences to that report.
How much data can I inspect before exporting?
The visible merged-data preview shows up to 200 rows. Each review table shows up to 300 rows. Export the merged result or Export audit report (JSON) for complete output or report data.
What input and preservation limits apply?
JSON input must be a top-level array, JSONL/NDJSON must contain valid JSON on every non-empty line, and delimited input uses a header row. Nested objects are stringified rather than deep-merged. Spreadsheet layout, formulas, and formatting are not preserved.
Does this tool upload my files or connect to a database?
Parsing, mapping, joining, and export happen locally in your browser. The implementation does not connect to a database.