Excel's built-in CSV export is fine until it isn't. The moment your data contains commas inside cells, or you're sending a file to a system that expects a pipe delimiter or semicolon, the default export falls apart fast. The good news is there are several ways to get exactly the delimiter you want, and none of them require advanced programming skills.
Why the Default CSV Export Causes Problems
When you click Save As and choose CSV in Excel, you get a comma-separated file. That works fine for simple datasets. But if your data includes addresses, product descriptions, or any free-text fields, commas inside those cells will break the structure of the file.
Systems like SAP, legacy databases, and certain data pipelines often expect a pipe delimiter (|) or a semicolon instead of a comma. Sending them a standard CSV can cause import errors or, worse, silently misaligned data.
⚠️ Warning: Always check what delimiter the receiving system expects before exporting. A mismatch won't always throw an obvious error. It can just shift your data into the wrong columns.
Method 1: Change the List Separator in Windows
Excel actually reads your system's regional settings to decide which delimiter to use for CSV exports. If you're on Windows, you can change this setting to switch from a comma to a semicolon or another character.
- Open the Windows Control Panel and go to Region settings.
- Click Additional settings on the Formats tab.
- Find the List separator field and change it from a comma to a semicolon (or any character you need).
- Click OK, then reopen Excel and export your file as CSV.
This works, but it's a system-wide change. Every app that relies on that setting will be affected, so remember to switch it back when you're done.
Method 2: Use a Macro to Export with Any Delimiter
If you need more control, or you don't want to touch system settings, a simple VBA macro gives you a clean CSV export with any delimiter you choose. Here's what the logic looks like:
- Loop through each row and each cell in your sheet.
- Join the cell values using your chosen delimiter (pipe, semicolon, tab, etc.).
- Write each joined row as a line in a plain text file saved with a
.csvextension.
This approach gives you full control. You can handle quoted fields, skip blank rows, and choose exactly which sheet gets exported. It takes about 20 lines of VBA and runs in seconds even on large files.
Method 3: Convert After Exporting
Sometimes the easiest path is to export a standard comma-separated file first, then convert the delimiter afterward. This works especially well when you're dealing with data that has no commas inside fields.
You can use a delimiter converter to switch from comma to pipe or semicolon instantly. Paste your CSV content, choose your input and output delimiters, and you're done. No system settings to change, no macros to write.
💡 Tip: If you use the online delimiter converter on Delimiter.site, you can also handle edge cases like quoted fields containing the delimiter character.
Delimiter Comparison at a Glance
| Delimiter | Common Use Case | Risk of Conflict with Data |
|---|---|---|
| Comma ( , ) | General-purpose CSV, Excel default | High (common in text fields) |
| Semicolon ( ; ) | European locales, SAP exports | Medium |
| Pipe ( | ) | Data pipelines, legacy databases | Low (rare in natural text) |
| Tab ( \t ) | TSV files, spreadsheet imports | Low |
Key Points
- Excel's default CSV export always uses a comma, which can conflict with data that contains commas.
- Changing the Windows List Separator setting is a quick fix for semicolon exports, but it affects the whole system.
- A VBA macro gives you full control over the output delimiter and handles edge cases cleanly.
- The pipe delimiter is often the safest choice for data pipelines because it rarely appears in natural text.
- You can always export a standard CSV first and then use an online delimiter converter to switch the separator in seconds.
Pick the Right Method for Your Situation
There's no single best approach here. It really depends on how often you need to do this and how complex your data is. If it's a one-off job with simple data, the Windows setting change or a post-export conversion will get you there fastest.
If you're doing this regularly or your data is messy, build the VBA macro once and reuse it. And if you just need to change CSV delimiter without touching Excel at all, the online converter is your quickest option. Keep it simple, and match the method to the job.