Удалить кириллицу в excel

Обновлено: 21.11.2024

Я работаю над проектом, в котором для заполнения базы данных используется CSV-файл, предоставленный клиентом. Клиент должен создать электронную таблицу, а затем сохранить ее в формате CSV для загрузки, которая затем анализируется в базе данных.

Проблема заключается в том, что всякий раз, когда клиент сохраняет электронную таблицу Excel в виде файла MS-DOS .csv, многие специальные символы преобразуются в вопросительные знаки "?" (такие символы, как ' " / ). Однако, если мы затем откроем CSV-файл и вручную заменим каждый ? на правильный символ, все будет работать нормально.

Проблема в том, что файл данных ОГРОМНЫЙ, и мы не можем этого сделать, поэтому я надеялся, что есть способ его сохранить. Мы пытались экспортировать как Unicode и ASCII, но безрезультатно. Мы также пробовали загружать документы в Google и повторно сохранять, однако эти символы также ломаются.

Если вы используете Excel 2007, в диалоговом окне «Сохранить как» слева от кнопки «Сохранить» находится раскрывающийся список «Инструменты». Если вы выберете веб-опцию и на вкладке «Кодировка», вы сможете выбрать определенную кодировку. Попробуйте, если это поможет

Проблема не воспроизводима. Убедитесь, что данные действительно соответствуют описанию, а не каким-то символам, которые не могут быть представлены в кодировке MS-DOS.

14 ответов 14

Убедитесь, что вы выбрали сохранение в формате CSV (с разделителями-запятыми), а не в формате CSV (MS-DOS), поскольку DOS не поддерживает символы UTF-8.

Я обнаружил, что проблема с потерянными символами возникает (в моем случае) только при сохранении из формата xlsx в формат csv. Я попытался сначала сохранить файл xlsx в xls, а затем в csv. Это действительно сработало.

Возможный обходной путь – сохранить его как текст Unicode (в 2007 году он есть, не уверен насчет предыдущих выпусков), который сохранит его как текстовый файл, разделенный табуляцией.

В этом файле сохранены мои символы Юникода (в моем случае я работал с азиатскими символами), при этом создается своего рода текстовый файл с разделителями, который затем можно запустить с помощью внешних инструментов для преобразования в CSV, если это необходимо.

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

Вот что работает для меня:

  1. Внесите исправления в данные в Excel или CSV.
  2. Сохранить файл как текст Unicode
  3. Открыть БЛОКНОТ
  4. Откройте файл Unicode, который вы только что сохранили, с помощью БЛОКНОТА.
  5. Используйте курсор, чтобы выделить пустую область, содержащую одну вкладку 5a. Используйте пробел между идентификатором получения и типом запроса, потому что он содержит ОДНУ ЗАКЛАДКУ!
  6. Нажмите Cnrl + C, чтобы скопировать символ табуляции.
  7. Нажмите Cnlr-H, чтобы открыть окно функции «Заменить».
  8. Нажмите в текстовом поле «Найти что» и введите Cnlr-V, чтобы вставить вкладку.
  9. Нажмите в поле «Заменить текстом» и введите запятую.
  10. Нажмите «Заменить», чтобы проверить это один раз. Убедитесь, что табуляция в файле заменена запятой.
  11. Нажмите "Заменить все".
  12. Нажмите "Отмена".
  13. Сохраните файл и выйдите.
  14. В проводнике Windows измените расширение файла на .csv.

У меня была эта проблема уже некоторое время, и наконец я посвятил некоторое время тому, чтобы разобраться в ней! Мне удалось (по-видимому) решить проблему, сохранив файл как «Windows с разделителями-запятыми (.csv)». Я попробовал это из .xlsx и .xls, оба конвертировались в .csv просто отлично. Надеюсь, это поможет — дайте мне знать, если возникнут какие-либо проблемы с этим методом. Я сообщу, если увижу что-нибудь в ближайшие несколько недель.

Откройте CSV-файл в Блокноте (вы заметите, что в нем указано ANSI), затем повторно сохраните его как UTF-8 в Блокноте.

Тогда импорт должен работать. Однако, если вы снова откроете его в Excel и просто сохраните, это не сработает, потому что Excel, по-видимому, не может изначально кодировать в UTF-8.

Я столкнулся с аналогичной проблемой при импорте CSV-файла товаров с дробями в WooCommerce, который был отклонен из-за "?" символы ошибки. Это связано с тем, что файл CSV не был закодирован в UTF-8. ОДНАКО, даже после сохранения CSV-файла в Excel с кодировкой UTF-8 он все равно не работал.

После изучения нескольких форумов оказалось, что, хотя Excel позволяет кодировать как UTF-8, при СОХРАНЕНИИ В CSV Excel автоматически преобразует его обратно в ANSI, даже если вы выбираете UTF-8.

Инструмент «Удалить символы» из Ultimate Suite for Excel помогает удалять пользовательские символы и наборы символов в Excel по положению или удалять все их вхождения в выбранных ячейках. Легко очищайте все буквы, цифры, непечатаемые символы и знаки препинания. Также можно ввести и удалить подстроку из вашего диапазона.

Прежде чем начать

Мы заботимся о ваших данных. Надстройка создаст резервную копию вашего файла, если вы выберете соответствующий параметр.

Как удалить символы или подстроки

Запустите инструмент "Удалить символы", щелкнув значок Удалить на вкладке Ablebits Data в группе Текст:

Выберите в раскрывающемся списке параметр Удалить символы и увидите панель надстройки:

  1. Выберите ячейки, содержащие значения, которые вы хотите удалить. Прямо в этом поле вы увидите адрес диапазона.
  2. Нажмите значок Расширить выделение, чтобы автоматически выделить всю таблицу.
  3. Выберите вариант, который соответствует вашим потребностям:
  4. Удалить пользовательские символы удалит символы, которые вы вводите в это поле. Если у вас есть несколько символов, которые нужно удалить из диапазона, и вы не хотите повторять эту рутинную операцию, просто введите каждый символ, который необходимо удалить, в поле Удалить пользовательские символы и надстройку удалит все его экземпляры в выбранных ячейках.
  5. Удалить наборы символов. В раскрывающемся списке можно выбрать несколько наборов символов:
    1. Непечатаемые символы: удалите все непечатаемые символы, такие как разрывы строк, первые 32 непечатаемых символа в 7-битном коде ASCII (значения от 0 до 31) и дополнительные непечатаемые символы. (значения 127, 129, 141, 143, 144 и 157).
    2. Текстовые символы – удалите все буквы из ячеек.
    3. Цифровые символы – удалить все цифры из интересующего диапазона.
    4. Символы и знаки препинания – удалите из ячеек все знаки препинания, а также следующие символы: математические, геометрические, технические и денежные символы, буквенные символы, такие как ?, 1 и ™. .

    Примечание. Будьте осторожны с регистром текста: подстрока будет удалена только в том случае, если она имеет тот же регистр текста, что и введенное вами значение.

    Нажмите кнопку "Удалить" и наслаждайтесь быстрыми результатами.

    Как удалить символы по позиции

    Запустите инструмент "Удалить по положению", щелкнув значок Удалить на вкладке Ablebits Data в группе Текст:
    < /p>

    Вы можете увидеть панель надстройки со следующими параметрами:

    1. Чтобы удалить символы по их положению, выберите в Excel диапазон, содержащий значения, которые вы хотите удалить. Адрес диапазона можно увидеть в верхней части панели.
    2. Нажмите Расширить выделение, чтобы автоматически выделить всю таблицу.
    3. Выберите Первые N символов, чтобы удалить любое количество символов в начале нужных ячеек в Excel.
    4. Выберите Последние N символов, чтобы удалить любое количество символов в конце каждой ячейки в вашем диапазоне.
    5. Все символы перед текстом удалят все значения перед указанным символом или строкой в ​​выбранном вами диапазоне.
    6. Все символы после текста удалит все символы после указанного символа или строки в выбранных ячейках.
    7. Вы также можете удалить все подстроки между значением 1 и значением 2. Для этого введите оба значения в соответствующие поля. Если вы отметите опцию Включая разделители, подстрока будет удалена вместе с введенными вами значениями. Если вы не отметите его, значения останутся в ячейках.
    8. Чтобы выполнять поиск с учетом регистра, установите флажок С учетом регистра.
    9. Отметьте параметр Создать резервную копию листа, чтобы сохранить исходные данные без изменений.

    Нажмите кнопку "Удалить", чтобы увидеть результаты.

    Удалить повторяющиеся подстроки

    Чтобы узнать, как удалить повторяющийся текст в ячейках Excel, обратитесь к руководству:

    Бывший писатель Lifewire Тед Френч является сертифицированным специалистом Microsoft, который преподает и пишет о электронных таблицах и программах для работы с электронными таблицами.

    Что нужно знать

    • Чтобы удалить символы ASCII, введите =CLEAN(Text).
    • Используйте функцию ЗАМЕНА, чтобы преобразовать символы Юникода в символы ASCII, которые можно удалить с помощью функции ОЧИСТКА.

    Вот как использовать функцию очистки в Microsoft Excel 2019, 2016, 2013, 2010 и Excel для Microsoft 365, чтобы удалить многие непечатаемые компьютерные символы, скопированные или импортированные на лист. Такие символы могут мешать печати, сортировке и фильтрации данных.

    Синтаксис и аргументы функции CLEAN

    Синтаксис функции – это ее структура, включающая имя, квадратные скобки и аргументы. Синтаксис функции CLEAN:

    Текст

    в расположение этих данных на листе, который вы хотите очистить.

    Например, ячейка A2 содержит следующую формулу:

    Чтобы убрать это, вы должны ввести формулу в другую ячейку листа:

    В результате останется только слово

    Помимо удаления непечатаемых символов, функция ОЧИСТКА также преобразует числа в текст, что может привести к ошибкам, если вы позже будете использовать эти данные в вычислениях.

    Удаление непечатаемых символов, не входящих в ASCII

    Хотя функция CLEAN отлично подходит для удаления непечатаемых символов ASCII, есть несколько непечатаемых символов, выходящих за пределы диапазона ASCII, которые вы, возможно, захотите удалить.

    К непечатаемым символам Unicode относятся числа 129, 141, 143, 144 и 157. Кроме того, вы можете удалить 127, который является удаляемым символом и также является непечатаемым.

    Один из способов удалить такие данные – преобразовать их с помощью функции ПОДСТАВИТЬ в символ ASCII, который можно удалить с помощью функции ОЧИСТИТЬ. Вы можете вложить функции ПОДСТАВИТЬ и ОЧИСТИТЬ, чтобы упростить задачу.

    Кроме того, можно просто заменить оскорбительный непечатаемый символ ничем ("").

    Что такое непечатаемые символы?

    Каждый символ на компьютере — печатаемый и непечатаемый — имеет число, известное как код или значение символа Unicode. Другой, более старый и более известный набор символов — ASCII, обозначающий Американский стандартный код для обмена информацией, — был включен в набор Unicode.

    В результате первые 32 символа (от 0 до 31) наборов Unicode и ASCII идентичны. Они используются программами для управления периферийными устройствами, такими как принтеры, на разных платформах. Таким образом, они не предназначены для использования на листе и могут вызвать ошибки, если они присутствуют.

    Функция CLEAN, предшествующая набору символов Unicode, удаляет первые 32 непечатаемых символа ASCII и те же символы из набора Unicode.

    Удаление символов иностранного языка с помощью кода VBA полезно, если у вас есть отчеты Excel, содержащие текст как на английском, так и на иностранном языке. Чтобы удалить посторонний текст, вы должны вручную выбрать каждую ячейку и удалить посторонний текст, чтобы иметь возможность использовать отчеты. Это делает весь процесс длительным. Мы можем удалить посторонний текст, используя приведенный ниже код VBA.

    В этом посте я объясню вам, как использовать код VBA в макросе, представленный в следующем примере, и использовать его для удаления символов иностранного языка.

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

    Шаг 1. Сохраните файл Excel как книгу с поддержкой макросов.

    Шаг 2. Включите вкладку "Разработчик" в своей книге. Перейдите в меню «Файл» > «Параметры» > «Настроить ленту» > в раскрывающемся списке выберите «Главная вкладка» > «Разработчик» > «Добавить» > «ОК»

    .

    Шаг 3. Перейдите на вкладку "Разработчик">Visual BasicStep

    Шаг 4. Перейдите на вкладку «Вставка» > «Модуль».

    Шаг 5. Скопируйте приведенный ниже код VBA и вставьте его в модуль Macro Visual Basic.

    Шаг 6. Нажмите F5 или кнопку "Воспроизвести", чтобы запустить задачу и удалить символы иностранного языка, как показано ниже.

    Объяснение кода VBA

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

    Затемнить кольцо как диапазон

    Первый слой определяет размеры значений на листе. Тусклый термин здесь относится к Измерению. Чтобы упростить понимание, предположим, что у вас есть лист Excel, содержащий алфавиты и цифры. Если мы хотим выбрать только числа, мы установим диапазон измерений как «Целое число». В этом случае мы используем весь диапазон и не указываем, каким должно быть содержимое Excel, потому что мы хотим разделить оба языка, поэтому мы попытаемся выбрать оба. Это также необходимо для того, чтобы при наличии каких-либо номеров как в английском, так и в иностранном тексте мы могли сохранить английские номера и удалить иностранные.

    С помощью CreateObject("vbscript.regexp")

    Второй уровень используется для создания визуального базового сценария для регулярных выражений.В Visual Basic хранится набор регулярных выражений, например, в случае английского языка в нем должны храниться все алфавиты от A до Z как в верхнем, так и в нижнем регистре. Он также должен иметь цифры и знаки препинания. Мы используем оператор With с Create Object. В VBA операторы with могут использоваться для выполнения ряда операторов над указанным объектом. Объект здесь - запустить скрипт VB для регулярных выражений. Мы определим конкретные части регулярных выражений, которые мы хотим извлечь в следующих слоях. Это поможет нам определить регулярные выражения английского языка, чтобы удалить весь остальной иностранный текст.

    .Global = Истина

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

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

    «Символ циркумфлекса», который обычно используется для математического экспоненциального вычисления, используется внутри квадратных скобок для поиска всех других значений, указанных в квадратных скобках. Если вы удалите символ, он удалит английский текст, и у нас останется иностранный. Необходимо иметь этот символ в коде, так как он обеспечивает поиск всего текста на английском языке.

    Символ «обратная косая черта в нижнем регистре d» используется для соответствия любой одиночной десятичной цифре в диапазоне, например, числу пять. Мы будем использовать этот синтаксис, чтобы найти числа, принятые в тексте на английском языке.

    Символ «обратная косая черта в нижнем регистре w» используется для соответствия любому буквенно-цифровому символу в диапазоне, например букве a. Мы будем использовать этот синтаксис, чтобы найти алфавиты, принятые в английском тексте.

    Символ «обратная косая черта в нижнем регистре s минус» используется для игнорирования любых пробелов или знаков табуляции, таких как кавычки или дефисы. Мы будем использовать этот синтаксис, чтобы избежать ненужной пунктуации в тексте.

    Символ «обратная косая черта — точка в нижнем регистре» используется для сопоставления текста, относящегося к символу точки. Мы используем его, чтобы получить этот знак препинания в конце полных предложений.

    Символ «запятая в нижнем регистре с обратной косой чертой» используется для сопоставления текста, относящегося к символу запятой. Мы используем его, чтобы поставить этот знак препинания в середине предложения.

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

    Для каждого rng ​​In Range("A1").CurrentRegion

    Пятый слой указывает Excel выбрать все ячейки, содержащие оба текста в книге, обозначенные Синтаксисом текущей области. Мы используем это, потому что хотим выбрать эти ячейки, а затем заменить их, как в функции «Найти и заменить».

    rng = .Replace(rng, “”)

    Шестой уровень указывает Excel заменить ячейки, выбранные на пятом уровне, значениями в соответствии с шаблоном, определенным на четвертом уровне.

    Седьмой уровень просто указывает Excel повторять функцию поиска и замены до тех пор, пока все ячейки не будут заменены.

    Последний уровень предназначен для закрытия оператора With, который мы начали на втором уровне, для завершения кода.

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

    Надеюсь, это поможет. Пожалуйста, оставьте комментарий ниже с любыми вопросами или предложениями. Для более глубокого обучения Excel ознакомьтесь с нашим полным учебным курсом Excel здесь. Спасибо!

    Читайте также: