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

Открыли файл в Microsoft Excel и вместо привычных букв увидели непонятные символы вроде "Тексст" или "ÐамеÑание"? Это классическая проблема несовпадения кодировок — ситуация, когда Excel интерпретирует текст не в той системе кодирования, в которой он был сохранён. Чаще всего пользователи сталкиваются с этим при импорте данных из внешних источников: баз данных, веб-страниц, текстовых файлов .csv или .txt, а также при переносе файлов между разными операционными системами (например, с Windows на MacOS и обратно).

В 90% случаев проблема решается за 2-3 клика, но многие теряют часы на пересохранение файлов или ручное исправление символов. В этой статье разберём все актуальные способы смены кодировки в Excel — от стандартных инструментов программы до обходных путей для сложных случаев. Особое внимание уделим UTF-8 (самый универсальный формат), Windows-1251 (распространён в русскоязычных системах) и KOI8-R (встречается в устаревших системах).

Важно: кодировка — это не настройка самого Excel, а параметр импорта/экспорта данных. Поэтому "сменить кодировку" можно только при открытии файла или сохранении его в другом формате. Готовьтесь к тому, что иногда придётся повторить операцию несколько раз с разными настройками.

📊 С какой кодировкой вы чаще всего сталкиваетесь в Excel?
UTF-8
Windows-1251
KOI8-R
Другая
Не знаю

1. Как определить текущую кодировку файла

Прежде чем менять кодировку, нужно понять, в какой она изначально записана. Excel не показывает эту информацию напрямую, но есть косвенные признаки и инструменты для диагностики:

Признаки популярных кодировок в "кракозябрах":

  • 🔹 Windows-1251 → UTF-8: русские буквы отображаются как Некорректный текст (характерны буквы "Р" и "С" перед каждой русской буквой).
  • 🔹 UTF-8 → Windows-1251: появляются символы вроде ÐамеÑание (много латинских букв с тильдами и значками).
  • 🔹 KOI8-R: текст превращается в набор непонятных символов с цифрами и знаками препинания, например tCIN 2026 вместо "Цена 2026".

Для точного определения используйте внешние инструменты:

  • 📌 Notepad++ (меню Кодировки → Преобразовать в ANSI/UTF-8 — программа подскажет текущий формат).
  • 📌 Онлайн-сервисы вроде encoding.ru (загрузите файл или вставьте текст).
  • 📌 Visual Studio Code (открывает файл с указанием кодировки в правом нижнем углу).
⚠️ Внимание: Если файл был сохранён в Excel Binary Format (.xlsb), определить кодировку текста внутри него невозможно — этот формат использует собственную систему хранения данных. Попробуйте сначала экспортировать данные в .csv или .txt.

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

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

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

  1. Закройте файл в Excel, если он уже открыт.
  2. В меню Excel выберите Файл → Открыть → Обзор (или нажмите Ctrl+O).
  3. В диалоговом окне выделите нужный файл, но не открывайте его двойным кликом. Вместо этого:
  4. Рядом с кнопкой Открыть нажмите на стрелочку вниз и выберите Открыть и восстановить (если доступно) или Открыть как текстовый файл.
  5. В появившемся окне Мастер текстов (импорт) на шаге 2 выберите нужную кодировку из выпадающего списка (например, 65001: Unicode (UTF-8) или 1251: Кириллица (Windows)).
  6. Нажмите Готово — данные загрузятся с правильным отображением.

Если нужной кодировки нет в списке, попробуйте варианты:

  • 🔢 1200 — Unicode (для старых версий Excel).
  • 🔢 1250 — Центральноевропейская (Windows).
  • 🔢 866 — DOS-кириллица (встречается в устаревших системах).

Закрыть файл в Excel, если он открыт

Использовать меню "Открыть", а не двойной клик

Выбрать "Открыть как текстовый файл" (для .csv/.txt)

Проверить кодировку на шаге 2 мастера импорта

Сохранить файл в правильной кодировке после импорта-->

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

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

Инструкция для Excel 2010–2023:

  1. Откройте проблемный файл.
  2. Выделите все данные (Ctrl+A) и скопируйте их (Ctrl+C).
  3. Создайте новый файл Excel (Ctrl+N).
  4. Вставьте данные (Ctrl+V).
  5. Перейдите в Файл → Сохранить как.
  6. В поле Тип файла выберите Текстовый файл (с разделителями-запятыми) (*.csv).
  7. Нажмите Сохранить — появится окно с предупреждением о возможной потере функциональности. Нажмите Да.
  8. В следующем окне выберите нужную кодировку (например, UTF-8) и подтвердите.

Критическая деталь: при сохранении в CSV Excel по умолчанию использует кодировку ANSI (Windows-1251 для русского языка). Чтобы выбрать UTF-8, нужно вручную указать её в окне сохранения (доступно с Excel 2016).

Формат файла Поддерживаемые кодировки Рекомендации
.csv UTF-8, Windows-1251, DOS-866 Лучший выбор для обмена данными между системами
.txt Любая (зависит от программы) Используйте для импорта в базы данных
.xlsx Только Unicode (UTF-16) Не подходит для исправления кодировки
.xls ANSI (Windows-1251 для РУ) Устаревший формат, избегайте
⚠️ Внимание: При сохранении в .csv с кодировкой UTF-8 Excel добавляет в начало файла метку порядка байтов (BOM). Некоторые программы (например, ) могут некорректно читать такие файлы. В этом случае используйте Notepad++ для сохранения без BOM.

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

Если данные импортируются из внешнего источника (например, веб-страницы или базы данных), Power Query (встроенный инструмент Excel) позволяет задать кодировку на этапе загрузки. Это актуально для Excel 2016 и новее.

Как изменить кодировку в Power Query:

  1. Перейдите на вкладку Данные и выберите Получить данные → Из файла → Из текстового/CSV.
  2. Выберите файл и нажмите Импортировать.
  3. В окне предварительного просмотра нажмите Преобразовать данные (откроется Power Query).
  4. В правой панели найдите параметр Кодировка файла (обычно 1252: Windows по умолчанию).
  5. Нажмите на стрелочку рядом и выберите нужную кодировку (например, 65001: Unicode (UTF-8)).
  6. Нажмите Закрыть и загрузить — данные загрузятся с правильным отображением.

Преимущество этого метода: Power Query запоминает настройки кодировки и применяет их при каждом обновлении данных. Это удобно для регулярного импорта (например, выгрузок из или MySQL).

Что делать, если в Power Query нет нужной кодировки?

Если требуемая кодировка (например, KOI8-R) отсутствует в списке, используйте обходной путь:

1. Откройте файл в Notepad++ и преобразуйте его в UTF-8.

2. Сохраните как новый файл.

3. Импортируйте уже преобразованный файл в Power Query с кодировкой 65001: Unicode (UTF-8).

5. Способ 4: Конвертация через внешние программы

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

Топ-3 программы для работы с кодировками:

  • 📝 Notepad++:
    • Откройте файл → Кодировки → Преобразовать в ANSI/UTF-8.
    • Сохраните (Ctrl+S) с новой кодировкой.
  • 📝 Visual Studio Code:
    • Открывает файл с указанием текущей кодировки в правом нижнем углу.
    • Кликните на кодировку → Save with Encoding → выберите нужную.
  • 📝 AkelPad (бесплатный):
    • Поддерживает редкие кодировки вроде KOI8-R или ISO-8859-5.
    • Меню Файл → Сохранить как... → выберите кодировку.

Для пакетной обработки (если нужно конвертировать сотни файлов) используйте утилиты командной строки:

  • 🖥️ iconv (Linux/macOS/WSL):
  • iconv -f WINDOWS-1251 -t UTF-8 input.csv > output.csv
  • 🖥️ PowerShell (Windows):
  • Get-Content -Path "input.txt" -Encoding Default | Out-File -FilePath "output.txt" -Encoding UTF8

6. Способ 5: Ручное исправление кодировки через VBA

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

Пример макроса для преобразования из Windows-1251 в UTF-8:

Sub ConvertEncoding()

Dim ws As Worksheet

Dim rng As Range

Dim cell As Range

Dim text As String

' Выбираем активный лист

Set ws = ActiveSheet

' Определяем используемый диапазон

Set rng = ws.UsedRange

' Проходим по всем ячейкам

For Each cell In rng

If cell.Value <> "" Then

' Преобразуем текст из Windows-1251 в UTF-8

text = StrConv(cell.Value, vbFromUnicode)

text = StrConv(text, vbUnicode)

cell.Value = text

End If

Next cell

MsgBox "Преобразование кодировки завершено!", vbInformation

End Sub

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

  1. Нажмите Alt+F11, чтобы открыть редактор VBA.
  2. Вставьте код в новый модуль (Insert → Module).
  3. Закройте редактор и запустите макрос (Alt+F8 → выберите ConvertEncodingВыполнить).
⚠️ Внимание: Макрос работает только для текста, который изначально был сохранён в ANSI (Windows-1251). Если кодировка другая (например, KOI8-R), потребуется более сложный код с использованием MultiByteToWideChar из Windows API.

7. Особенности работы с кодировками в Excel для Mac

Пользователи Excel для MacOS часто сталкиваются с дополнительными сложностями, так как стандартные кодировки в macOS отличаются от Windows. Например, по умолчанию Mac использует UTF-8, а файлы, созданные в Windows, могут быть в Windows-1251.

Ключевые отличия:

  • 🍎 В Excel для Mac нет мастера импорта текста (как в Windows). Вместо этого используйте Данные → Получение данных → Из файла → Из текстового/CSV.
  • 🍎 При сохранении в .csv кодировка по умолчанию — UTF-8 (в отличие от Windows, где ANSI).
  • 🍎 Для открытия файлов в Windows-1251 предварительно конвертируйте их в TextEdit или BBEdit.

Инструкция для Mac:

  1. Откройте файл в TextEdit (стандартный редактор macOS).
  2. В меню выберите Формат → Преобразовать в обычный текст.
  3. Сохраните файл с кодировкой UTF-8 (Файл → Сохранить → в выпадающем меню выберите кодировку).
  4. Откройте преобразованный файл в Excel.

8. Частые ошибки и как их избежать

Даже опытные пользователи допускают ошибки при работе с кодировками. Вот самые распространённые ловушки и способы их обхода:

Ошибка 1: Сохранение в CSV без указания кодировки

  • 🚫 Что происходит: Excel сохраняет файл в ANSI, а программа-получатель ожидает UTF-8.
  • Решение: Всегда выбирайте UTF-8 вручную при сохранении в .csv.

Ошибка 2: Импорт данных с веб-страницы без указания кодировки

  • 🚫 Что происходит: Текст с сайта (например, в UTF-8) импортируется как Windows-1251.
  • Решение: Используйте Power Query и вручную укажите кодировку 65001 (UTF-8).

Ошибка 3: Редактирование файла в блокноте Windows

  • 🚫 Что происходит: Стандартный Блокнот сохраняет файлы в UCS-2 LE BOM, что ломает совместимость.
  • Решение: Используйте Notepad++ или VS Code для сохранения в UTF-8 без BOM.

Ошибка 4: Проблемы с символами при экспорте в 1С

  • 🚫 Что происходит: 1С:Предприятие не читает .csv с UTF-8 BOM.
  • Решение: Сохраняйте файл в Windows-1251 или удаляйте BOM через Notepad++ (Кодировки → Преобразовать в UTF-8 (без BOM)).

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

Почему Excel автоматически не определяет кодировку?

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

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

Файлы .xlsx всегда используют Unicode (UTF-16) — это часть стандарта Office Open XML. Проблемы с кодировкой в .xlsx возникают только при импорте данных из внешних источников, а не внутри самого файла.

Можно ли поменять кодировку для всех файлов в папке?

Да, для этого используйте скрипты на Python или утилиты командной строки (iconv в Linux/macOS, PowerShell в Windows). Пример скрипта для пакетной конвертации:

Get-ChildItem -Path "C:\Папка\" -Filter "*.csv" | ForEach-Object {

$content = Get-Content -Path $_.FullName -Encoding Default

$content | Out-File -FilePath $_.FullName -Encoding UTF8

}

Этот скрипт рекурсивно конвертирует все .csv файлы в папке в UTF-8.

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

Это означает, что исходный текст содержал символы, которые не существуют в целевой кодировке. Например, при конвертации из Windows-1251 в UTF-8 могут потеряться редкие символы вроде "Ё" или тире. Решение: используйте кодировку, которая поддерживает все нужные символы (например, UTF-16).

Как исправить кодировку в Excel Online?

Excel Online не поддерживает выбор кодировки при открытии файлов. Обходной путь:

  1. Скачайте файл на компьютер.
  2. Откройте его в настольной версии Excel и сохраните с правильной кодировкой.
  3. Загрузите обратно в OneDrive/SharePoint.