Как поменять кодировку в Excel: 5 рабочих способов для CSV, TXT и XLSX

Работа с текстовыми файлами в Microsoft Excel часто сталкивается с проблемой некорректного отображения символов — так называемых "кракозябр". Это происходит из-за несовпадения кодировок при импорте данных из CSV, TXT или других форматов. В 2026 году, когда обмен данными между системами стал еще более интенсивным, умение правильно управлять кодировками в Excel стало критически важным навыком для аналитиков, бухгалтеров и маркетологов.

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

Почему Excel неправильно отображает текст: причины проблемы

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

Другие распространённые причины:

  • 📁 Импорт из внешних источников: данные из , MySQL или веб-скрейперов часто приходят в неожиданных кодировках.
  • 🔄 Экспорт в устаревшие форматы: сохранение в CSV для старых систем (например, банковских программ) требует специфических кодировок.
  • 🌍 Многоязычные файлы: смешение кириллицы, латиницы и иероглифов в одном документе.
  • 🖥️ Настройки региональной системы: если в Windows установлена кодировка по умолчанию, отличная от UTF-8.

Интересный факт: Excel 2019 и новее по умолчанию использует UTF-8 для импорта CSV, но более старые версии (например, Excel 2010) могут автоматически выбирать ANSI, что и приводит к проблемам.

📊 Какую кодировку вы чаще всего используете в работе?
UTF-8
Windows-1251 (ANSI)
DOS (CP866)
Не знаю/не слежу
Другую

Способ 1: Изменение кодировки при импорте текстового файла

Самый надёжный метод — указать правильную кодировку на этапе импорта данных. Вот пошаговая инструкция:

  1. Откройте Excel и перейдите на вкладку ДанныеПолучить данныеИз файлаИз текста/CSV.
  2. Выберите нужный файл (.txt, .csv) и нажмите Импорт.
  3. В окне предварительного просмотра кликните на выпадающий список Файловое происхождение (или File Origin в английской версии).
  4. Выберите одну из доступных кодировок:
    • 📌 65001: Unicode (UTF-8) — универсальный стандарт для современных файлов.
    • 📌 1251: Кириллица (Windows) — для файлов, созданных в Windows на русском языке.
    • 📌 866: OEM (DOS) — для устаревших систем или файлов из .
    • 📌 1200: Unicode — альтернативный вариант для UTF-16.
  • Нажмите Загрузить, чтобы импортировать данные с правильной кодировкой.
  • Важно: Если в файле смешаны несколько кодировок (например, заголовки на английском в UTF-8, а данные на русском в Windows-1251), этот метод может не сработать. В таком случае потребуется предварительная обработка файла в Notepad++ или Sublime Text.

    Убедиться, что файл не открыт в других программах|

    Сделать резервную копию оригинального файла|

    Проверить первые 5-10 строк файла в блокноте для определения кодировки|

    Отключить антивирус (он может блокировать доступ к файлу во время импорта)-->

    Способ 2: Сохранение файла Excel в другой кодировке

    Если вам нужно экспортировать данные из Excel в текстовый формат с конкретной кодировкой (например, для загрузки в другую систему), следуйте этим шагам:

    1. Откройте файл в Excel и перейдите в ФайлСохранить как.
    2. В выпадающем списке Тип файла выберите Текстовый файл CSV (.csv) или Текстовые файлы (.txt).
    3. Нажмите кнопку Сервис (или Tools) рядом с кнопкой Сохранить и выберите Веб-параметры (Web Options).
    4. В открывшемся окне перейдите на вкладку Кодировка и выберите нужный вариант:
      • 🔹 Unicode (UTF-8) — для современных систем.
      • 🔹 Другая: Кириллица (Windows) — для совместимости со старыми программами.
  • Сохраните файл. При появлении предупреждения о возможной потере форматирования нажмите Да.
  • Критическая деталь: При сохранении в CSV с кодировкой UTF-8 Excel по умолчанию не добавляет BOM (метку порядка байтов), что может привести к проблемам в некоторых программах (например, в 1С). Чтобы добавить BOM, потребуется использовать Notepad++ или специализированные конвертеры.

    Что такое BOM и почему он важен?

    BOM (Byte Order Mark) — это невидимый символ в начале UTF-8 файла, который указывает программе, что файл действительно в этой кодировке. Некоторые системы (например, 1С или старые версии PHP) требуют наличия BOM для корректной обработки UTF-8. Его отсутствие может привести к тому, что кириллические символы будут отображаться как кракозябры, даже если кодировка указана верно.

    Способ 3: Использование Power Query для конвертации кодировок

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

    Инструкция:

    1. Перейдите на вкладку ДанныеПолучить данныеИз файлаИз текста/CSV.
    2. Выберите файл и в окне предварительного просмотра нажмите Преобразовать данные (или Transform Data).
    3. В редакторе Power Query перейдите на вкладку ГлавнаяДополнительноКодировка.
    4. Выберите нужную кодировку из списка (например, Windows-1251 или ISO-8859-5 для кириллицы).
    5. Нажмите Закрыть и загрузить, чтобы применить изменения.

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

    Кодировка Назначение Когда использовать
    UTF-8 Универсальная кодировка, поддерживает все языки Для современных систем, веб, обмена данными между платформами
    Windows-1251 (ANSI) Стандарт для кириллицы в Windows Для работы со старыми программами (1С, бухгалтерские системы)
    DOS (CP866) Устаревшая кодировка для DOS и терминалов Для импорта данных из старых баз или банковских выписок
    KOI8-R Кодировка для Unix-систем Для файлов, полученных с серверов или из Linux-систем
    UTF-16 Расширенный Unicode с поддержкой редких символов Для работы с иероглифами, арабским письмом или специальными символами

    Способ 4: Конвертация кодировки через Notepad++ (для сложных случаев)

    Если Excel упорно не хочет корректно открывать файл, на помощь придёт Notepad++ — бесплатный текстовый редактор с поддержкой десятков кодировок. Этот метод подходит для файлов, где смешаны несколько кодировок или присутствуют непечатаемые символы.

    Пошаговая инструкция:

    1. Откройте файл в Notepad++.
    2. Перейдите в меню КодировкиПреобразовать в ANSI (или Convert to UTF-8 в английской версии).
    3. Если текст отображается некорректно, попробуйте другие кодировки из списка:
      • 🔠 Кодировки → Кириллица → Windows-1251
      • 🔠 Кодировки → Кириллица → KOI8-R
      • 🔠 Кодировки → Кириллица → DOS (CP866)
  • После того как текст стал читаемым, сохраните файл в нужной кодировке (Кодировки → Преобразовать в UTF-8 без BOM или другой вариант).
  • Теперь откройте файл в Excel — он должен отобразиться корректно.
  • Совет: В Notepad++ есть функция Плагины → Compare → Compare, которая позволяет сравнить оригинальный и конвертированный файлы, чтобы убедиться, что данные не были искажены.

    Способ 5: Автоматизация через VBA-скрипты (для продвинутых пользователей)

    Если вам регулярно приходится конвертировать файлы между кодировками, можно автоматизировать процесс с помощью VBA (Visual Basic for Applications). Ниже приведён скрипт, который конвертирует текстовый файл из Windows-1251 в UTF-8:

    Sub ConvertEncoding()
    

    Dim filePath As String

    Dim content As String

    Dim utf8Content() As Byte

    ' Укажите путь к файлу

    filePath = "C:\path\to\your\file.txt"

    ' Чтение файла в кодировке Windows-1251

    Open filePath For Input As #1

    content = Input$(LOF(1), 1)

    Close #1

    ' Конвертация в UTF-8

    utf8Content = StrConv(content, vbFromUnicode, 1251)

    utf8Content = StrConv(utf8Content, vbUnicode)

    utf8Content = StrConv(utf8Content, vbUTF8)

    ' Сохранение результата

    Open filePath & ".utf8.txt" For Output As #2

    Print #2, utf8Content

    Close #2

    MsgBox "Конвертация завершена!", vbInformation

    End Sub

    Чтобы использовать этот скрипт:

    1. Нажмите Alt + F11, чтобы открыть редактор VBA.
    2. Вставьте код в новый модуль (InsertModule).
    3. Измените путь к файлу в строке filePath.
    4. Запустите скрипт на выполнение (F5).
    5. Этот метод особенно полезен для обработки большого количества файлов или интеграции конвертации в более сложные макросы.

      Распространённые ошибки и как их избежать

      При работе с кодировками в Excel пользователи часто допускают типичные ошибки, которые приводят к потере данных или некорректному отображению. Вот самые частые из них:

      • Игнорирование предупреждений: Когда Excel спрашивает, "Файл содержит данные, которые могут быть несовместимы с выбранным форматом", многие просто нажимают ОК, не проверяя результат. Это может привести к обрезке данных или замене символов.
      • Сохранение в CSV без указания кодировки: По умолчанию Excel сохраняет CSV в кодировке системы, что не всегда подходит для обмена данными.
      • Использование UTF-8 с BOM для всех файлов: Некоторые программы (например, ) не понимают BOM и могут неправильно интерпретировать файл.
      • Попытка открыть бинарные файлы как текст: Файлы .xlsx или .bin не являются текстовыми — их нельзя конвертировать через изменение кодировки.
    ⚠️ Внимание: Если вы работаете с финансовыми данными или критически важными отчётами, всегда проверяйте итоговый файл после конвертации кодировки. Например, символ валюты "₽" (знак рубля) может некорректно отображаться в некоторых кодировках, что приведёт к ошибкам в расчётах.

    Ещё одна распространённая проблема — потеря разделителей в CSV-файлах. Если в данных содержатся запятые (например, в адресах или описаниях), а файл сохранён с разделителем-запятой, Excel может неправильно разбить данные по столбцам. В таких случаях лучше использовать разделитель-точку с запятой (;) или табуляцию.

    FAQ: Ответы на частые вопросы

    Можно ли в Excel одновременно работать с несколькими кодировками в одном файле?

    Нет, Excel не поддерживает смешанные кодировки в одном документе. Если файл содержит текст в разных кодировках (например, заголовки в UTF-8, а данные в Windows-1251), его необходимо предварительно обработать в текстовом редакторе (например, Notepad++) или специализированном конвертере.

    Почему после конвертации в UTF-8 русские буквы отображаются как знаки вопроса?

    Это происходит из-за отсутствия BOM (метки порядка байтов) в UTF-8 файле. Некоторые программы (например, или старые версии PHP) требуют наличия BOM для корректного распознавания кодировки. Решение: сохраните файл в Notepad++ с опцией UTF-8 с BOM.

    Как узнать, в какой кодировке сохранён файл, если Excel его не открывает?

    Есть несколько способов:

    1. Откройте файл в Notepad++ — текущая кодировка будет указана в строке состояния.
    2. Используйте командную строку Windows: chcp (показывает текущую кодировку консоли), затем type файл.txt.
    3. Воспользуйтесь онлайн-инструментами вроде Encoding.io.

    Можно ли автоматизировать конвертацию кодировок для сотен файлов?

    Да, для этого подойдут:

    • 📁 Пакетная обработка в Notepad++: через меню Поиск → Найти в файлах с заменой кодировки.
    • 📁 PowerShell-скрипты: например, Get-Content file.txt | Out-File -Encoding UTF8 file_utf8.txt.
    • 📁 Специализированные утилиты: iconv (для Linux/macOS) или Bulk Encoding Converter.

    Почему после экспорта в CSV из Excel даты превращаются в числа?

    Это особенность формата CSV — он не сохраняет форматирование ячеек. Чтобы даты отображались корректно:

    1. Перед экспортом преобразуйте даты в текстовый формат с помощью функции =ТЕКСТ(A1; "дд.мм.гггг").
    2. Или настройте региональные параметры в системе, чтобы разделителем даты была точка (.).

    Если ни один из описанных методов не помог решить проблему с кодировкой, проверьте, не связано ли это с региональными настройками Windows. Иногда сбой происходит из-за несоответствия языковых параметров системы и ожидаемой кодировки файла. В таком случае поможет смена региона на "Русский (Россия)" в Панель управления → Часы и регион → Регион.