Импорт данных в Excel из текстовых файлов (CSV/TSV/TXT)
Возможности !SEMTools
↑ Навигация по задачам в Excel и возможностям надстройки !SEMTools ↑

Импорт данных из CSV, TSV и других текстовых форматов — повседневная задача для специалистов по SEO, аналитике и маркетингу. Выгрузки из рекламных кабинетов, поисковых систем, парсеров и CRM часто достигают сотен мегабайт, а иногда и гигабайт.

Стандартные методы Excel, которые отлично работают с небольшими файлами, дают сбой при серьёзных объёмах данных. В этой статье разберём, почему штатные инструменты не справляются и как правильно организовать импорт больших текстовых файлов.

Штатные методы импорта в Excel

Microsoft Excel предлагает несколько встроенных способов загрузки текстовых файлов. Рассмотрим их сильные и слабые стороны.

1. Открытие файла через меню «Файл» → «Открыть»

Самый очевидный способ — просто открыть CSV-файл как обычный документ Excel. При этом запускается Мастер импорта текстов, который позволяет выбрать разделитель и формат колонок.

Проблемы:

  • Excel пытается загрузить весь файл целиком в оперативную память. Если файл превышает доступный объём RAM, программа зависает или выдает ошибку.
  • На этапе открытия нет возможности отфильтровать ненужные строки — импортируются абсолютно все данные.
  • При большом количестве колонок Excel может некорректно определить типы данных, превратив числовые идентификаторы в экспоненциальный формат.

2. Power Query (Получить и преобразовать)

Power Query (доступен в Excel 2016 и новее через вкладку «Данные» → «Получить данные» → «Из текстового файла») — гораздо более мощный инструмент. Он позволяет применять фильтры, менять типы данных и объединять файлы до загрузки в лист.

Казалось бы, идеальное решение? Но есть нюансы:

  • Power Query также загружает весь файл в оперативную память в процессе обработки. Механизм построчного чтения отсутствует.
  • При работе с файлами от 500 МБ и выше Power Query может «задуматься» на десятки минут, а индикатор прогресса не всегда позволяет понять, идёт процесс или программа зависла.
  • Сложные преобразования и объединение нескольких больших файлов могут привести к исчерпанию памяти и вылету Excel.

Power Query — отличный инструмент для трансформации данных, но для простой фильтрации гигантских файлов он избыточен и неэффективен по памяти.

Почему могут неправильно отображаться данные

Отдельная боль при импорте — неправильное определение кодировки файла. Excel пытается открыть текстовый файл в кодировке, установленной в системе по умолчанию (обычно Windows-1251 для русскоязычной версии).

В результате:

  • Файлы в UTF-8 без BOM открываются с кракозябрами вместо русского текста.
  • Файлы в KOI8-R или других редких кодировках становятся полностью нечитаемыми.
  • Приходится вручную пересохранять файл в нужной кодировке через Блокнот, что неудобно при регулярной работе.

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

Построчное чтение больших текстовых файлов

Главный недостаток всех штатных методов — попытка загрузить файл в память целиком. Для больших данных гораздо эффективнее подход построчного чтения (streaming).

В этом случае программа:

  1. Открывает файл и читает его по одной строке за раз.
  2. Сразу применяет условия фильтрации к текущей строке.
  3. Если строка подходит — записывает её в выходной файл или на лист Excel.
  4. Если нет — переходит к следующей строке, не храня её в памяти.

Таким образом, даже файл размером 100 ГБ (и больше!) может быть обработан на компьютере с 4 ГБ оперативной памяти. Единственное ограничение — скорость чтения с диска.

Именно этот подход реализован в двух инструментах надстройки !SEMTools, о которых пойдёт речь далее.


Далее: обзор двух методов выборки из больших CSV в !SEMTools — гибкого (с двумя условиями) и сверхбыстрого на базе ripgrep.

В !SEMTools есть два инструмента для выборки данных из CSV, которые решают эту проблему разными способами. Оба находятся в разделе «Web (парсинг, SEO, PPC)» → «Извлечь» → «Выборки из CSV».

Импорт данных из CSV - процедуры надстройки !SEMTools для Excel

Метод 1: Гибкая выборка с условиями

Этот инструмент подойдёт, когда нужна тонкая настройка фильтрации. Вы можете задать два условия одновременно и комбинировать их логическими операторами «И» / «ИЛИ».

Возможности:

  • 7 типов сравнения: содержит, начинается с, заканчивается на, удовлетворяет RegEx, больше чем, меньше чем, является вложенным для любого из (через запятую)
  • Работа с двумя паттернами и выбор логического оператора
  • Автоопределение разделителя при выборе файла и предпросмотр первых 10 строк
  • Поддержка разных кодировок: UTF-8, Windows-1251, KOI8-R, KOI8-U, ISO-8859-5
  • Выбор колонки для применения условий
Выборка данных из больших CSV - окно с опциями

Инструмент построчно читает исходный CSV, применяет условия и выводит подходящие строки на новый лист Excel. При достижении лимита строк (1 048 576) автоматически создаётся следующий лист.

Когда использовать: если нужны сложные условия, несколько паттернов, работа с регулярными выражениями.

Метод 2: Быстрая фильтрация через ripgrep

Для максимальной скорости обработки очень больших файлов (от 500 МБ и выше) используется второй инструмент. Он основан на утилите ripgrep — одной из самых быстрых программ для построчного поиска.

Особенности:

  • Максимальная производительность — ripgrep написан на Rust и использует все преимущества многопоточности
  • Простота: выбираете TSV-файл, вводите паттерн, получаете отфильтрованный файл
  • Работа с TSV (файлы с табуляцией как разделителем)
  • Скрытый режим — командная строка не мешает работе
  • Таймер выполнения — видите, сколько времени заняла фильтрация
Окно для парсинга CSV с помощью ripgrep

При первом запуске инструмент проверит наличие ripgrep в системе. Если утилита не найдена, появится предложение перейти на страницу с подробной инструкцией по установке.

Установка ripgrep

Для работы макроса фильтрации TSV-файлов необходима утилита ripgrep (rg.exe). Она должна находиться в папке C:\Windows\System32.

  1. Скачайте ripgrep с официальной github-страницы релизов:

    https://github.com/BurntSushi/ripgrep/releases
  2. Найдите раздел Assets последней версии.
  3. Скачайте архив для Windows (например, на момент написания этой статьи последняя версия для Windows — ripgrep-15.1.0-x86_64-pc-windows-msvc.zip
  4. Откройте архив (в windows можно просто зайти внутрь zip-папки).
  5. Найдите в папке файл rg.exe.
  6. Скопируйте rg.exe в папку C:\Windows\System32\
  7. Готово — макрос сможет найти и использовать утилиту.

Проверка установки (не обязательно)

  1. Откройте командную строку (Win + R → cmd → Enter).
  2. Выполните команду: rg --version
  3. Если вы видите информацию о версии — установка прошла успешно.

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

Сравнение методов

ПараметрГибкая выборка (VBA)Быстрая фильтрация (ripgrep)
СкоростьСредняя, зависит от объёма🔴 Очень высокая
Сложность условий🔴 Высокая (2 паттерна, 7 типов, логические операторы)Низкая (один паттерн)
Выбор колонки🔴 ДаНет (поиск по всей строке)
Дополнительные требованияНетТребуется ripgrep (устанавливается один раз)
Вывод прямо на листДаНет (создаётся файл выборки)

Инструменты дополняют друг друга и покрывают 99% сценариев работы с большими текстовыми файлами в Excel. К примеру, можно сделать базовую выборку с помощью ripgrep, а уже далее пользоваться сложными условиями выборки по результирующему файлу, который будет заметно меньше.