The tutorial shows how to change CSV separator when importing or exporting data to/from Excel, so you can save your file in the comma-separated values or semicolon-separated values format.
Excel is diligent. Excel is smart. It thoroughly examines the system settings of the machine it's running on and does its best to anticipate the user's needs … quite often to disappointing results.
Imagine this: you want to export your Excel data to another application, so you go save it in the CSV format supported by many programs. Whatever CSV option you use, the result is a semicolon-delimited file instead of comma-separated you really wanted. The setting is default, and you have no idea how to change it. Don't give up! No matter how deep the setting is hidden, we'll show you a way to locate it and tweak for your needs.
What delimiter Excel uses for CSV files
To handle .csv files, Microsoft Excel uses the List separator defined in Windows Regional settings.
In North America and some other countries, the default list separator is a comma, so you get CSV comma delimited.
In European countries, a comma is reserved for the decimal symbol, and the list separator is generally set to semicolon. That is why the result is CSV semicolon delimited.
To get a CSV file with another field delimiter, apply one of the approaches described below.
Change separator when saving Excel file as CSV
When your save a workbook as a .csv file, Excel separates values with your default List separator. To force it to use a different delimiter, proceed with the following steps:
- Click File > Options > Advanced.
- Under Editing options, clear the Use system separators check box.
- Change the default Decimal separator. As this will change the way decimal numbers are displayed in your worksheets, choose a different Thousands separator to avoid confusion.
Depending on which separator you wish to use, configure the settings in one of the following ways.
To convert Excel file to CSV semicolon delimited, set the default decimal separator to a comma. This will get Excel to use a semicolon for the List separator (CSV delimiter):
- Set Decimal separator to comma (,)
- Set Thousands separator to period (.)
To save Excel file as CSV comma delimited, set the decimal separator to a period (dot). This will make Excel use a comma for the List separator (CSV delimiter):
- Set Decimal separator to period (.)
- Set Thousands separator to comma (,)
If you want to change a CSV separator only for a specific file, then tick the Use system settings check box again after exporting your Excel workbook to CSV.
Note. Obviously, the changes you've made in Excel Options are limited to Excel. Other applications will keep using the default List separator defined in your Windows Regional settings.
Change delimiter when importing CSV to Excel
There are a few different ways to import CSV file into Excel. The way of changing the delimiter depends on the importing method you opted for.
Indicate separator directly in CSV file
For Excel to be able to read a CSV file with a field separator used in a given CSV file, you can specify the separator directly in that file. For this, open your file in any text editor, say Notepad, and type the below string before any other data:
- To separate values with comma: sep=,
- To separate values with semicolon: sep=;
- To separate values with a pipe: sep=|
In a similar fashion, you can use any other character for the delimiter - just type the character after the equality sign.
Once the delimiter is defined, you can open your text file in Excel like you normally would, from Excel itself or from Windows Explorer.
For example, to correctly open a semicolon delimited CSV in Excel, we explicitly indicate that the field separator is a semicolon:
Choose delimiter in Text Import Wizard
Another way to handle a csv file with a delimiter different from the default one is to import the file rather than open. In Excel 2013 an earlier, that was quite easy to do with the Text Import Wizard residing on the Data tab, in the Get External Data group. Beginning with Excel 2016, the wizard is removed from the ribbon as a legacy feature. However, you can still make use of it:
- Enable From Text (Legacy) feature.
- Change the file extension from .csv to .txt, and then open the txt file from Excel. This will launch the Import Text Wizard automatically.
In step 2 of the wizard, you are suggested to choose from the predefined delimiters (tab, comma, semicolon, or space) or specify your custom one:
Specify delimiter when creating a Power Query connection
Microsoft Excel 2016 and higher provides one more easy way to import a csv file - by connecting to it with the help of Power Query. When creating a Power Query connection, you can choose the delimiter in the Preview dialog window:
Change default CSV separator globally
To change the default List separator not only for Excel but for all programs installed on your computer, here's what you need to do:
- On Windows, go to Control Panel > Region settings. For this, just type Region in the Windows search box, and then click Region settings.
- In the Region panel, under Related settings, click Additional date, time, and regional settings.
- Under Region, click Change date, time, or number formats.
- In the Region dialog box, on the Formats tab, click Additional settings…
- In the Customize Format dialog box, on the Numbers tab, type the character you want to use as the default CSV delimiter in the List separator box.
For this change to work, the List separator should not be the same as Decimal symbol.
- Click OK twice to close both dialog boxes.
When done, restart Excel, so it can pick up your changes.
Notes:
- Modifying the system settings will cause a global change on your computer that will affect all applications and all output of the system. Do not do this unless you are 100% confident in the results.
- If changing the separator has adversely affected the behavior of some application or caused other troubles on your machine, undo the changes. For this, click the Reset button in the Customize Format dialog box (step 5 above). This will remove all the customizations you've made and restore the system default settings.
Changing List separator: background and consequences
Before changing the List separator on your machine, I encourage you to carefully read this section, so you fully understand possible outcomes.
First off, it should be noted that depending on the country Windows uses different default separators. It's because large numbers and decimals are written in different ways across the globe.
In the USA, UK and some other English-speaking countries including Australia and New Zealand, the following separators are used:
Decimal symbol: dot (.)
Digit grouping symbol: comma (,)
List separator: comma (,)
In most European countries, the default list separator is a semicolon (;) because a comma is utilized as the decimal point:
Decimal symbol: comma (,)
Digit grouping symbol: dot (.)
List separator: semicolon (;)
For example, here's how two thousand dollars and fifty cents is written in different countries:
US and UK: $2,000.50
EU: $2.000,50
How does all this relate to the CSV delimiter? The point is that the List separator (CSV delimiter) and Decimal symbol should be two different characters. That means setting the List separator to comma will require changing the default Decimal symbol (if it's set to comma). As the result, numbers will be displayed in a different way in all your applications.
Moreover, List separator is used for separating arguments in Excel formulas. Once you change it, say from comma to semicolon, the separators in all your formulas will also change to semicolons.
If you are not ready for such large-scale modifications, then change a separator only for a specific CSV file as described in the first part of this tutorial.
That's how you can open or save CSV files with different delimiters in Excel. Thank you for reading and see you next week!
24 comments
Regarding importing a csv with sep=;
Is there a limited list of characters that can be used here in place of ; ? In my situation the data has a lot of special characters including double and single quotes, so I'm looking for something more obscure like § or ¤, but when I tried ¤ (alt-0164) it didn't work, so maybe it can't be any character.
Amazing! Thank you for your clear explanation. I am using excel 2013 and having a hard time with comma separated CSVs, excel always expects a separation by semicolon. Using your tutorial I was able to change in Region settings the default list separator to be comma (,) instead of semi colon (;). It worked perfectly, excel now splits the comma separated values as it should. Thanks!
With my current excel 2023 setting the deciaml separator has no effect on the value separator
same problem here
Same here. Can you please update the post so it is also applicable for concurrent versions?
Besides that: Fix it! It's a UX nightmare.
Thanks so much for the explanation. Very helpful
Thanks a lot! Very helpful :)
It was useful for me. TY
Lemme give y'all a simple way rather than making it complicated, by messing with VBA, settings, versions, etc.. This is how OLD people do it.
File is .csv (perhaps because it's been renamed from a .txt file) but Excel opens it with all columns in each row in a single column (i.e. not recognizing separators). In this example, we want comma separators.:
1. Make a small dummy file (even with 1 record) with the same number of columns, and comma separators.
2. Open Excel first, then navigate to the file and open it as comma delimited.
3. Save it as type name.csv.
4. Go to DOS (yes, DOS), or CMD and type in this:
Copy name.csv + yourfilename.csv. (if you have many files, you can make a .bat file with many 'copy' statements.)
5. Go back into the file, remove that first dummy record and resave.
You've just 'juked' Excel into forcing the appended file to follow the same formatting as the first.
hi, thanks for the post.
Could you explain the same on a Mac please?
Thanks
This is the most recent post on that topic I could find, which tells me, that this problem has still not been SUSTAINABLY resolved by the "software giant" (as one said here) Microsoft !!!
The only sustainable way to resolve it - and not the whole world is the United States of America, so we DO NEED such a resolution - would be a seamlessly added EXPORT filter, allowing to replace the the decimal and field separators of the csv saved by Excel !!!
Actually this could also be achieved - as a workaround - by a well-crafted VBA macro.
But we DO NEED this as a built-in function of Excel and this can only be done by Microsoft as the manufacturer of their (international ???) Office suite, right ?
Remark:
When writing such a macro (as a workaround), you would not only have to replace , and ;
Be aware that the csv specification also allows the use of of the separator WITHIN a field, when using special delimiters, like that:
..... , "This is a text, aint it", 64.7, ...
So you would have to take care of such "exceptions", otherwise you'd spoil the whole csv.
Anyway thanks to all, contributing ideas to this thread, including Svetlana for describing all EXISTING workarounds (which are only a crutch in my opinion; sorry Svetlana, that's not your fault of course !)
FINALLY...
Would anyone of you know where to request such a "feature" at Microsoft directly ?
Any developers forum we could jointly add such a request and could gather others, who hopefully agree with us and demand such a priority change with their next release ?
This is rediculous... How can a BIG software giant as Microsoft think in this way!?
Let us set the separator manually.
If you look at some other software that import/export CSV they use comma as separator and put all the information within quotes. If there is a quote in the information it is escaped.
I guess there's some old standard from 1965 stating how a CSV should be... :(
Hi all, Svetlana is not true at all, but only partially. I will explain.
If you use English locale and you in Excel change decimal separator from system to comma, Excel understand that he cannot use comma as a field delimiter and will use semicolon instead of it and will save csv file in non-english format, it is for example: 1,5;23,45.
But, in the case you are working with for example Czech locale (or probably with French locale) and you in Excel change a decimal separator to dot as correct for English csv and save this file. The format of file is for example: 1.5;23;45 and not expected 1.5,23.45. The reason is, I guess, that Excel has no any reason to change a field separator from semicolon to comma, because semicolon is a correct field separator for csv file and and does not contradict with the dot or comma decimal delimiter at all.
So with English locale you can save an usual non-english csv with comma decimal delimiter and semicolon field separator, but with non-english locale (Czech or French) you cannot save usual English csv, with dot decimal delimiter and comma field separator, but you can save alternative English csv, with dot decimal delimiter and semicolon field separator.
Of course another possibility is to switch locale with other possible problems, for example with other application.
Best regards,
Martin Molhanec
All works as intended. Microsoft 365 Apps for Enterprise.
Decimal and Thousands separators can be changed in my case - just mind the emtpy space character that you HAVE to delete!
[ 0. 0. 0. 1. 7. 6. 0. 0. 0. 0. 0. 2. 4. 1.
0. 0. 2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 34. 128. 106. 6. 0. 23. 4.
1. 95. 128. 42. 18. 7. 128. 15. 2. 18. 16. 4. 10. 23.
46. 6. 10. 73. 79. 1. 0. 1. 19. 12. 29. 128. 83. 27.
10. 5. 29. 7. 3. 23. 82. 128. 128. 25. 128. 71. 13. 15.
25. 40. 66. 51. 37. 43. 25. 81. 128. 19. 5. 12. 47. 43.
20. 73. 13. 19. 14. 8. 40. 77. 52. 23. 48. 22. 14. 6.
5. 38. 31. 37. 78. 29. 4. 1. 37. 36. 56. 81. 20. 9.
3. 6.];[ 0. 0. 0. 1. 7. 6. 0. 0. 0. 0. 0. 2. 4. 1.
0. 0. 2. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.
0. 0. 0. 0. 0. 0. 0. 34. 128. 106. 6. 0. 23. 4.
1. 95. 128. 42. 18. 7. 128. 15. 2. 18. 16. 4. 10. 23.
46. 6. 10. 73. 79. 1. 0. 1. 19. 12. 29. 128. 83. 27.
10. 5. 29. 7. 3. 23. 82. 128. 128. 25. 128. 71. 13. 15.
25. 40. 66. 51. 37. 43. 25. 81. 128. 19. 5. 12. 47. 43.
20. 73. 13. 19. 14. 8. 40. 77. 52. 23. 48. 22. 14. 6.
5. 38. 31. 37. 78. 29. 4. 1. 37. 36. 56. 81. 20. 9.
3. 6.];True
Please need to make a code or tools to be three above details as a column, its mean [ ] [ ] True as a three columns
This instruction doesn't work:
"To save Excel file as CSV comma delimited, set the decimal separator to a period (dot). This will make Excel use a comma for the List separator (CSV delimiter):"
Hello!
I've just retested it in my Excel 365 - it does work as described. What Excel version do you use?
I had the same problem, could not change the list separator modifying it in Excel 2016 Professional. The file I was trying to convert, had to be used in another program that uses the comma as list separator (forScore).
I confirm the second option, the global change of the list separator. This has the draw-back that it interferes with other simulating programs. So, after converting the file, I had to restore the configuration for my other simulators to work properly again.
How did you test the first approach?
Hi Angélico,
Here's what I did:
- Performed the steps described in "Change separator when saving Excel file as CSV". In particular, set Decimal separator to period (.) and Thousands separator to comma (,).
- Saved the workbook as CSV file.
- Opened the CSV file in Notepad to check which separator is actually used. In my case, the result is always comma-separated values.
Same story for me.
And i am not allowed to change global setting by company policy, so no alternative there.
Hi Svetlana,
for me with Excel 365 it is not working.
Allthough doing all steps and chekcing it twice, result is still semicolon separataed.
Hi Stefan,
The semicolon is still there since perhaps you have missed this part "For this change to work, the List separator should not be the same as Decimal symbol." on the article.
Good luck.
If all above do not work and you want to properly read/modify csv which source file has comma as separator and dot as delimiter just open it in an editor, I used vsc for example. Mark all commas in the file, change them to semicolons after that mark all dots if you have numbers and change them to commas.
Office 365, version 2108. comma delimited doesn't work for me as well. All done with the description from this article.
Microsoft it's shame we cannot do it Excel :/