Как открыть CSV в Excel и сохранить ведущие нули в артикулах
В CSV артикул записан как 00127. После двойного щелчка по файлу Excel показывает 127, и соединение со справочником перестаёт работать. Добавление формата «00000» меняет вид ячейки, но не возвращает исходное текстовое значение. Для идентификаторов тип надо определить при импорте.
Разделите числа и коды
Количество товара можно складывать, артикул — нет. Даже если код состоит только из цифр, ведущие нули и длина могут быть значимыми. То же относится к почтовым индексам, табельным номерам и номерам документов. Храните их как текст в источнике и запросе.
Формат отображения полезен для подписей, но не меняет тип значения. Число 127 с маской 00000 и строка 00127 выглядят похоже, однако при обмене данными ведут себя по-разному. Выбор типа должен отражать смысл поля.
Импортируйте CSV через Power Query
В Excel откройте «Данные» → «Из текста/CSV», выберите файл и проверьте кодировку и разделитель в предварительном просмотре. Перейдите к преобразованию данных. У столбца артикула задайте текстовый тип до шага, который преобразовал его в число. Если автоматический «Изменённый тип» уже удалил нули, удалите или исправьте этот шаг и повторите преобразование из исходного текста.
В примере M CSV содержит SKU и Qty. Культура задана для числового количества; SKU остаётся текстом. Исходный файл должен действительно содержать 00127: если нули потеряны ещё при выгрузке, импорт не узнает их из отсутствующих данных.
let
Source = Csv.Document(File.Contents(FilePath), [Delimiter=";", Encoding=65001, QuoteStyle=QuoteStyle.Csv]),
Headers = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
Typed = Table.TransformColumnTypes(Headers, {{"SKU", type text}, {"Qty", Int64.Type}}, "ru-RU")
in
Typed
Проверьте результат по значениям
Возьмите контрольные коды 00127,127 и A127. Они должны остаться тремя разными значениями. Проверьте длину первого кода и его совпадение со справочником. Не ограничивайтесь взглядом на ячейку: формат может скрывать фактический тип.
Для кириллицы проверьте названия товаров, для чисел — десятичный разделитель. Правильные артикулы не компенсируют неверно прочитанную сумму. Эти проверки удобно сохранить на маленьком тестовом файле вместе с рабочей книгой.
Как восстановить уже испорченные коды
Если система задаёт фиксированную длину в пять символов, можно восстановить 127 как 00127 по этому подтверждённому правилу. Но при переменной длине 127 и 00127 могут означать разные товары. Тогда вернитесь к исходной выгрузке или владельцу справочника; автоматическое дополнение нулями создаст новые ложные ключи.
После настройки замените CSV новым файлом с теми же столбцами и обновите запрос. Убедитесь, что текстовый тип сохранился и новые коды не преобразовались автоматически. В процедуре передачи отчёта опишите, как именно импортируется файл: повторное открытие двойным щелчком обходит ваш настроенный запрос.
Дальше используйте тот же текстовый тип в справочнике и всех объединениях. Пробелы по краям можно очищать по согласованному правилу, сохраняя исходное значение для диагностики. Тогда строка 00127 пройдёт весь путь от выгрузки до отчёта без скрытой смены идентичности.
Соберите обновляемый отчёт на практике
В программе курса есть отдельный урок об импорте CSV: кодировка, разделитель и ведущие нули. Затем вы соедините выгрузки со справочниками и проверите результат обновления. Такой путь полезен, когда один неверный тип ломает сразу несколько последующих расчётов отчёта.
Откройте программу курса «Продвинутый Excel: Power Query, Power Pivot и автоматизация отчётов».
Начните с пробного урока о рабочей книге и первом запросе Power Query.
Для следующего этапа: объединение файлов из папки и обновление отчёта.
Продолжить на практике
- Продвинутый Excel: Power Query, Power Pivot и автоматизация отчётов ↗
Научитесь собирать и обновлять рабочие отчёты в Excel. Power Query для загрузки и очистки данных, сложные формулы, Power Pivot и DAX для расчётов. Практикумы по продажам, остаткам и закупкам, план-факту подразделений.
