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русские буквы заменяются наРусский.
Основные причины:
- Несовпадение кодировки файла и системы. Например, файл сохранён в UTF-8, а Excel пытается открыть его как ANSI.
- Ошибки при экспорте/импорте. Часто возникает при переносе данных из баз данных (MySQL, PostgreSQL) или веб-сервисов.
- Повреждение файла. Например, после некорректного сохранения или передачи по email.
- Особенности региональных настроек. В Windows по умолчанию используется Windows-1251 для кириллицы, а в macOS — UTF-8.
Способ 1: Изменение кодировки при открытии файла (для CSV/TXT)
Самый простой метод — указать правильную кодировку при первом открытии файла. Это работает для текстовых форматов (.csv, .txt, .prn).
- Запустите Excel и выберите
Файл → Открыть. - Найдите нужный файл, но не открывайте его двойным кликом!
- Нажмите на стрелку рядом с кнопкой
Открытьи выберитеОткрыть и восстановить(если файл повреждён) или простоОткрыть. - В появившемся окне Мастера импорта текста выберите формат данных (
С разделителямиилиФиксированной ширины) и нажмитеДалее. - На втором шаге в выпадающем списке
Формат файлаукажите нужную кодировку (например, 65001 (Unicode UTF-8) или 1251 (Кириллица Windows)). - Завершите импорт, следуя подсказкам мастера.
Важно: Если файл уже был открыт ранее и сохранился с неверной кодировкой, этот метод не поможет — потребуется повторный экспорт данных из источника.
Убедиться, что файл не открыт в другой программе|
Проверить расширение (должно быть .csv, а не .xls)|
Сохранить резервную копию оригинального файла|
Выбрать правильный разделитель (запятая, точка с запятой, табуляция)
-->
Способ 2: Сохранение файла в другой кодировке
Если файл уже открыт, но отображается некорректно, можно сохранить его с другой кодировкой. Этот метод подходит для .xlsx и .xls файлов, а также для текстовых форматов.
- Откройте проблемный файл в Excel.
- Перейдите в
Файл → Сохранить как. - В выпадающем списке
Тип файлавыберитеТекстовый файл CSV (.csv)илиТекст Unicode (.txt). - Нажмите
Сохранить. Появится предупреждение о возможной потере данных — подтвердите действие. - Закройте файл и откройте его заново, выбрав правильную кодировку (см. Способ 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:
- Щёлкните правой кнопкой по файлу и выберите
Открыть с помощью → Блокнот. - В Блокноте перейдите в
Файл → Сохранить как. - В выпадающем списке
Кодировкавыберите: - 🔹 UTF-8 — для универсальной совместимости;
- 🔹 ANSI — для работы в Windows;
- 🔹 Unicode — для полной поддержки всех символов.
data_utf8.csv).Критичный нюанс: Блокнот не сохраняет структуру таблиц — все данные превратятся в сплошной текст. Для восстановления столбцов после импорта в Excel используйте функцию Текст по столбцам (Данные → Текст по столбцам).
Способ 4: Power Query — продвинутое решение для сложных файлов
Power Query (в новых версиях Excel называется Получить данные) — это мощный инструмент для трансформации данных, который умеет автоматически определять и исправлять кодировку. Подходит для больших файлов с сложной структурой.
- Откройте Excel и перейдите на вкладку
Данные. - Выберите
Получить данные → Из файла → Из текстового/CSV. - Укажите путь к проблемному файлу и нажмите
Импорт. - В открывшемся окне предварительного просмотра нажмите
Трансформировать данные— откроется редактор Power Query. - В редакторе перейдите на вкладку
Главнаяи выберитеДополнительно → Кодировка. - Попробуйте поочерёдно варианты:
- 🔹 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
Как использовать:
- Нажмите
Alt + F11, чтобы открыть редактор VBA. - Вставьте код в новый модуль (
Insert → Module). - Измените путь
filePathна актуальный. - Запустите макрос на выполнение (
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 без сохранения?
Нет, кодировка применяется при открытии или сохранении файла. Если файл уже открыт с ошибками, придётся:
- Скопировать данные в новый файл.
- Сохранить его с правильной кодировкой (см. Способ 2).
Исключение — использование Power Query (см. Способ 4), который позволяет перезагрузить данные с новой кодировкой.
Почему после конвертации в UTF-8 в Excel отображаются знаки вопроса?
Это происходит, если:
- Файл был сохранён как UTF-8 без BOM (метки порядка байтов). Решение: сохраните с BOM (в Notepad++ выберите
UTF-8 с BOM). - В файле есть символы, не поддерживаемые UTF-8 (например, редкие математические знаки). Решение: используйте UTF-16.
Как узнать текущую кодировку файла?
Есть несколько способов:
- 🔍 Откройте файл в Notepad++ — кодировка отображается в строке состояния.
- 🔍 В Linux/macOS используйте команду в терминале:
file -i имя_файла.csv - 🔍 В Windows можно воспользоваться утилитой Chardet (устанавливается через
pip install chardet).
Почему в Excel 2016 и новее нет опции выбора кодировки при открытии CSV?
Начиная с Excel 2016, Microsoft упростила интерфейс, убрав явный выбор кодировки при открытии. Вместо этого:
- Используйте
Данные → Получить данные → Из файла → Из текстового/CSV(это вызовет Power Query, где можно указать кодировку). - Открывайте файл через Блокнот и сохраняйте с нужной кодировкой (см. Способ 3).
В Excel 2013 и старше опция выбора кодировки доступна напрямую при открытии.
Можно ли настроить Excel так, чтобы он всегда открывал CSV в UTF-8?
К сожалению, Excel не позволяет задать кодировку по умолчанию для всех файлов. Обходные пути:
- 🔄 Создайте шаблон макроса (см. Способ 5), который будет автоматически конвертировать файлы.
- 🔄 Используйте Power Query для импорта с заданной кодировкой.
- 🔄 Настройте ассоциацию файлов
.csvна открытие через LibreOffice Calc — там есть опция выбора кодировки по умолчанию.