How to merge two excel tables without power query — browser-based join tool
- Step 1Open the Sheet Joiner — Load the Multi-Sheet Joiner — the browser-native stand-in for Merge Queries. Two drop zones appear.
- Step 2Drop the primary table as File A — File A is the table whose rows you want to keep (Power Query's left/first query). Only its first sheet is read.
- Step 3Drop the secondary table as File B — File B is the table you are merging in (the second query). Its columns, minus the key, are appended. First sheet only.
- Step 4Set the key columns — Enter the matching-column header for each file in
leftKeyandrightKey— the same columns you would pick in the Merge dialog. - Step 5Pick the join kind — Choose
left(Left Outer, keep all of File A) orinner(Inner, matches only). Right, full outer, and anti joins are not offered. - Step 6Download the merged file — Process and download
joined-data.xlsx. No expand step, no refresh — File B's columns are already merged as values.
Power Query Merge vs Sheet Joiner
Feature parity and the honest gaps. Use this to decide which tool fits the job.
| Capability | Power Query Merge | Sheet Joiner |
|---|---|---|
| Left Outer / Inner join | Yes | Yes (left / inner) |
| Right Outer / Full Outer | Yes | No |
| Left Anti / Right Anti | Yes | No |
| Fuzzy match join | Yes | No — exact string match (see fuzzy merger) |
| Multi-column key | Yes | No — single key per side |
| Requires Excel for Desktop | Yes | No — any browser |
| Output is a live query (refreshes) | Yes | No — static values |
Merge dialog terms mapped to options
How the Merge Queries dialog corresponds to this tool's three options.
| Power Query Merge | Sheet Joiner option |
|---|---|
| First (left) query | File A |
| Second (right) query | File B |
| Selected match column (left) | leftKey |
| Selected match column (right) | rightKey |
| Join Kind dropdown | joinType (left / inner) |
| Expand nested table step | Automatic — File B columns are already flat in the output |
Tier limits
Two tables means two files, so Free (1 file) cannot run a merge. The tool is Pro-minimum.
| Tier | Max size / file | Max rows / file | Files |
|---|---|---|---|
| Free | 5 MB | 10,000 | 1 (cannot merge) |
| Pro | 50 MB | 100,000 | 5 |
| Pro-media | 200 MB | 500,000 | 20 |
| Developer | 500 MB | Unlimited | Unlimited |
Cookbook
What the Merge Queries editor does in five steps, done here in one. Note the gaps — anti joins and fuzzy matching are not part of this tool.
Left Outer merge, no editor
The default Power Query merge (Left Outer, keep all rows of the first table) reproduced with joinType: left — no load, no expand, no refresh.
File A (orders): File B (customers): order,cust cust,name 1,C1 C1,Acme 2,C2 C2,Globex 3,C9 (C9 missing) Left join output (joined-data.xlsx): order,cust,name 1,C1,Acme 2,C2,Globex 3,C9, <- kept, name blank (Left Outer)
Inner merge
Inner join keeps only rows matched in both tables — the Power Query 'Inner (only matching rows)' kind.
joinType: inner Output (order 3 / C9 dropped): order,cust,name 1,C1,Acme 2,C2,Globex
No expand step needed
In Power Query the merge creates a nested column you must expand. Here File B's columns arrive flat already — there is nothing to expand.
Power Query after merge: order | cust | Table (nested) <- must click expand, pick columns Sheet Joiner output: order | cust | name <- already flat
Type-clash key that Power Query flags
Power Query warns when the two match columns have different types (number vs text). The joiner coerces both to strings, so they merge without a type change.
File A cust = number 1 File B cust = text "1" Power Query: type mismatch warning, may need Changed Type step Sheet Joiner: matches (String coercion) -> 1 joins to "1"
When to keep Power Query instead
If you need a right/full outer join, an anti join, fuzzy matching, or a query that refreshes when the source changes, Power Query is the right tool — this joiner is for one-off, exact, left/inner merges.
Need a refreshing pipeline? -> Power Query Need right/full outer/anti? -> Power Query Need fuzzy name matching? -> Power Query, or /excel-tools/excel-fuzzy-merger One-off exact left/inner? -> Sheet Joiner (this tool)
Edge cases and what actually happens
Need a full outer or right join
Not supportedOnly left and inner are available. For Right Outer or Full Outer, use Power Query, or swap File A and File B and run a left join to approximate a right join. Rows that exist only in File B are never surfaced here.
Need an anti join
Not supportedPower Query's Left/Right Anti (rows with no match) has no direct option. Approximate it with a left join and then filter for rows where the File-B columns are blank.
Need fuzzy matching
Not supportedThis join is exact string match. For approximate name/address matching like Power Query's fuzzy merge, use the fuzzy merger, which scores near-matches instead of requiring identical keys.
Multi-column merge key
Not supportedPower Query lets you Ctrl-click several columns to form a composite key. Here it is one leftKey and one rightKey. Concatenate the parts into one helper column per file first, then join on that.
Output should refresh when sources change
Static by designThe result is a plain values-only .xlsx with no embedded query — it does not refresh. That is the point for one-off merges; for a refreshing pipeline keep Power Query. Re-run the join to update.
Type mismatch on the key
PreservedWhere Power Query warns about a number-vs-text key, the joiner just coerces both to strings and matches them. No 'Changed Type' step is needed; 1 joins to "1".
Merge table on a non-first sheet
Sheet 1 onlyPower Query lets you pick any sheet or named table; this tool reads only the first sheet of each file. Put the table on tab 1 or export it standalone before joining.
Nested-table expand expectation
Already flatThere is no expand step. Unlike a Power Query merge, File B's columns are written flat into the output immediately — so you cannot selectively expand a subset; all non-key File-B columns are included.
Free tier
Run rejectedA merge needs two files, above Free's 1-file limit, and the tool is Pro-minimum. The run is blocked with 'Sheet Joiner requires Pro tier.' until you upgrade.
Shared column name across tables
File B winsIf both tables have a non-key column with the same name, File B's value overwrites File A's in the merged row — there is no '.1' suffix as Power Query would add. Rename one column first with the header rename tool to keep both.
Frequently asked questions
When should I use Power Query Merge instead?
Use Power Query when you need a query that refreshes as sources change, a right/full outer/anti join, fuzzy matching, or a multi-column key. This tool is for one-off, exact, left/inner merges with no install and no refresh.
Does the output contain any Power Query embedded query?
No. The output is a plain .xlsx (joined-data.xlsx, sheet Joined) with values only — no data model, no connection, no refresh dependency.
Can I do a full outer join?
No. Left join and inner join are the two supported kinds. There is no right, full outer, or anti join. To approximate a right join, swap which file is A and which is B.
Do I get the same join kinds as the Merge dialog?
Partially. You get Left Outer (left) and Inner (inner). Right Outer, Full Outer, Left Anti, and Right Anti are not offered — those still need Power Query.
Is there an expand step like in Power Query?
No. File B's columns (except the key) are written flat into the output automatically, so there is no nested table to expand. Every non-key File-B column is included.
Can it match on more than one column?
No — single key per side. To emulate Power Query's multi-column match, concatenate the columns into one helper column in each file (e.g. region|sku) and join on that helper column.
Does it do fuzzy matching like Power Query's fuzzy merge?
No, it requires exact (string) matches. For approximate matching of names or addresses, use the fuzzy merger.
Will it work without desktop Excel?
Yes. It runs entirely in the browser via SheetJS, so it works on a Chromebook, iPad, Linux, or any device where the Power Query editor is unavailable — no install required.
How does it handle a number key vs a text key?
It coerces both to strings, so 1 matches "1". Power Query would flag a type mismatch and may need a Changed Type step; here it just works.
What happens to columns that exist in both tables?
File B's key column is dropped. Any other shared column name is overwritten by File B's value (no .1 suffix). Rename one side first with the header rename tool to keep both versions.
Are my files uploaded?
No. Parsing and joining happen in your browser; the files never leave the tab. This makes it usable on restricted machines where add-ins or uploads are blocked.
What tier do I need?
Pro. A merge requires two files, above the Free tier's 1-file cap, and the tool is Pro-minimum. Pro covers 50 MB / 100,000 rows per file.
Privacy first
Every JAD Excel tool runs entirely in your browser using SheetJS and ExcelJS. Your spreadsheets, formulas, and data never leave your device — verified by zero outbound network requests during processing.