Как изменить кодировку в Excel: 5 рабочих способов для разных форматов

Microsoft Excel — мощный инструмент для работы с данными, но иногда при открытии файлов вместо нормального текста пользователи видят нечитаемые символы (так называемые "кракозябры"). Это происходит из-за несовпадения кодировок — способа представления текстовой информации в двоичном коде. Проблема особенно актуальна при работе с файлами, созданными в разных операционных системах (Windows, macOS, Linux) или экспортированными из внешних источников.

В этой статье вы найдёте пошаговые инструкции по изменению кодировки в Excel для разных версий программы (2010, 2013, 2016, 2019, 2021 и Microsoft 365), а также решения для специфических форматов файлов: .csv, .txt, .xls и .xlsx. Мы разберём как стандартные методы через интерфейс программы, так и продвинутые приёмы с использованием Power Query и VBA.

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

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

  • 🔤 Вместо кириллицы отображаются знаки Цифры или ?????? — классический признак конфликта кодировок UTF-8 и Windows-1251.
  • 📊 Данные в ячейках "съезжают" — символы заменяются на иероглифы или спецзнаки (█, ●).
  • 📄 Файл открывается, но формулы превращаются в текст вида =СУММ(А1:А10) вместо результата вычисления.
  • 🔄 При экспорте в .csv русские буквы заменяются на Русский.

Основные причины:

  1. Несовпадение кодировки файла и системы. Например, файл сохранён в UTF-8, а Excel пытается открыть его как ANSI.
  2. Ошибки при экспорте/импорте. Часто возникает при переносе данных из баз данных (MySQL, PostgreSQL) или веб-сервисов.
  3. Повреждение файла. Например, после некорректного сохранения или передачи по email.
  4. Особенности региональных настроек. В Windows по умолчанию используется Windows-1251 для кириллицы, а в macOSUTF-8.
📊 С какой кодировкой вы чаще всего сталкиваетесь в Excel?
UTF-8
Windows-1251
ANSI
Другая
Не знаю

Способ 1: Изменение кодировки при открытии файла (для CSV/TXT)

Самый простой метод — указать правильную кодировку при первом открытии файла. Это работает для текстовых форматов (.csv, .txt, .prn).

  1. Запустите Excel и выберите Файл → Открыть.
  2. Найдите нужный файл, но не открывайте его двойным кликом!
  3. Нажмите на стрелку рядом с кнопкой Открыть и выберите Открыть и восстановить (если файл повреждён) или просто Открыть.
  4. В появившемся окне Мастера импорта текста выберите формат данных (С разделителями или Фиксированной ширины) и нажмите Далее.
  5. На втором шаге в выпадающем списке Формат файла укажите нужную кодировку (например, 65001 (Unicode UTF-8) или 1251 (Кириллица Windows)).
  6. Завершите импорт, следуя подсказкам мастера.

Важно: Если файл уже был открыт ранее и сохранился с неверной кодировкой, этот метод не поможет — потребуется повторный экспорт данных из источника.

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

Проверить расширение (должно быть .csv, а не .xls)|

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

Выбрать правильный разделитель (запятая, точка с запятой, табуляция)

-->

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

Если файл уже открыт, но отображается некорректно, можно сохранить его с другой кодировкой. Этот метод подходит для .xlsx и .xls файлов, а также для текстовых форматов.

  1. Откройте проблемный файл в Excel.
  2. Перейдите в Файл → Сохранить как.
  3. В выпадающем списке Тип файла выберите Текстовый файл CSV (.csv) или Текст Unicode (.txt).
  4. Нажмите Сохранить. Появится предупреждение о возможной потере данных — подтвердите действие.
  5. Закройте файл и откройте его заново, выбрав правильную кодировку (см. Способ 1).
Формат файла Рекомендуемая кодировка Когда использовать
.csv UTF-8 (65001) Для обмена данными между разными ОС или программами
.txt Unicode (UTF-16) Для сохранения текста с поддержкой всех символов
.xlsx ANSI (1251 для Windows) Для внутреннего использования в одной ОС
.prn OEM 866 Для совместимости со старыми DOS-программами
⚠️ Внимание: При сохранении в CSV все формулы превратятся в текст, а форматирование будет утеряно. Для сохранения вычислений используйте формат .xlsx с последующим исправлением кодировки через Power Query (см. Способ 4).

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

Если Excel упорно не хочет правильно открывать файл, можно воспользоваться промежуточной конвертацией через стандартный Блокнот Windows:

  1. Щёлкните правой кнопкой по файлу и выберите Открыть с помощью → Блокнот.
  2. В Блокноте перейдите в Файл → Сохранить как.
  3. В выпадающем списке Кодировка выберите:
    • 🔹 UTF-8 — для универсальной совместимости;
    • 🔹 ANSI — для работы в Windows;
    • 🔹 Unicode — для полной поддержки всех символов.
  • Сохраните файл под новым именем (например, data_utf8.csv).
  • Откройте сохранённый файл в Excel.
  • Критичный нюанс: Блокнот не сохраняет структуру таблиц — все данные превратятся в сплошной текст. Для восстановления столбцов после импорта в Excel используйте функцию Текст по столбцам (Данные → Текст по столбцам).

    Способ 4: Power Query — продвинутое решение для сложных файлов

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

    1. Откройте Excel и перейдите на вкладку Данные.
    2. Выберите Получить данные → Из файла → Из текстового/CSV.
    3. Укажите путь к проблемному файлу и нажмите Импорт.
    4. В открывшемся окне предварительного просмотра нажмите Трансформировать данные — откроется редактор Power Query.
    5. В редакторе перейдите на вкладку Главная и выберите Дополнительно → Кодировка.
    6. Попробуйте поочерёдно варианты:
      • 🔹 1251 (Windows) — для кириллицы;
      • 🔹 65001 (UTF-8) — универсальный стандарт;
      • 🔹 1200 (Unicode) — для полного набора символов.
  • После выбора кодировки нажмите Закрыть и загрузить.
  • Power Query не только исправляет кодировку, но и позволяет:

    • 📌 Разделять столбцы по разделителям;
    • 📌 Заменять ошибки;
    • 📌 Фильтровать данные перед загрузкой.
    Что делать, если Power Query не определяет кодировку?

    Если автоматическое определение кодировки не сработало, попробуйте следующее:

    1. Откройте файл в Notepad++ и посмотрите текущую кодировку в строке состояния.

    2. В Power Query вручную укажите код кодировки (например, 1251 для Windows-1251).

    3. Если текст отображается как Цифры, выберите кодировку UTF-8 и установите флажок Игнорировать ошибки кодировки.

    Способ 5: VBA-скрипт для пакетной смены кодировки

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

    Sub ConvertEncoding()
    

    Dim filePath As String

    Dim content As String

    Dim newContent() As Byte

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

    filePath = "C:\Path\To\Your\File.csv"

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

    Open filePath For Binary As #1

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

    Close #1

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

    newContent = StrConv(content, vbFromUnicode, 1251)

    newContent = StrConv(newContent, vbUnicode)

    newContent = StrConv(newContent, vbFromUnicode, 65001)

    ' Сохранение нового файла

    Open filePath & "_utf8.csv" For Binary As #1

    Put #1, , newContent

    Close #1

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

    End Sub

    Как использовать:

    1. Нажмите Alt + F11, чтобы открыть редактор VBA.
    2. Вставьте код в новый модуль (Insert → Module).
    3. Измените путь filePath на актуальный.
    4. Запустите макрос на выполнение (F5).
    ⚠️ Внимание: Перед запуском макроса обязательно сделайте резервную копию исходного файла. Ошибки в коде или неверно указанная кодировка могут привести к потере данных. Для работы со сложными файлами (например, с формулами) этот метод не подходит — используйте Power Query.

    Решение проблем с кракозябрами в конкретных случаях

    Иногда стандартные методы не работают из-за специфики файла или системы. Рассмотрим нетипичные ситуации:

    1. Файл экспортирован из 1С или базы данных

    При экспорте из 1С:Предприятие или SQL-баз (например, MySQL) часто используется кодировка UTF-8 без BOM. Excel может неверно её распознавать. Решение:

    • 🔧 Откройте файл в Notepad++ и конвертируйте в UTF-8 с BOM (Кодировки → Преобразовать в UTF-8 (с BOM)).
    • 🔧 Используйте Power Query с ручным указанием кодировки 65001.

    2. Проблемы с кириллицей в macOS

    На Mac по умолчанию используется UTF-8, а файлы, созданные в Windows (Windows-1251), открываются с ошибками. Решение:

    • 🍎 Используйте TextEdit для конвертации кодировки перед открытием в Excel for Mac.
    • 🍎 Установите OpenOffice или LibreOffice — они лучше справляются с кодировками в кроссплатформенных сценариях.

    3. Повреждённые файлы Excel (.xls, .xlsx)

    Если файл повреждён и не открывается ни в одной кодировке:

    • 🛠 Попробуйте восстановить его через Файл → Открыть → Обзор → Выбрать файл → Стрелка рядом с "Открыть" → Открыть и восстановить.
    • 🛠 Используйте сторонние инструменты, например, Stellar Repair for Excel или Kernel for Excel Repair.

    4. Кракозябры при экспорте в PDF

    Если при сохранении книги Excel в PDF появляются нечитаемые символы:

    • 📄 Перед экспортом сохраните файл в формате .xlsx с кодировкой Unicode.
    • 📄 В настройках печати (Файл → Экспорт → PDF) выберите Стандарт (онлайн-публикация и печать) вместо Минимальный размер.

    FAQ: Частые вопросы о кодировке в Excel

    Можно ли изменить кодировку уже открытого файла Excel без сохранения?

    Нет, кодировка применяется при открытии или сохранении файла. Если файл уже открыт с ошибками, придётся:

    1. Скопировать данные в новый файл.
    2. Сохранить его с правильной кодировкой (см. Способ 2).

    Исключение — использование Power Query (см. Способ 4), который позволяет перезагрузить данные с новой кодировкой.

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

    Это происходит, если:

    • Файл был сохранён как UTF-8 без BOM (метки порядка байтов). Решение: сохраните с BOMNotepad++ выберите UTF-8 с BOM).
    • В файле есть символы, не поддерживаемые UTF-8 (например, редкие математические знаки). Решение: используйте UTF-16.
    Как узнать текущую кодировку файла?

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

    • 🔍 Откройте файл в Notepad++ — кодировка отображается в строке состояния.
    • 🔍 В Linux/macOS используйте команду в терминале:
      file -i имя_файла.csv
    • 🔍 В Windows можно воспользоваться утилитой Chardet (устанавливается через pip install chardet).
    Почему в Excel 2016 и новее нет опции выбора кодировки при открытии CSV?

    Начиная с Excel 2016, Microsoft упростила интерфейс, убрав явный выбор кодировки при открытии. Вместо этого:

    1. Используйте Данные → Получить данные → Из файла → Из текстового/CSV (это вызовет Power Query, где можно указать кодировку).
    2. Открывайте файл через Блокнот и сохраняйте с нужной кодировкой (см. Способ 3).

    В Excel 2013 и старше опция выбора кодировки доступна напрямую при открытии.

    Можно ли настроить Excel так, чтобы он всегда открывал CSV в UTF-8?

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

    • 🔄 Создайте шаблон макроса (см. Способ 5), который будет автоматически конвертировать файлы.
    • 🔄 Используйте Power Query для импорта с заданной кодировкой.
    • 🔄 Настройте ассоциацию файлов .csv на открытие через LibreOffice Calc — там есть опция выбора кодировки по умолчанию.