Статьи

CSV открывается в один столбец в Excel — почему и как исправить

Команда Opener5 мин чтения

Когда CSV открывается и всё содержимое втиснуто в столбец A, значит, в файле не тот разделитель, которого ждёт Excel: обычно это запятые в файле, открытом на компьютере, настроенном на точку с запятой, или наоборот. С самими данными всё в порядке. Откройте файл в инструменте, который сам определяет разделитель, например в Просмотре CSV, или укажите Excel нужный разделитель через импорт или функцию «Текст по столбцам».

Запятые, точки с запятой и десятичная запятая

CSV расшифровывается как comma-separated values — «значения, разделённые запятыми», но на практике разделителем служит то, что выбрала программа, создавшая файл. Вот одна и та же строка, записанная двумя способами:

Дата,Клиент,Сумма
2024-03-15,ООО Ромашка,1250.50
Дата;Клиент;Сумма
2024-03-15;ООО Ромашка;1250,50

Второй вариант появился из-за десятичного разделителя. В большей части Европы — в Германии, Франции, Италии, Испании, Нидерландах, Польше, Украине и многих других странах — дробные числа пишут через запятую: 1250,50. Если бы запятая заодно разделяла столбцы, 1250,50 распалось бы на две ячейки. Поэтому программы для таблиц в этих регионах используют в качестве разделителя столбцов точку с запятой.

Ни один из форматов не ошибочен. Это просто два соглашения, и проблемы начинаются, когда файл, записанный по одному, открывает программа, ожидающая другое. Подробнее о самом формате — в статье что такое CSV-файл.

Почему Excel складывает всё в столбец A

Когда вы дважды щёлкаете по файлу .csv, Excel не анализирует файл, чтобы понять, какой в нём разделитель. Он берёт разделитель элементов списка из региональных настроек операционной системы. В Windows эта настройка зависит от выбранного региона: на компьютере, где выбрана страна с десятичной запятой, обычно стоит точка с запятой, а там, где выбраны США или Великобритания, — запятая.

Поэтому конфликт возникает в обе стороны:

То же самое касается выгрузок из веб-сервисов, интернет-магазинов и CRM. Многие из них всегда пишут запятые, где бы вы ни находились, — поэтому пользователи в Европе сталкиваются с этим так часто. Похожая на вид проблема — когда буквы превращаются в символы вроде é — связана с кодировкой, а не с разделителем; см. статью кракозябры в CSV.

Способ 1: открыть файл с автоопределением разделителя

Если файл нужно просто прочитать — проверить заказ, найти клиента, посмотреть, что внутри выгрузки, — быстрее всего воспользоваться просмотрщиком, который сам определит разделитель.

Просмотр CSV от Opener анализирует файл, определяет, чем разделены значения — запятыми, точками с запятой, табуляцией или вертикальной чертой, — и показывает нормальную таблицу. Он также определяет кодировку текста (UTF-8, Windows-1251 или Windows-1252) и правильно обрабатывает значения в кавычках, внутри которых есть разделитель, например "Иванов, Иван". Ничего не нужно настраивать, аккаунт не нужен, а файл остаётся в вашем браузере — он никуда не загружается. Можно искать, сортировать и экспортировать результат в CSV или JSON.

Способ 2: импорт или «Текст по столбцам» в Excel

Чтобы работать с данными в Excel, не открывайте файл двойным щелчком, а укажите разделитель сами.

Импорт из текстового/CSV-файла. Откройте пустую книгу, перейдите на вкладку «Данные» и выберите «Из текстового/CSV-файла». Excel покажет предпросмотр со списком разделителей: выбирайте запятую или точку с запятой, пока столбцы не встанут как надо, а затем загрузите данные. В том же окне можно выбрать кодировку файла, если буквы выглядят как кракозябры.

Текст по столбцам. Если данные уже лежат в столбце A:

  1. Выделите столбец A.
  2. На вкладке «Данные» выберите «Текст по столбцам».
  3. Выберите вариант «с разделителями» и отметьте разделитель, который используется в файле (например, точку с запятой или запятую).
  4. Завершите работу мастера.

В обоих способах следите за форматом чисел. Файл с 1250.50, открытый в системе с десятичной запятой, может прочитать сумму как текст или как неправильное число. В окне предпросмотра при импорте и на последнем шаге мастера «Текст по столбцам» можно задать, как интерпретировать столбцы, — проверьте несколько сумм, прежде чем доверять итогам.

Способ 3: добавить строку «sep=» для Excel

Есть трюк, который работает только в Excel: добавить в самое начало файла строку с названием разделителя.

sep=;
Дата;Клиент;Сумма
2024-03-15;ООО Ромашка;1250,50

Откройте файл в обычном текстовом редакторе, добавьте первой строкой sep=; (или sep=, для файла с запятыми), сохраните и снова откройте двойным щелчком. Excel прочитает подсказку, использует указанный разделитель и саму строку не покажет.

Это обходной путь, а не стандарт. Другие программы — Google Таблицы, LibreOffice, базы данных, скрипты — о sep= не знают и обычно покажут его как лишнюю первую строку или примут за заголовок. Используйте этот приём только для файлов, которые открывают исключительно в Excel.

Способ 4: Google Таблицы, LibreOffice или региональные настройки

Google Таблицы. Выберите «Файл» → «Импортировать» и загрузите CSV. В окне импорта есть настройка разделителя: можно оставить автоопределение или выбрать разделитель вручную, в том числе свой символ.

LibreOffice Calc. При открытии CSV LibreOffice показывает окно импорта текста с флажками для запятой, точки с запятой, табуляции и других разделителей и с предпросмотром в реальном времени. Программа бесплатна для Windows, macOS и Linux.

Изменение разделителя списка в Windows. В региональных настройках классической панели управления, в дополнительных параметрах, есть поле «Разделитель элементов списка». Если поставить там запятую, Excel будет сразу открывать файлы с запятыми по двойному щелчку. Но будьте осторожны: это общесистемная настройка, поэтому она меняет и то, чем Excel разделяет аргументы функций в формулах, и то, как другие программы читают и записывают CSV. Если вы обмениваетесь файлами с коллегами из своей страны, они начнут получать от вас запятые. Для большинства людей способы с импортом, описанные выше, безопаснее.

Частые вопросы

Почему тот же CSV нормально открывается на компьютере коллеги?

В его региональных настройках другой разделитель элементов списка. Excel использует эту настройку, когда вы открываете CSV двойным щелчком, поэтому один и тот же файл на одном компьютере открывается правильно, а на другом попадает в один столбец.

С чем сохранять CSV — с запятыми или с точкой с запятой?

Зависит от того, кто будет их открывать. Для других программ, скриптов и зарубежных коллег привычнее запятые. Пользователи Excel в странах с десятичной запятой сразу откроют файл с точкой с запятой. Если можете, спросите получателя.

Почему в некоторых строках всё равно не то количество столбцов?

Обычно потому, что в значении есть сам разделитель — например, название компании с запятой, которое не взяли в кавычки. Просмотрщики и импорт, следующие правилам кавычек CSV, справляются со значениями в кавычках; значения без кавычек нужно исправлять в источнике.

Работает ли Просмотр CSV с файлами, разделёнными табуляцией и вертикальной чертой?

Да. Просмотр CSV автоматически определяет запятые, точки с запятой, табуляцию и вертикальную черту и открывает файлы .csv, .tsv и .txt.