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

Когда вы открываете файл CSV или TXT в Microsoft Excel и вместо читаемого текста видите набор непонятных символов (например, Название вместо «Название»), проблема кроется в неверной кодировке. Чаще всего это происходит при импорте данных из внешних источников — баз данных, веб-сайтов или программ, использующих UTF-8, тогда как Excel по умолчанию пытается открыть файл в Windows-1251 (ANSI) или другой локальной кодировке. Решение зависит от версии программы (2010, 2016, 2019, 365) и формата исходного файла.

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

1. Правильный импорт CSV/TXT через «Мастер текстов»

Самый надёжный способ избежать проблем с кодировкой — использовать встроенный Мастер текстов (Text Import Wizard), доступный во всех версиях Excel. Он позволяет вручную указать кодировку на первом этапе импорта. Вот как это сделать:

  1. Откройте Excel и перейдите на вкладку ДанныеПолучить данныеИз файлаИз текстового/CSV-файла (в Excel 2016+). В старых версиях (2010, 2013) выберите Из текста.
  2. Выберите проблемный файл и нажмите Импорт.
  3. В окне Мастера текстов на шаге 1 выберите Файлы с разделителями и укажите кодировку:
    • 🔹 65001: Unicode (UTF-8) — для большинства современных файлов;
    • 🔹 1251: Кириллица (Windows) — для файлов из старых российских программ;
    • 🔹 866: DOS (OEM) — для данных из устаревших систем.
  • Нажмите Далее, укажите разделитель (запятая, точка с запятой, табуляция) и завершите импорт.
  • Если после импорта часть символов всё ещё отображается неверно, попробуйте повторить процедуру с другой кодировкой. Например, для файлов с кириллицей часто помогает смена UTF-8 на Windows-1251 и наоборот.

    2. Конвертация файла в правильную кодировку

    Если Excel упорно игнорирует настройки импорта, проще предварительно конвертировать файл в нужную кодировку с помощью внешних инструментов. Для этого подойдут:

    • 📝 Блокнот (Notepad): откройте файл → ФайлСохранить как → в поле Кодировка выберите UTF-8 или ANSI;
    • 📋 Notepad++: КодировкиПреобразовать в UTF-8 без BOM (оптимально для Excel);
    • 🖥️ Онлайн-конвертеры (например, encoding.tools) — загрузите файл, укажите исходную и целевую кодировку.

    После конвертации откройте файл в Excel стандартным способом (двойной клик). Если кракозябры остались, вернитесь к Мастеру текстов (раздел 1) и укажите кодировку вручную.

    📊 Какую кодировку чаще всего приходится исправлять в Excel?
    UTF-8
    Windows-1251
    DOS (866)
    Другую

    3. Настройка региональных параметров Windows

    Excel наследует настройки кодировки из региональных параметров системы. Если они сбиты, программа может неправильно интерпретировать символы даже при ручном импорте. Чтобы исправить это:

    1. Нажмите Win + R, введите intl.cpl и нажмите Enter.
    2. Перейдите на вкладку Дополнительно.
    3. В разделе Язык программы, не поддерживающей Юникод выберите Русский (Россия).
    4. Убедитесь, что в поле Текущий язык для программ, не поддерживающих Юникод стоит Русский.
    5. Нажмите OK и перезагрузите компьютер.

    Эти настройки влияют на то, как Excel обрабатывает текстовые файлы по умолчанию. После изменений попробуйте повторно открыть проблемный файл.

    ⚠️ Внимание: Изменение региональных параметров может повлиять на отображение текста в других программах. Если после настройки в Excel появились проблемы в 1С или базах данных, верните прежние параметры.

    4. Исправление кодировки в открытом файле

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

    1. Выделите столбец с некорректным текстом.
    2. Скопируйте данные (Ctrl + C).
    3. Откройте Блокнот и вставьте текст (Ctrl + V).
    4. Сохраните файл с кодировкой UTF-8.
    5. Закройте Excel без сохранения, затем откройте сохранённый файл из Блокнота.

    Альтернативный способ — использовать формулу для декодирования текста. Например, если кракозябры появились из-за двойной кодировки (UTF-8 → Windows-1251 → UTF-8), поможет функция =WEBSERVICE с декодером (подробнее в разделе 6).

    Файл действительно сохранён в неверной кодировке?|Проблема проявляется только в Excel или и в других программах?|Попробовали ли вы открыть файл в Блокноте?|Сохранены ли резервные копии исходных данных?-->

    5. Работа с кодировкой в Power Query

    В Excel 2016 и новее для импорта данных рекомендуется использовать Power Query — инструмент, который гибко управляет кодировками. Чтобы импортировать файл с правильной кодировкой:

    1. Перейдите на вкладку ДанныеПолучить данныеИз файлаИз текстового/CSV-файла.
    2. Выберите файл и нажмите Импорт.
    3. В окне предварительного просмотра нажмите Преобразовать данные.
    4. В Power Query выберите столбец с кракозябрами → вкладка ПреобразованиеКодировка → укажите Windows-1251 или UTF-8.
    5. Нажмите Закрыть и загрузить.

    Power Query позволяет также очищать данные от лишних символов и заменять кодировки массово. Например, с его помощью можно автоматически конвертировать CP1251 в UTF-8 для всех новых файлов.

    Кодировка в файле Что выбрать в Power Query Типичный источник данных
    UTF-8 65001: Unicode (UTF-8) Веб-сайты, современные базы данных
    Windows-1251 (ANSI) 1251: Кириллица (Windows) 1С, старые российские программы
    DOS (OEM 866) 866: Кириллица (DOS) Устаревшие системы, терминалы
    UTF-16 1200: Unicode Файлы из macOS или специализированного ПО

    6. Автоматизация исправления кодировки с помощью VBA

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

    Sub FixEncoding()
    

    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 VarType(cell.Value) = vbString Then

    text = cell.Value

    ' Преобразование из Windows-1251 в UTF-8

    cell.Value = StrConv(text, vbFromUnicode)

    End If

    Next cell

    End Sub

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

    1. Нажмите Alt + F11, чтобы открыть редактор VBA.
    2. Вставьте код в новый модуль (InsertModule).
    3. Запустите макрос (F5).

    Для обратного преобразования (UTF-8 → Windows-1251) замените vbFromUnicode на vbUnicode. Обратите внимание, что макрос работает только с текстом — числовые данные и формулы остаются без изменений.

    Расширенные настройки VBA для кодировки

    Для сложных случаев (например, двойной кодировки) можно использовать библиотеку Microsoft ActiveX Data Objects (ADO) для чтения файлов в нужной кодировке. Пример кода доступен на Stack Overflow по тегу excel-vba encoding.

    7. Проблемы с кодировкой при экспорте из Excel

    Кракозябры могут появляться не только при импорте, но и при экспорте данных из Excel в CSV или TXT. Чтобы избежать этого:

    • 📤 При сохранении в CSV выбирайте UTF-8 вручную: ФайлСохранить как → в поле Тип файла укажите CSV UTF-8 (разделители — запятые) (*.csv).
    • 🔄 Если опция CSV UTF-8 отсутствует (в Excel 2010–2016), сохраните файл как Текстовый (Tab Delimited) (*.txt), затем откройте его в Блокноте и пересохраните с кодировкой UTF-8.
    • 🔧 Для автоматизации экспорта используйте Power Query или VBA (см. раздел 6).

    Если экспортированный файл всё равно открывается с кракозябрами, проверьте программу, в которую вы его импортируете — возможно, она не поддерживает UTF-8 и требует ANSI.

    ⚠️ Внимание: В Excel 2010 и 2013 при сохранении в CSV кодировка по умолчанию — ANSI, что приводит к потере символов вне латиницы. Всегда проверяйте целевую кодировку перед экспортом.

    Частые вопросы (FAQ)

    Почему в Excel вместо русского текста отображаются знаки вопроса (?)?

    Это признак того, что программа не может распознать символы из-за несовместимости кодировок. Чаще всего происходит при открытии файла в UTF-8 как ANSI. Решение: используйте Мастер текстов (раздел 1) и укажите кодировку 65001: Unicode (UTF-8).

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

    Откройте файл в Блокноте или Notepad++ — кодировка отображается в строке состояния. Альтернативно используйте онлайн-инструменты вроде encoding.tools, которые анализируют файл и предлагают варианты кодировок.

    Можно ли исправить кодировку в Excel Online?

    В веб-версии Excel (Excel Online) нет Мастера текстов, поэтому исправить кодировку напрямую нельзя. Решение: скачайте файл, откройте его в настольной версии Excel (или конвертируйте через Notepad++), затем загрузите обратно.

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

    Это происходит из-за двойного преобразования (например, текст сначала был в UTF-8, затем ошибочно конвертирован в Windows-1251, а потом обратно). Попробуйте:

    1. Открыть исходный файл в HxD (hex-редактор) и проверить байты.
    2. Использовать специализированные инструменты вроде iconv (для Linux/macOS) или