SmartQueryTools

Group Concatenate CSV Files Online

Concatenate text values within each group in CSV files directly in your browser. Group rows by a column and join the values of another column into a single delimited string — no upload required.

How to group Concatenate CSV files

  1. Drop your file onto the upload area. The first 200 rows are shown so you can check the columns loaded correctly.
  2. Pick a Group by column, or leave it on "No grouping (whole file)" to join every value into a single cell.
  3. Choose the column to concatenate values from, then set the separator (", " by default) and the output column name ("values" by default). Type \n in the separator for a new line or \t for a tab.
  4. Optionally pick a column under "Order values within group by" and a sort direction, so the joined values come out in a predictable order.
  5. Click Concatenate Values, check the result, and download it in the same format you uploaded. The file has one row per group.

Your file is processed locally in your browser and is never uploaded. The free limit is 50 MB per file; larger files work if your device has the memory for them.

Worked example

A blog CMS exports one row per article and tag. The editor wants a single row per article with all its tags in one cell, sorted alphabetically, to paste into a content audit.

Input (CSV)

article_slug,tag,added_by
csv-vs-parquet,parquet,mia
csv-vs-parquet,csv,mia
json-basics,json,raj
csv-vs-parquet,file-formats,omar
json-basics,apis,raj

Settings

  • Group by: article_slug
  • Concatenate values from: tag
  • Separator: ", "
  • Order values within group by: tag, Ascending
  • Output column name: tags

Result

article_slugtags
csv-vs-parquetcsv, file-formats, parquet
json-basicsapis, json

Five rows become two, one per article. Only the group column and the new tags column are kept, so added_by is dropped. Tags are sorted A to Z inside each cell because tag was chosen as the ordering column. The output rows themselves are sorted by article_slug. Without an ordering column, the tags would still be joined, but their order inside each cell is not guaranteed.

Working with CSV files

The joined cell will usually contain the separator, and with the default ", " that means a comma. The exported CSV wraps any such cell in double quotes, so "csv, file-formats, parquet" stays one field when you open it in Excel or read it with pandas. Quotes inside a value are doubled. If a downstream script splits lines on commas without a proper CSV parser, pick a separator such as " | " or "; " instead. Case and spacing are kept exactly, so "Parquet" and "parquet" are joined as two separate entries.

Empty CSV fields load as NULL and are skipped, so they do not leave double separators like "a, , b" in the result. A field containing only spaces is not empty, though, and will be joined as blank text. Values are joined in the form they were loaded, not as typed in the file. A column the loader recognised as timestamps is joined in its standard form, so 2026-03-15T09:45:00 in the file appears as 2026-03-15 09:45:00 in the joined cell.

Frequently Asked Questions

Why is my concatenated CSV column wrapped in quotes?

Because the joined value contains a comma from the separator. CSV requires quotes around fields that contain the delimiter. Any CSV reader removes them on load. Use a non-comma separator if you want no quotes.

Do blank CSV cells create empty entries in the joined list?

No. Truly empty fields load as NULL and are left out. Cells that contain only whitespace are kept as blank strings, so run Trim Whitespace first if your export has them.

Which columns are kept in the output?

Only the group-by column and the new concatenated column. Every other column is dropped, because the result has one row per group. With no grouping, the output is a single row with a single column.

Are NULL values included in the joined string?

No. NULLs are skipped. If every value in a group is NULL, the joined cell for that group is NULL rather than an empty string.

Can I use a newline as the separator?

Yes. Type \n in the separator box and each value goes on its own line. \t inserts a tab. To join with a real backslash, type \\ for each backslash you want.

Related Tools

Split Column in CSV Files Online

Split a column into multiple columns by delimiter in CSV files directly in your browser. Turn "First Last" into separate first and last name columns — no upload required.

Find & Replace in CSV Files Online

Find and replace text values in CSV files directly in your browser. Supports plain text and regex patterns across any column — no upload required.

Sort CSV Files Online

Sort CSV files by any column, ascending or descending, directly in your browser.

Group Concatenate Excel Files Online

Concatenate text values within each group in Excel files directly in your browser. Group rows by a column and join the values of another column into a single delimited string — no upload required.

Group Concatenate Parquet Files Online

Concatenate text values within each group in Parquet files directly in your browser. Group rows by a column and join the values of another column into a single delimited string — no upload required.

Group Concatenate JSON Files Online

Concatenate text values within each group in JSON files directly in your browser. Group rows by a column and join the values of another column into a single delimited string — no upload required.

CSV Viewer Online

View and inspect CSV files directly in your browser. Browse rows, check column names and data types — no upload required, your data stays on your device.

Convert CSV to Parquet Online

Convert CSV files to Parquet format directly in your browser. No upload required — your data never leaves your device.