How to Combine Two Lists Side by Side
Some list jobs aren't about comparing what's different - they're about combining two lists that are already related item-by-item. First names and last names that need to become full names. IDs and emails that need to be paired up. Two columns you'd normally join in a spreadsheet with TEXTJOIN or CONCAT, except what you actually have is two plain pasted lists, not a spreadsheet open in front of you.
Quick answer
Use Row Join mode in Zip/Merge Lists to combine same-index items from two or more lists onto a single line with a separator you choose - the same result as Excel's TEXTJOIN across columns. Use Zip mode instead if you want the lists alternated line by line rather than joined onto the same line. Uneven list lengths can be truncated, filled with blanks or a default value, or cycled.
Combine two lists now. Free, no account needed.
Open Zip/Merge Lists →Row Join: the TEXTJOIN equivalent
Row Join takes the item at each position in every list and joins them onto a single output line using a separator you choose. Paste first names as one list and last names as another, set the separator to a space, and each output line is a full name - Alice, alice@example.com style pairing works the same way with a comma-and-space separator between an ID list and an email list. This is exactly the job a spreadsheet's TEXTJOIN or CONCAT function does when dragged down two columns, minus the need to have the data in a spreadsheet at all.
Zip: alternating instead of joining
Zip produces a different shape of output: instead of combining corresponding items onto one line, it alternates the lists, keeping every item on its own line - A1, B1, A2, B2 and so on. This is the right choice when you need the combined result to still be a flat list of individual items rather than paired rows - for example, interleaving two playlists or two sequences where each item needs to remain independently addressable afterward.
Handling lists of different lengths
Real lists rarely line up perfectly in length. Four options handle the mismatch:
- Truncate - stop at the shorter list's length, dropping any extra items from the longer list.
- Fill with blank - pad the shorter list with empty values so every row from the longer list is still represented.
- Fill with a custom default - pad the shorter list with a specific placeholder value you choose, such as "N/A" or "unknown".
- Cycle - repeat the shorter list from the beginning until it matches the longer list's length, useful when the shorter list is a small set of repeating labels or categories.
Reversing the operation with the Split tab
The Split tab in the same tool reverses these combine operations: "split columns" takes a list of joined rows and a separator, and splits them back into the original component lists - the exact reverse of Row Join. "Unshuffle" reverses a Weave operation, and "unstack" splits a single combined list back into its original pieces based on blank lines or a marker. This means the same tool handles both directions of the job rather than needing a separate utility to undo a combine.
Want the full walkthrough of every merge mode?
Stack, Zip, Weave, Row Join, and Coalesce, explained with examples.