Зачистка текста
Зачастую текст, который достается нам для работы в ячейках листа Microsoft Excel далек от совершенства. Если он был введен другими пользователями (или выгружен из какой-нибудь корпоративной БД или ERP-системы) не совсем корректно, то он легко может содержать:
- лишние пробелы перед, после или между словами (для красоты!)
- ненужные символы («г.» перед названием города)
- невидимые непечатаемые символы (неразрывный пробел, оставшийся после копирования из Word или «кривой» выгрузки из 1С, переносы строк, табуляция)
- апострофы (текстовый префикс – спецсимвол, задающий текстовый формат у ячейки)
Давайте рассмотрим способы избавления от такого «мусора».
Замена
«Старый, но не устаревший» трюк. Выделяем зачищаемый диапазон ячеек и используем инструмент Заменить с вкладки Главная – Найти и выделить (Home – Find & Select – Replace) или жмем сочетание клавиш Ctrl+H.
Изначально это окно было задумано для оптовой замены одного текста на другой по принципу «найди Маша – замени на Петя», но мы его, в данном случае, можем использовать его и для удаления лишнего текста. Например, в первую строку вводим «г.» (без кавычек!), а во вторую не вводим ничего и жмем кнопку Заменить все (Replace All). Excel удалит все символы «г.» перед названиями городов:
Только не забудьте предварительно выделить нужный диапазон ячеек, иначе замена произойдет на всем листе!
Удаление пробелов
Если из текста нужно удалить вообще все пробелы (например они стоят как тысячные разделители внутри больших чисел), то можно использовать ту же замену: нажать Ctrl+H, в первую строку ввести пробел, во вторую ничего не вводить и нажать кнопку Заменить все (Replace All).
Однако, часто возникает ситуация, когда удалить надо не все подряд пробелы, а только лишние – иначе все слова слипнутся друг с другом. В арсенале Excel есть специальная функция для этого – СЖПРОБЕЛЫ (TRIM) из категории Текстовые. Она удаляет из текста все пробелы, кроме одиночных пробелов между словами, т.е. мы получим на выходе как раз то, что нужно:
Удаление непечатаемых символов
В некоторых случаях, однако, функция СЖПРОБЕЛЫ (TRIM) может не помочь. Иногда то, что выглядит как пробел – на самом деле пробелом не является, а представляет собой невидимый спецсимвол (неразрывный пробел, перенос строки, табуляцию и т.д.). У таких символов внутренний символьный код отличается от кода пробела (32), поэтому функция СЖПРОБЕЛЫ не может их «зачистить».
Вариантов решения два:
- Аккуратно выделить мышью эти спецсимволы в тексте, скопировать их (Ctrl+C) и вставить (Ctrl+V) в первую строку в окне замены (Ctrl+H). Затем нажать кнопку Заменить все (Replace All) для удаления.
- Использовать функцию ПЕЧСИМВ (CLEAN). Эта функция работает аналогично функции СЖПРОБЕЛЫ, но удаляет из текста не пробелы, а непечатаемые знаки. К сожалению, она тоже способна справится не со всеми спецсимволами, но большинство из них с ее помощью можно убрать.
Функция ПОДСТАВИТЬ
Замену одних символов на другие можно реализовать и с помощью формул. Для этого в категории Текстовые в Excel есть функция ПОДСТАВИТЬ (SUBSTITUTE). У нее три обязательных аргумента:
- Текст в котором производим замену
- Старый текст – тот, который заменяем
- Новый текст – тот, на который заменяем
С ее помощью можно легко избавиться от ошибок (замена «а» на «о»), лишних пробелов (замена их на пустую строку «»), убрать из чисел лишние разделители (не забудьте умножить потом результат на 1, чтобы текст стал числом):
Удаление апострофов в начале ячеек
Апостроф (‘) в начале ячейки на листе Microsoft Excel – это специальный символ, официально называемый текстовым префиксом. Он нужен для того, чтобы дать понять Excel, что все последующее содержимое ячейки нужно воспринимать как текст, а не как число. По сути, он служит удобной альтернативой предварительной установке текстового формата для ячейки (Главная – Число – Текстовый) и для ввода длинных последовательностей цифр (номеров банковских счетов, кредитных карт, инвентарных номеров и т.д.) он просто незаменим. Но иногда он оказывается в ячейках против нашей воли (после выгрузок из корпоративных баз данных, например) и начинает мешать расчетам. Чтобы его удалить, придется использовать небольшой макрос. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert — Module) и введите туда его текст:
Sub Apostrophe_Remove() For Each cell In Selection If Not cell.HasFormula Then v = cell.Value cell.Clear cell.Formula = v End If Next End Sub
Теперь, если выделить на листе диапазон и запустить наш макрос (Alt+F8 или вкладка Разработчик – кнопка Макросы), то апострофы перед содержимым выделенных ячеек исчезнут.
Английские буквы вместо русских
Это уже, как правило, чисто человеческий фактор. При вводе текстовых данных в ячейку вместо русских букв случайно вводятся похожие английские («це» вместо русской «эс», «игрек» вместо русской «у» и т.д.) Причем снаружи все прилично, ибо начертание у этих символов иногда абсолютно одинаковое, но Excel воспринимает их, конечно же, как разные значения и выдает ошибки в формулах, дубликаты в фильтрах и т.д.
Можно, конечно, вручную заменять символы латинцы на соответствующую им кириллицу, но гораздо быстрее будет сделать это с помощью макроса. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert — Module) и введите туда его текст:
Sub Replace_Latin_to_Russian() Rus = "асекорхуАСЕНКМОРТХ" Eng = "acekopxyACEHKMOPTX" For Each cell In Selection For i = 1 To Len(cell) c1 = Mid(cell, i, 1) If c1 Like "[" & Eng & "]" Then c2 = Mid(Rus, InStr(1, Eng, c1), 1) cell.Value = Replace(cell, c1, c2) End If Next i Next cell End Sub
Теперь, если выделить на листе диапазон и запустить наш макрос (Alt+F8 или вкладка Разработчик – кнопка Макросы), то все английские буквы, найденные в выделенных ячейках, будут заменены на равноценные им русские. Только будьте осторожны, чтобы не заменить случайно нужную вам латиницу
Ссылки по теме
- Поиск символов латиницы в русском тексте
- Проверка текста на соответствие заданному шаблону (маске)
- Деление «слипшегося» текста из одного столбца на несколько
На чтение 5 мин Опубликовано 20.01.2021
После составления таблицы в Microsoft Office Excel в ячейках рядом со значениями иногда появляются непечатаемые символы. Это элементы, которые нельзя напечатать вручную с клавиатуры компьютера, появляющиеся вследствие возникновения ошибок, сбоев, неправильно применённой формулы. В данной статье будет рассказано, как убрать такие знаки из ячеек в Экселе.
Содержание
- Как деинсталлировать лишние символы
- Способ 1. Использование формулы
- Способ 2. Удаление непечатаемых символов вручную
- Способ 3. Использование специального макроса
- Способ 4. Повторное заполнение ячеек
- Заключение
Как деинсталлировать лишние символы
Такая процедура в MS Excel обычно выполняется с помощью специальной функции, встроенной в программу. Однако есть и другие способы осуществления поставленной задачи, которые будут подробно описаны далее.
Способ 1. Использование формулы
Самый простой и понятный метод деинсталляции непечатаемых знаков в ячейках Excel. Для его реализации достаточно соблюсти простой алгоритм действий:
- Проанализировать исходный табличный массив, в котором присутствуют «непонятные» символы.
- Создать дополнительный столбец, в котором будет прописываться очищенный от непечатаемых символов текст.
- Поставить курсор мышки в строчку второго столбца напротив соответствующей строки из первого столбика.
- В выделенном элементе прописать вручную с клавиатуры формулу «ПЕЧСИМВ()». Это стандартная функция программы MS Excel, предназначенная для деинсталляции лишних знаков из таблиц, которые нельзя напечатать. В данном примере формула будет записываться следующим образом: «=СЖПРОБЕЛЫ(ПЕЧСИМВ(А2))».
- Когда выражение будет полностью записано, пользователю останется нажать на «Enter» для подтверждения.
- Если похожая ситуация наблюдается по всей табличке, то написанную формулу можно продлить на оставшиеся строчки массива, чтобы не записывать ее для каждого элемента в отдельности, тем самым сэкономив собственное время.
Обратите внимание! Все формулы, которые пользователь Excel вводит в конкретную ячейку табличного массива, также прописываются в специальной строке сверху главного меню программы.
Способ 2. Удаление непечатаемых символов вручную
Такой метод может сработать лишь в редких ситуациях. Однако в рамках данной статьи его также нужно рассмотреть для полного понимания темы. Ручная деинсталляция лишних знаках в ячейках Excel предполагает соблюдения следующей инструкции:
- Левой кнопкой компьютерного манипулятора выделить ячейку, в которой присутствуют непечатаемые символы.
- Переместить курсор мышки в строку для ввода формул, находящуюся под блоком инструментов Microsoft Office Excel.
- Поставить курсор после «проблемного» знака и попытаться его удалить нажатием на клавишу «Backspace» c клавиатуры ПК.
- Проверить результат. Возможно, значок удастся удалить, если нет, то стоит воспользоваться первым способом решения проблемы.
- Проделать подобную операцию со всеми подобными элементами табличного массива.
Рассмотренный выше метод удаления непечатаемых символов отнимет у пользователя много времени на реализацию.
Важно! Функция «ПЕЧСИМВ()» обычно является аргументом другой функции «СЖПРОБЕЛ()», т.е. два этих оператора используются одновременно, удаляя и лишние пробелы, и непечатаемые знаки из исходного текста.
Способ 3. Использование специального макроса
Макрос — это код программы, написанный на встроенном в Excel языке программирования. Чтобы убрать ненужные символы, иероглифы из конкретных ячеек табличного массива, необходимо проделать ряд простых шагов по алгоритму:
- Зайти в редактор Visual Basic. Для этого необходимо, находясь на рабочем листе Эксель, одновременно с клавиатуры зажать кнопки «Alt+F11». Есть и другие способы запуска редактора, однако они более долгие по выполнению.
- В верхней колонке инструментов нажать ЛКМ по слову «Insert».
- В развернувшемся контекстном меню нужно кликнуть по строке «Module».
- После выполнения предыдущих действий откроется рабочее поле для ввода кода. Сверху открывшегося окна будет прописано текущее название документа Microsoft Office Excel, которое задал для него пользователь ПК.
- Ввести с клавиатуры код, показанный на изображении ниже.
- После введения кода понадобится нажать на «Enter» для его запуска.
- Сохранить программу в своей книге макросов при необходимости, закрыть меню Visual Basic и проверить результат. Если все вышеуказанные действия были сделаны правильно, то в исходном табличном массиве строки с непечатаемыми символами автоматически удалятся.
Дополнительная информация! Для экономии времени рассмотренный выше код программы можно найти в интернете и вставить в окно редактора Visual Basic сочетанием клавиш «Ctrl+V».
Способ 4. Повторное заполнение ячеек
Этот метод актуален, если в одном элементе табличного массива присутствуют непечатаемые символы. Тогда их можно удалить и написать заново, затратив минимальное количество времени на выполнение поставленной задачи. Возможно, при повторном заполнении ячейки проблема устранится, и исходная табличка примет «нормальный» вид. Для полной деинсталляции содержимого ячейки ее достаточно выделить и нажать на кнопку «Backspace» либо «Delete» с клавиатуры компьютера.
Заключение
Таким образом, удаление непечатаемых символов в таблице Microsoft Office Excel подчиняется ряду правил. Быстрее всего устранить проблему можно с помощью специальной формулы. Способы деинсталляции лишних знаков были рассмотрены выше. Их рекомендуется внимательно изучить для полного понимания темы.
Оцените качество статьи. Нам важно ваше мнение:
Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel 2019 для Mac Excel 2016 Excel 2016 для Mac Excel 2013 Excel 2010 Excel 2007 Excel для Mac 2011 Excel Starter 2010 Еще…Меньше
В этой статье описаны синтаксис формулы и использование функции ПЕЧСИМВ в Microsoft Excel.
Описание
Удаляет все непечатаемые знаки из текста. Функция ПЕЧСИМВ используется в том случае, когда текст, импортированный из другого приложения, содержит знаки, печать которых не возможна в данной операционной системе. Например, можно использовать функцию ПЕЧСИМВ, чтобы удалить низкоуровневые компьютерные коды, которые часто встречаются в начале или в конце файлов данных и не могут быть напечатаны.
Важно: Функция ПЕЧСИМВ предназначена для удаления из текста первых 32 непечатаемых знаков в 7-разрядном коде ASCII (значения 0—31). В кодировке Юникод имеются дополнительные непечатаемые знаки (со значениями 127, 129, 141, 143, 144 и 157). Сама по себе функция ПЕЧСИМВ не позволяет удалить эти дополнительные непечатаемые знаки. Пример удаления этих дополнительных непечатаемых символов из текста см. в десяти лучших способах очистки данных.
Синтаксис
ПЕЧСИМВ(текст)
Аргументы функции ПЕЧСИМВ описаны ниже.
-
Текст — обязательный аргумент. Любые данные на листе, из которых нужно удалить непечатаемые знаки.
Пример
Скопируйте образец данных из следующей таблицы и вставьте их в ячейку A1 нового листа Excel. Чтобы отобразить результаты формул, выделите их и нажмите клавишу F2, а затем — клавишу ВВОД. При необходимости измените ширину столбцов, чтобы видеть все данные.
Данные |
||
=СИМВОЛ(9)&»Помесячный отчет»&СИМВОЛ(10) |
||
Формула |
Описание |
Результат |
=ПЕЧСИМВ(A2) |
Удаляет непечатаемые знаки СИМВОЛ(9) и СИМВОЛ(10) из строки текста в ячейке А2. |
Помесячный отчет |
Нужна дополнительная помощь?
Skip to content
На чтение 3 мин. Просмотров 5k.
Что макрос делает: Иногда у вас есть непечатаемые символы в ваших данных. Эти символы должны быть удалены, прежде чем можно будет использовать данные для серьезного анализа.
Вы, можете записывать макрос выполнения поиска и замены (записанный макрос является отличным способом для автоматизации поиска и замены процедур). Таким образом, ваша первая реакция может быть, чтобы просто найти и заменить эти символы. Проблема состоит в том, что эти непечатаемые символы являются по большей части невидимым и, таким образом, трудно очистить обычной функцией поиска и замены. Самый простой способ, чтобы очистить их через VBA.
Если вы боретесь с невидимыми символами, используйте этот общий макрос, чтобы найти и удалить все непечатаемые символы.
Содержание
- Как макрос работает
- Код макроса
- Как этот код работает
- Как использовать
Как макрос работает
Этот макрос является относительно простым, поиск и замена обычное дело. Мы используем метод Replace, говоря Excel найти и заменить. Это похоже на синтаксис ручного выполнения поиска и замены.
Разница заключается в том, что кодирование текста использует коды символов, чтобы указать наш текст для поиска. Каждый символ имеет исходный код ASCII, похожий на серийный номер. Например, строчная буква А имеет ASCII-код 97, строчной букве С соответствует ASCII-код 99.
Аналогичным образом, невидимые символы также имеют код:
Код символа перевода строки — 10.
Код возврата каретки — 13.
Код неразрывного пробела — 160.
Этот макрос использует метод Replace, передавая код ASCII каждого символа в качестве поискового элемента. Затем каждый код символа заменяется пустой строкой:
Код макроса
Sub UdalitNepechataemieSimvoli() 'Шаг 1: Удалить перевод строки ActiveSheet.UsedRange.Replace What:=Chr(10), Replacement:="" '‘Шаг 2: Удалить возврат каретки ActiveSheet.UsedRange.Replace What:=Chr(13), Replacement:="" 'Шаг 3: Удалить неразрывный пробел ActiveSheet.UsedRange.Replace What:=Chr(160), Replacement:="" End Sub
Как этот код работает
- Шаг 1 ищет и удаляет символы перевода строки. Код этого символа равен 10. Мы можем определить код символа 10, передавая идентификатор с помощью функции Chr. После того, как Chr (10) определяется как поисковый элемент, то макрос передает пустую строку к замене аргумента.
Обратите внимание на использование ActiveSheet.UsedRange. Excel ищет во всех ячейках, которые имели данные, введенные в них. Вы можете заменить объект UsedRange с реальным диапазоном, если это необходимо. - Шаг 2 находит и удаляет символ возврата каретки.
- Шаг 3 находит и удаляет неразрывные пробелы.
Символы, описанные в этом макросе лишь некоторые из многих непечатаемых символов.
Если вы работаете с другими, вы можете просто добавить новую строку кода, указав соответствующий код символа. Список ASCII-кодов можно найти в любой поисковой системе.
Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
- Активируйте редактор Visual Basic, нажав ALT + F11.
- Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
- Выберите Insert➜Module.
- Введите или вставьте код.
Иногда у вас есть непечатаемые символы данных. Эти символы должны быть удалены, прежде чем можно будет использовать данные для серьезного анализа.
Вы, можете записать макрос поиска и замены (записанный макрос является отличным способом для автоматизации процедур поиска и замены). Ваша первая реакция может быть — просто найти и заменить эти символы. Проблема состоит в том, что эти непечатаемые символы являются по большей части невидимым и, таким образом, их трудно заметить, чтобы очистить функцией поиска и замены.
Самый простой способ — очистить их через VBA. Если вы боретесь с невидимыми символами, используйте этот макрос, чтобы найти и удалить все непечатаемые символы.
Этот макрос является относительно простым. Мы используем метод Replace, говоря Excel найти и заменить. Это похоже на синтаксис ручного выполнения поиска и замены. Разница заключается в том, что кодирование текста использует коды символов, а не сами символы.
Каждый символ имеет исходный код ASCII, похожий на серийный номер. Например, строчная буква А имеет ASCII-код 97, строчной букве С соответствует ASCII-код 99.
Аналогичным образом, невидимые символы также имеют код:
— Код символа переноса строки — 10.
— Код возврата каретки — 13.
— Код неразрывного пробела — 160.
Этот макрос использует метод Replace, чтобы передать код ASCII каждого символа в качестве поискового элемента. Затем каждый код символа заменяется пустотой.