CSV открылся одним столбцом
Файл корректный, Excel исправен, а вся таблица уехала в колонку A. Причина почти всегда одна: файл и программа по-разному понимают, что считать разделителем.
Откуда берётся расхождение
Название формата обещает запятую. Но в русской локали запятая занята под десятичный разделитель: число «10,5» с запятой-разделителем полей превратилось бы в две колонки. Поэтому русский Excel и большинство отечественных программ используют точку с запятой.
Какой разделитель ждёт Excel, задаётся региональными настройками Windows — параметром «Разделитель элементов списка». Файл об этом параметре ничего не знает.
Четыре способа
- Импорт вместо открытия. «Данные» → «Из текста/CSV», и Excel сам спросит разделитель. Заодно можно назначить колонкам тип — это спасёт коды с ведущими нулями.
- Строка-подсказка. Если добавить первой строкой файла
sep=;, Excel её распознает и применит разделитель. Остальные программы, правда, примут эту строку за данные. - Сменить разделитель в файле. Замена вслепую опасна: разделитель внутри закавыченного поля тоже заменится, и таблица развалится. Делать это надо инструментом, понимающим кавычки.
- Открыть не в Excel. Просмотрщик, который определяет разделитель по содержимому, избавляет от вопроса вовсе.
Как определить разделитель надёжно
Приём простой: перебрать кандидатов — точку с запятой, запятую, табуляцию, вертикальную черту — и для каждого посчитать число полей в первых двух десятках строк. Правильный разделитель даёт одинаковое число полей во всех строках.
Важная тонкость: считать нужно с учётом кавычек. Адрес вида "г. Москва, ул. Тверская" содержит запятую, и без разбора кавычек статистика сломается — а вместе с ней и определение.
Если уверенного ответа нет (строки действительно рваные), честнее сказать об этом прямо и дать переключить вручную, чем молча показать неверную таблицу. Именно так и сделано в «Разборе файла».
Соседние симптомы
Если разделитель определился, а таблица всё равно выглядит странно, посмотрите на два других признака:
- колонки съехали начиная с какой-то строки — где-то непарная кавычка, и дальше разбор идёт со сдвигом;
- вместо русского текста кракозябры — дело не в разделителе, а в кодировке;
- часть строк «слиплась» — в поле есть перевод строки, а разбор идёт построчно без учёта кавычек.
Частые вопросы
Почему у коллеги тот же файл открывается нормально?
У него другие региональные настройки Windows. Файл одинаковый, разное окружение.
Можно ли поменять разделитель для всей системы?
Да, в параметрах региона Windows. Но это повлияет на все программы — лучше пользоваться импортом.
Что выбрать при выгрузке для коллег?
Точку с запятой и UTF-8 с BOM: так файл откроется двойным щелчком и с правильной кириллицей.