Как открыть в Excel файл CSV с разделителем запятая?

На самом деле, вопрос не столь уж и тривиален, как может показаться на первый взгляд. Формат CSV, как следует из его названия, подразумевает использование в качестве разделителя символ запятой (,). Однако, многие программы и сервисы допускают использованием и других символов. К таковым можно отнести и MS Excel, особенно если речь идёт о русифицированной его версии. В данной статье я хочу привести решение проблемы с открытием CSV-файла экспорта из Google инструмента для веб-мастеров в MS Excel. Впрочем, тема актуально и для других вариантов.

Содержание:

  • Проблема экспорта поисковых запросов (ПЗ) из Google вебмастер
  • CSV с разделителем запятая в UTF-8
    • Проблема с кодировкой
    • Разделитель запятая в CSV
    • То, что помогло
  • Онлайн сервис для нормализации CSV-файлов
  • Подведём итоги

Проблема экспорта ПЗ из Google вебмастер

Многие из нас используют Google инструмент для веб-мастеров только для добавления сайта. Это неправильно, здесь есть масса полезной информации, например список поисковых запросов, по которым пользователи находят и заходят на сайт. Смотрите отчет: Поисковый трафик > Поисковые запросы – предварительно выбрав нужный сайт в списке.

Здесь же есть и экспорта данных в CSV-формате, с возможностью его открытия в Google Таблицы (онлайн аналог Excel). Ищите кнопку «Загрузить эту таблицу». К слову, количество отображаемых запросов на странице не влияет на полноту экспортируемых данных.

Проблема в том, что в CSV-файле используется разделитель запятой и кодировка UTF-8. Так что даже в Google Таблицы, вместо кириллицы, вы получите только набор вопросов.

проблемы с кодировкой в Google Таблицы при открытии экспортируемого CSV файла в кодировке UTF-8

Другими словами, нам нужно изменить кодировку на ANSI. А для открытия файла CSV в Excel заменить и разделитель запятой (,) на символ точки с запятой (;).

CSV с разделителем запятая в UTF-8

Проблема с кодировкой

Проще всего решить проблему с кодировкой. Для этого вы можете использовать любой текстовый редактор с этой функцией, например Notepad++. Его вы можете скачать бесплатно на официальном сайте: unotepad-plus-plus.org. Далее запускаем редактор и открываем в нём наш CSV-файл, а потом кликаем пункт меню «Кодировки» и меняем на нужную, т.е. пункт «Преобразовать в ANSI».

преобразование кодировки файла в Notepad++ и удаление BOM

У меня на картинке показан обратный процесс: преобразования из ANSI в UTF-8 – но, думаю, вы это и сами заметилии, а принцип тот же.

Разделитель запятая в CSV

Теперь, что касается разделителя запятой. По сути, для Google Таблиц что-то менять не надо. Да и в англоязычной версии MS Excel это может прокатить, проверьте. Тем не менее, если нужна замена, то здесь следует учесть, что просто заменить запятую (,) на символ точки с запятой (;) не получится, т.к. в файле могут быть значения, содержащие этот символ. Они обычно помещены в кавычки. Например:

значение,1,"значение, с запятой",

По идее здесь должна помочь настройка самой операционной системы Windows: Пуск > Панель управления > Язык и региональные стандарты. На вкладке «Форматы» кликаем кнопку «Изменить этот формат…» В открывшемся окне, на вкладке «Числа» замените «Разделитель элементов списка» на нужный, т.е. символ точки с запятой (;) меняем на запятую (,).

изменения разделителя элементов списка в настройках операционной системы Windows

Правда, у меня это не сработало. Да и менять настройки операционной системы, как по мне, дело не благодатное. Тем не менее, я решил указать этот вариант решения проблемы, т.к. на большинстве специализированных форумов ссылаются именно на него.

То, что помогло

Увы, но какой-то дополнительной обработки файлов с расширением .csv в MS Excel я не нашел. Тем не менее, есть возможность обработки, но только в том случае, если сменить расширение файла, например, на .txt. Так что меняем расширение файла и открываем его в Excel.

Появится окно «Мастер текстов (импорт)». Здесь вы можете выбрать формат исходных данных, начальную строку импорта и кодировку файла (нам нужна 1251 : Cyrillic). К слову, почему нужно было менять кодировку, когда её можно выбрать в мастере? Потому, что кодировки UTF-8, по крайней мере у меня, здесь нету. Кликаем кнопку «Далее».

выбор формата исходных данных, начальной строки импорта и кодировки файла в мастере текстов MS Excel

На следующем шаге мы можем выбрать символ-разделитель, причем несколько. Ставим галочку «запятая» и убираем галочку «знак табуляции». Здесь же можно выбрать и символ ограничителя строк. Это тот, что используется для значений, в которых присутствуют спецсимволы (двойные кавычки, запятая, точка с запятой, новая строка и т.д.). Вариант с двойной кавычкой, в моём случае, это то, что надо. Обратите внимание на поле «Образец разбора данных», данные стали таблицей. Кликаем кнопку «Далее».

выбор символа-разделителя и символа ограничителя строк в мастере текстов MS Excel

На последнем шаге можно указать формат данных столбцов, правда выбор здесь не велик: общий (по умолчанию), текстовый, дата и пропустить столбец. Последний вариант представляется мне наиболее интересным, т.к. позволяет сразу исключить ненужные столбцы. Просто выберите соответствующий столбец и кликните для него вариант «пропустить столбец». Кликаем кнопку «Готово».

выбор формата данных столбцов и их пропуск в мастере текстов MS Excel

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

Онлайн сервис для нормализации CSV-файлов

Впрочем, все выше изложенные проблемы решает простой онлайн сервис Normalization CSV. Он позволяет менять кодировку и символ разделителя. Правда существует ограничение в 64 000 байтов (сколько это в Кб?) для загружаемого файла, но CSV-файлы обычно весят не очень много, должно хватить. Результат обработки выводится как обычный текстовый файл, его можно сохранить с расширением .csv.

бесплатный онлайн сервис для нормализации CSV-файлов

К слову, скрипт преобразовавает значение процентов, например: 95 % – в нужное значение для столбца «проценты» в Excel, т.е. делится на 100 и получаем число с плавающей запяток, например: 0,95. Если нужны ещё какие-то преобразования: пишите, попробуем доработать.

Ну, а если предложенный онлайн сервис вас не устраивает, вы всегда можете воспользоваться выше приведённой инструкцией.

Подведём итоги

Некоторые онлайн сервисы предоставляют возможность экспорта данных в просто и удобном CSV-формате. Как следует из названия, подразумевает использование в качестве разделителя символ запятой (,). Однако, многие приложения трактуют этот формат несколько своевольно, что приводит к закономерным проблемам. К тому же сейчас всё более популярна кодировка UTF-8, в то время как Excel или Google Таблицы используют ANSI.

Решить проблему с кодировкой поможет, к примеру, Notepad++, а для того, чтобы разобраться с разделителем, достаточно изменить расширение файла на .txt и воспользоваться мастером текстов в Excel. Впрочем, все эти задачи способен решить бесплатный онлайн сервис Normalization CSV, правда стоит учесть его ограничение на объём загружаемого файла. На этом у меня всё. Спасибо за внимание. Удачи!

Короткая ссылка: http://goo.gl/rAe1Xb

Максим
Максим комментирует...

Сейчас в инете дофига различный csv конверторов, которые всё это понимают и настраивают. Да и софта такого рода хватает.

Константин Кирилюк
Константин Кирилюк комментирует...

@Максим безусловно, вариантов решения данной проблемы существует достаточно много. В тоже время, практика показывает, что люди склонный использовать то, что есть под рукой и чем оно проще тем лучше. В случае с Normalization CSV мы имеем не столько csv конвертор, сколько нормализатор, который работает исходя из особенностей экспорта данных онлайн сервисов, в частности Google инструмента для веб-мастеров.

Максим
Максим комментирует...

@Константин Кирилюк если судить по показателям соцкнопочек, то люди выбирают не самые простые решения и отдают предпочтение перекодированию, переименовыванию и мастертекстовованию :-)

Константин Кирилюк
Константин Кирилюк комментирует...

@Максим ну, не всё так сразу. К тому же популяризацией своего сервиса я не занимался, да и не стремлюсь... несколько опасаюсь нагрузок. Так что пусть используют вот такие, далеко не простые решения, а кому надо могут воспользоваться и сервисом.

Максим
Максим комментирует...

Заметил траблу с Normalization CSV. Если в CSV файле присутствует символ бесконечности ∞ то на нём всё и стопорится, по крайней мере если делать смену кодировки из UTF-8 в ANSI.

Константин Кирилюк
Константин Кирилюк комментирует...

@Максим да, была такая проблема. Пытался и так и эдак, но пришлось заменить этот символ на знак вопроса. Это самый оптимальный вариант, который я вижу на данный момент. Как я понял проблема в iconv мутках.

Анонимный
Анонимный комментирует...

Спасибо, выручили )

Анонимный
Анонимный комментирует...

Помимо ',' в Разделитель элементов списка в разделе Числа - Разделитель целой и дробной части поставьте '.' и все заработает

Елизавета Репина
Елизавета Репина комментирует...

Константин, большое спасибо

Анонимный
Анонимный комментирует...

Помимо ',' в Разделитель элементов списка в разделе Числа - Разделитель целой и дробной части поставьте '.' и все заработает

вот это очень помогло. спасибо анониму от анонима! большое спасибо!

Анонимный
Анонимный комментирует...

чувак, отличная публикация. благодарю

Ivan Ma
Ivan Ma комментирует...

Огромное спасибо, статья очень выручила! :)