Не открывайте файл двойным щелчком. В Excel выберите Данные > Из текстового/CSV-файла, укажите файл, в окне предпросмотра проверьте кодировку (Источник файла) и Разделитель, затем нажмите Преобразовать данные. В Power Query удалите автоматический шаг Измененный тип, задайте столбцам с кодами, артикулами и телефонами тип «Текст», числовым столбцам — их типы и нажмите Закрыть и загрузить. Чтобы обойтись совсем без настроек импорта, сначала преобразуйте CSV в XLSX с текстовыми ячейками.
Проверьте файл перед импортом
Импорт пройдёт гладко, если заранее известны три вещи: какой символ разделяет столбцы, в какой кодировке сохранён текст и в каких столбцах идентификаторы, а не количества. Просмотр CSV и Проверка CSV показывают всё это, ничего не меняя в файле.
| Разделитель | В выгрузках из англоязычных систем обычно запятая. В России и многих странах Европы чаще точка с запятой, потому что запятая там — десятичный разделитель. Встречаются также табуляция и вертикальная черта. |
|---|---|
| Кодировка | Большинство современных выгрузок — в UTF-8. Старые программы для Windows, например учётные системы, часто сохраняют Windows-1251. При неверном выборе кириллица превращается в «кракозябры», а вместо é появляется é. |
| Строка заголовков | Убедитесь, что в первой строке названия столбцов и над ней нет заголовка отчёта или пустой строки. |
| Столбцы, которые нужно защитить | Отметьте все столбцы с идентификаторами, кодами, артикулами, телефонами, почтовыми индексами, ИНН или значениями длиннее 15 цифр, например номерами счетов. Им нужен тип «Текст». |
Импорт через «Из текстового/CSV-файла» (Power Query)
Это стандартный способ импорта в актуальном Excel для Microsoft 365 и свежих версиях Excel для Windows; в версиях Excel для Mac с Power Query всё устроено похоже. Названия пунктов меню в разных версиях могут немного отличаться.
- На вкладке Данные выберите Из текстового/CSV-файла (в некоторых версиях Получить данные > Из файла > Из текстового/CSV-файла) и укажите файл.
- В окне предпросмотра выберите в поле Источник файла кодировку файла, например 65001: Юникод (UTF-8) или 1251: Кириллица (Windows), и задайте Разделитель. Буквы должны читаться нормально, а каждое значение — стоять в своём столбце.
- Нажмите Преобразовать данные, а не Загрузить: при немедленной загрузке Excel применит свою догадку о типах, и длинные коды могут округлиться уже на этом шаге.
- В редакторе Power Query посмотрите на Примененные шаги. Обычно Excel добавляет Повышенные заголовки (первая строка становится названиями столбцов) и Измененный тип. Удалите Измененный тип крестиком рядом с ним.
- Выделите столбцы с кодами, артикулами и телефонами и на вкладке Преобразование задайте Тип данных — Текст. Числового шага больше нет, поэтому они станут текстом прямо из исходного файла.
- Столбцам, по которым нужно считать, задайте тип Целое число, Десятичное число или Дата. Если числа записаны с десятичным разделителем, который не совпадает с вашими настройками, используйте Тип данных > Используя локаль и выберите язык и регион, в которых создан файл.
- Выберите Главная > Закрыть и загрузить.
В некоторых версиях в первом окне предпросмотра есть список Определение типа данных. Вариант Не определять типы данных загружает все столбцы как текст — для кодов это безопасно; затем вы меняете тип только у числовых столбцов.
Импорт старым мастером импорта текста
Старый мастер заранее спрашивает формат каждого столбца. В Excel для Microsoft 365 под Windows он по умолчанию скрыт: включите Из текста (прежних версий) в разделе мастеров импорта данных прежних версий в параметрах данных Excel, затем запустите его через Данные > Получить данные > Мастера прежних версий (Legacy Wizards) > Из текста (прежних версий). В старых версиях кнопка Из текста есть прямо на вкладке Данные, а Excel для Mac при импорте текстового файла открывает похожий мастер.
- Шаг 1: выберите с разделителями, в поле Формат файла укажите кодировку и отметьте Мои данные содержат заголовки, если в первой строке названия столбцов.
- Шаг 2: отметьте разделитель (запятая, точка с запятой, знак табуляции или другой) и проверьте предпросмотр.
- Шаг 3: выделите в предпросмотре каждый столбец, который нужно защитить, и задайте Формат данных столбца — текстовый. Числовые столбцы оставьте в формате общий или выберите дата с нужным порядком, например ДМГ.
- Нажмите Готово и выберите, куда поместить данные.
Как и Power Query, мастер задаёт тип до того, как значение попадёт в ячейку, поэтому он сохраняет длинные коды, а форматирование задним числом — нет.
Без настроек импорта: сначала преобразуйте в XLSX
Если тем, кто будет открывать файл, не хочется во всё это вникать, дайте им книгу Excel вместо CSV. CSV в Excel читает CSV в браузере, не загружая его на сервер, и по умолчанию записывает каждое значение как текстовую ячейку Excel, так что Excel нечего угадывать.
- Откройте CSV в CSV в Excel. Если столбцы разбиты неправильно, задайте разделитель или кодировку в разделе Параметры импорта.
- Для текста с фиксированной шириной, нескольких разделителей сразу или строк отчёта над заголовком используйте Импорт текста…: разбейте по разделителям, фиксированной ширине или шаблону, пропустите первые строки, проверьте предпросмотр и нажмите Импортировать.
- Для файлов с кодами и идентификаторами оставьте Все значения как текст. Распознавать числа и true/false превращает столбцы простых чисел в числа; сначала прочитайте, как эта настройка обходится с телефонами и кодами с буквой E.
- Нажмите Скачать XLSX и откройте книгу в Excel.
Попробуйте на файле-примере: в нём нули в начале, 20-значные номера, артикул, похожий на дату, и примечание, похожее на формулу.
Частые проблемы при импорте и их решение
- Всё оказалось в столбце A. Разделитель указан неверно. Выберите правильный в предпросмотре или в разделе Параметры импорта в ViewCSV.
- Вместо букв «кракозябры»,
éили?. Неверная кодировка. Сначала попробуйте UTF-8, затем Windows-1251 или другую региональную кодировку файла. - Названия столбцов попали в первую строку данных. В Power Query используйте Использовать первую строку в качестве заголовков, а в мастере отметьте Мои данные содержат заголовки.
- В датах перепутаны день и месяц. Импортируйте столбец как текст или задайте его тип с локалью, в которой создан файл.
- Длинные коды заканчиваются нулями. Их преобразовали раньше, чем вы задали тип «Текст». Удалите импорт и начните заново с исходного CSV; вот почему потерянные цифры не восстановить.
- Числа не суммируются. Они импортированы как текст. Поменяйте тип столбца на числовой в Power Query или воспользуйтесь командой Преобразовать в число в Excel.
Прежде чем делиться результатом
Если снова сохранить лист в CSV, типы пропадут, и следующий, кто откроет файл двойным щелчком, столкнётся с теми же проблемами. Отправляйте книгу Excel или CSV вместе с этими шагами импорта. Конвертер ViewCSV обрабатывает файлы до 25 МБ, 100 000 строк, 250 столбцов и 2 миллионов ячеек; файлы крупнее сначала разделите на части.
Источники
Документация Microsoft, пересказанная своими словами. В вашей версии Excel названия пунктов меню могут отличаться.