Выгрузки из CRM, интернет-магазина, банка или рекламного кабинета часто приходят пачкой CSV-файлов: по дням, по менеджерам, по складам. Чтобы разобрать их в Excel, файлы нужно сначала собрать в один. Когда файлов два-три, можно скопировать строки руками. Когда их десятки или сотни, это работа для одной команды.
Ниже онлайн-утилита, которая делает всё прямо в браузере, и три способа без сторонних программ. Все команды я проверил на настоящих файлах и заодно нашёл подвохи, из-за которых склеенный файл получается испорченным. О них тоже расскажу.
Объединить CSV-файлы онлайн: бесплатная утилита
Добавьте файлы и скачайте результат. Утилита оставит одну шапку, сопоставит столбцы по названиям (даже если в файлах они идут в разном порядке), сама определит разделитель и кодировку, в том числе старую Windows-1251, из-за которой обычно появляются кракозябры. Итоговый файл Excel откроет с русскими буквами.
Файлы никуда не загружаются: вся работа идёт в вашем браузере, на сайт не уходит ни строчки. Поэтому утилитой можно спокойно объединять выгрузки с клиентами, телефонами и суммами.
Какой способ выбрать
- Нужно быстро и без команд: утилита выше.
- В файлах есть строка с названиями столбцов (почти всегда так): способ 2, PowerShell. Шапка останется одна, строки не склеятся, файлы пойдут по порядку.
- Шапок нет, файлы чистые, нужно очень быстро: способ 1, одна команда
copy /b. - Linux или WSL: способ 3, одна строка с
awk.
Подготовка: сложите файлы в одну папку
Создайте папку, например C:\total, и скопируйте туда все CSV-файлы, которые нужно объединить. Больше в этой папке ничего быть не должно.
Для примеров ниже у меня три файла: 1.csv, 2.csv и 10.csv. В каждом есть шапка id;имя;город и несколько строк, в кодировке UTF-8, как их обычно отдают современные сервисы.
Способ 1. Командная строка: одна команда
- Нажмите Win+R, введите
cmdи нажмите ОК. - Перейдите в папку с файлами:
cd C:\total- Выполните команду, где
result.csv- имя итогового файла:
copy /b *.csv result.csvКомандная строка перечислит файлы, которые склеила, и сообщит, что создан один файл (в русской Windows: «Скопировано файлов: 1»):
1.csv
10.csv
2.csv
1 file(s) copied.Ключ /b обязателен. Без него copy дописывает в конец файла служебный символ Ctrl+Z (байт 1A), и в последней ячейке таблицы появляется мусор.
Итого: copy /b хорош, когда шапок нет и файлы заведомо аккуратные. Во всех остальных случаях берите способ 2.
Способ 2. PowerShell: одна шапка и правильный порядок
PowerShell есть в любой Windows 10 и 11, ставить ничего не нужно. Этот способ оставляет одну шапку, сортирует файлы по-человечески (1, 2, 10), не склеивает строки и сохраняет результат так, что Excel правильно показывает русские буквы.
- Нажмите Win+R, введите
powershellи нажмите ОК. - Перейдите в папку с файлами:
cd C:\total- Скопируйте и вставьте весь блок целиком, затем нажмите Enter:
$files = Get-ChildItem *.csv -Exclude result.csv |
Sort-Object { [regex]::Replace($_.Name, '\d+', { $args[0].Value.PadLeft(10, '0') }) }
$header = Get-Content $files[0] -TotalCount 1 -Encoding UTF8
$body = foreach ($f in $files) { Get-Content $f -Encoding UTF8 | Select-Object -Skip 1 }
@($header) + $body | Set-Content result.csv -Encoding UTF8В папке появится result.csv. Вот что получилось из моих трёх файлов:
id;имя;город
1;Анна;Москва
2;Борис;Казань
3;Вера;Самара
4;Глеб;Сочи
5;Дина;ОмскШапка одна, порядок правильный, строки не склеились.
Что делает каждая строка:
- первая собирает все CSV-файлы в папке, кроме самого
result.csv(чтобы при повторном запуске он не попал сам в себя), и сортирует их по номерам; - вторая берёт шапку из первого файла;
- третья берёт из каждого файла все строки, кроме первой;
- четвёртая записывает шапку и строки в
result.csvв кодировке UTF-8 с меткой BOM, по которой Excel понимает, что в файле русские буквы.
Сколько это занимает. Я проверил на 50 файлах по 20 000 строк: миллион строк и 52 МБ склеились за 26 секунд. Для обычных выгрузок это мгновенно.
Способ 3. Linux и WSL: одна строка
В Linux (и в Ubuntu внутри Windows через WSL) то же самое делает awk:
cd ~/total
awk 'FNR==1 { sub(/^\xef\xbb\xbf/, ""); if (NR!=1) next } { sub(/\r$/, ""); print }' $(ls -v *.csv) > ../result.csvКоманда берёт шапку только из первого файла, убирает метки BOM и виндовые переводы строк, а ls -v задаёт порядок 1, 2, 10. Результат пишется на уровень выше, чтобы при повторном запуске он не попал в список файлов. Проверено в Ubuntu 24.04.
Если нужен файл для Excel, удобнее сделать это в Windows способом 2: команда awk сохраняет результат без метки BOM и с переводами строк Linux.
Частые проблемы после объединения
| Что видно | Почему | Что делать |
|---|---|---|
| В последней ячейке непонятный символ | copy без ключа /b дописал Ctrl+Z |
Склеить заново с /b или способом 2 |
| Строка с названиями столбцов повторяется | copy склеивает файлы целиком |
Способ 2 или 3 |
| Две строки слиплись в одну | Файл не заканчивался переводом строки | Способ 2 или 3 |
| Вместо русских букв кракозябры | Кодировка файлов не та, что ожидается | В способе 2 -Encoding Default для чтения |
| Файлы идут в порядке 1, 10, 2 | Сортировка по алфавиту | Способ 2 или 3 либо переименовать в 01, 02, 10 |
| В Excel всё в одном столбце | Разделитель запятая, а Excel ждёт точку с запятой | Открыть через «Данные» → «Из текстового/CSV-файла» и выбрать разделитель |
Частые вопросы
Сколько файлов можно объединить?
Сколько угодно, ограничений у команд нет. Ограничение есть у Excel: на одном листе помещается 1 048 576 строк. Если итог больше, Excel откроет только первую часть.
Что делать, если в файлах разные столбцы?
Воспользуйтесь утилитой в начале статьи: она сопоставляет столбцы по названиям, а там, где столбца в файле нет, оставляет пустые ячейки и предупреждает об этом. Три способа с командами просто ставят строки друг под другом, поэтому для них столбцы во всех файлах должны быть одинаковыми и идти в одном порядке, иначе данные съедут в чужие столбцы.
Можно ли объединить CSV без командной строки?
Можно. Проще всего утилитой в начале статьи. В Excel то же умеет встроенная надстройка Power Query: «Данные» → «Получить данные» → «Из файла» → «Из папки».
Безопасно ли объединять файлы онлайн?
Зависит от сервиса. Многие онлайн-сервисы загружают ваши файлы на свой сервер, и что с ними происходит дальше, неизвестно. Утилита на этой странице работает иначе: файлы читаются и склеиваются в самом браузере и никуда не отправляются. Проверить просто: откройте страницу, отключите интернет, и объединение всё равно сработает.
Как объединить CSV по столбцам, а не по строкам?
Это другая задача: нужно подтянуть данные из одной таблицы в другую по общему полю, например по номеру заказа. В Excel для этого служат функции ВПР и ПРОСМОТРX. Способы из этой статьи для неё не подходят.
Читайте также
- Нейросеть на своём компьютере: Ollama с нуля - как запустить локальную нейросеть и что реально потянет видеокарта с 4 ГБ.

Комментарии 2
Спасибо, полезно. Пытался через pyton склеить, но что-то не пошло. А можно было через powershell :o
А теперь ещё можно прямо в браузере склеивать, добавлена утилита, которая работает локально на вашем ПК (даже офлайн).