Удалить цифры из ячейки excel

Обновлено: 06.07.2024

Зачастую текст, который достается нам для работы в ячейках листа Microsoft Excel далек от совершенства. Если он был введен другими пользователями (или выгружен из какой-нибудь корпоративной БД или ERP-системы) не совсем корректно, то он легко может содержать:

  • лишние пробелы перед, после или между словами (для красоты!)
  • ненужные символы ("г." перед названием города)
  • невидимые непечатаемые символы (неразрывный пробел, оставшийся после копирования из Word или "кривой" выгрузки из 1С, переносы строк, табуляция)
  • апострофы (текстовый префикс – спецсимвол, задающий текстовый формат у ячейки)

Давайте рассмотрим способы избавления от такого "мусора".

Замена

"Старый, но не устаревший" трюк. Выделяем зачищаемый диапазон ячеек и используем инструмент Заменить с вкладки Главная – Найти и выделить (Home – Find & Select – Replace) или жмем сочетание клавиш Ctrl+H.

Изначально это окно было задумано для оптовой замены одного текста на другой по принципу "найди Маша – замени на Петя", но мы его, в данном случае, можем использовать его и для удаления лишнего текста. Например, в первую строку вводим "г." (без кавычек!), а во вторую не вводим ничего и жмем кнопку Заменить все (Replace All). Excel удалит все символы "г." перед названиями городов:

clean-text1.jpg

Только не забудьте предварительно выделить нужный диапазон ячеек, иначе замена произойдет на всем листе!

Удаление пробелов

Если из текста нужно удалить вообще все пробелы (например они стоят как тысячные разделители внутри больших чисел), то можно использовать ту же замену: нажать Ctrl+H, в первую строку ввести пробел, во вторую ничего не вводить и нажать кнопку Заменить все (Replace All).

Однако, часто возникает ситуация, когда удалить надо не все подряд пробелы, а только лишние – иначе все слова слипнутся друг с другом. В арсенале Excel есть специальная функция для этого – СЖПРОБЕЛЫ (TRIM) из категории Текстовые. Она удаляет из текста все пробелы, кроме одиночных пробелов между словами, т.е. мы получим на выходе как раз то, что нужно:

clean-text2.jpg

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

В некоторых случаях, однако, функция СЖПРОБЕЛЫ (TRIM) может не помочь. Иногда то, что выглядит как пробел – на самом деле пробелом не является, а представляет собой невидимый спецсимвол (неразрывный пробел, перенос строки, табуляцию и т.д.). У таких символов внутренний символьный код отличается от кода пробела (32), поэтому функция СЖПРОБЕЛЫ не может их "зачистить".

Вариантов решения два:

  • Аккуратно выделить мышью эти спецсимволы в тексте, скопировать их (Ctrl+C) и вставить (Ctrl+V) в первую строку в окне замены (Ctrl+H). Затем нажать кнопку Заменить все (Replace All) для удаления.
  • Использовать функцию ПЕЧСИМВ (CLEAN) . Эта функция работает аналогично функции СЖПРОБЕЛЫ, но удаляет из текста не пробелы, а непечатаемые знаки. К сожалению, она тоже способна справится не со всеми спецсимволами, но большинство из них с ее помощью можно убрать.

Функция ПОДСТАВИТЬ

Замену одних символов на другие можно реализовать и с помощью формул. Для этого в категории Текстовые в Excel есть функция ПОДСТАВИТЬ (SUBSTITUTE) . У нее три обязательных аргумента:

  • Текст в котором производим замену
  • Старый текст – тот, который заменяем
  • Новый текст – тот, на который заменяем

С ее помощью можно легко избавиться от ошибок (замена "а" на "о"), лишних пробелов (замена их на пустую строку ""), убрать из чисел лишние разделители (не забудьте умножить потом результат на 1, чтобы текст стал числом):

clean-text3.jpg

Удаление апострофов в начале ячеек

Апостроф (') в начале ячейки на листе Microsoft Excel – это специальный символ, официально называемый текстовым префиксом. Он нужен для того, чтобы дать понять Excel, что все последующее содержимое ячейки нужно воспринимать как текст, а не как число. По сути, он служит удобной альтернативой предварительной установке текстового формата для ячейки (Главная – Число – Текстовый) и для ввода длинных последовательностей цифр (номеров банковских счетов, кредитных карт, инвентарных номеров и т.д.) он просто незаменим. Но иногда он оказывается в ячейках против нашей воли (после выгрузок из корпоративных баз данных, например) и начинает мешать расчетам. Чтобы его удалить, придется использовать небольшой макрос. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert - Module) и введите туда его текст:

Теперь, если выделить на листе диапазон и запустить наш макрос (Alt+F8 или вкладка Разработчик – кнопка Макросы), то апострофы перед содержимым выделенных ячеек исчезнут.

Английские буквы вместо русских

Это уже, как правило, чисто человеческий фактор. При вводе текстовых данных в ячейку вместо русских букв случайно вводятся похожие английские ("це" вместо русской "эс", "игрек" вместо русской "у" и т.д.) Причем снаружи все прилично, ибо начертание у этих символов иногда абсолютно одинаковое, но Excel воспринимает их, конечно же, как разные значения и выдает ошибки в формулах, дубликаты в фильтрах и т.д.

Можно, конечно, вручную заменять символы латинцы на соответствующую им кириллицу, но гораздо быстрее будет сделать это с помощью макроса. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert - Module) и введите туда его текст:

Теперь, если выделить на листе диапазон и запустить наш макрос (Alt+F8 или вкладка Разработчик – кнопка Макросы), то все английские буквы, найденные в выделенных ячейках, будут заменены на равноценные им русские. Только будьте осторожны, чтобы не заменить случайно нужную вам латиницу :)

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

Если же задача — удалить не все цифры, а только отдельно стоящие, их еще можно назвать словами из одних цифр, то задача превращается в нереализуемую вовсе. С помощью надстройки !SEMTools можно — но об этом далее. Сначала рассмотрим обычное удаление цифр.

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

Удаление цифр последовательной заменой

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

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

Формула для удаления цифр из ячейки

В Excel есть функция «ПОДСТАВИТЬ«, она позволяет заменить символ или несколько символов, встречающиеся в ячейке, полностью, вне зависимости от того, сколько раз они встречаются в строке.

На ее основе можно составить многосоставную формулу с 10 уровнями вложенности, которая решит нашу задачу. Так она будет выглядеть:

Автору этого сайта и надстройки !SEMTools часто приходилось решать эту и множество похожих задач, поэтому у него был огромный текстовый файлик с такими формулами. Его приходилось всегда иметь на виду, чтобы быстро использовать нужные. Это было неудобно.

Так пришла идея реализовать возможность производить такие операции в 1 клик и легко находить их. И теперь она есть, в составе целого пакета из 500+ похожих процедур надстройки !SEMTools.

Удалить цифры из текста ячеек в 1 клик

Процедура доступна на панели !SEMTools в разделе «УДАЛИТЬ» в меню «Удалить символы«. Перед удалением рекомендуется воспользоваться похожей функций «Найти числа в ячейках«, чтобы сначала посмотреть, какие ячейки затронет удаление. Смотрите пример:

Удалить слова, содержащие цифры

Как видно из примера выше, если цифры являются частью слов, в которых присутствуют и буквы, это повредит такие слова и не удалит их полностью. Для удаления таких слов в !SEMTools предусмотрены процедуры в меню «Удалить слова«:

  • удалить слова, содержащие цифры
  • удалить слова, состоящие только из цифр

Это позволяет удалять их полностью и не «испортить» данные.

Заключение

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

Как удалить из текстовых ячеек все символы, кроме цифр, таким образом «вытащив» из них цифры? Есть несколько простых и непростых решений.

Заменой остальных символов

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

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

С помощью пользовательских функций (UDF)

Пример пользовательской функции, которая поможет с извлечением чисел из текста:

Как применить данный код:
— Внедрить его в новый модуль книги (используемой сейчас или в личной книге макросов)
— Применить функцию на листе в подобном виде: =extrNum(A1)

С помощью синтаксиса регулярных выражений

Регулярные выражения — отличный помощник при работе с текстовыми данными. Их синтаксис для обработки простых паттернов довольно прост, но возможностей все усложнить предостаточно.

Как в платной, так и в бесплатной версии !SEMTools есть функции:

  • regexReplace, берущая на вход 3 аргумента — строку с данными, текст регулярного выражения и строку для замены.
  • regexExtract с двумя аргументами — строкой и паттерном для извлечения.

Выражение для замены любых символов, кроме цифр, на пустоту, будет выглядеть следующим образом:

Выражение для извлечения первой сплошной последовательности цифр:

Извлечь цифры из текста в 1 клик


Пользователям платной версии !SEMTools доступна возможность извлекать цифры моментально прямо «на месте», не прописывая никаких функций.

Макрос находится в группе «ИЗВЛЕЧЬ» в меню «Извлечь символы».

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

Видеоинструкция

Удалить текст, а цифры оставить — именно такова механика алгоритма !SEMTools. Смотрите короткий видеопример:

Извлечение цифр из ячеек со смешанным содержимым в !SEMTools

Протестировать работу можно и не покупая лицензию, но обрабатываться будет только

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


Удалите числа из ячеек, содержащих текст и числа, с помощью пользовательской функции

Следующая определяемая пользователем функция может помочь вам удалить все числа из ячеек и оставить только текст. Пожалуйста, сделайте следующее.

1. нажмите другой + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.

2. в Microsoft Visual Basic для приложений окна, нажмите Вставить > Модуль. Затем скопируйте и вставьте приведенный ниже код VBA в окно кода. Смотрите скриншот:

Код VBA: удалить числа из ячеек, содержащих тексты и числа


3. нажмите другой + Q ключи, чтобы закрыть Microsoft Visual Basic для приложений окно.

4. Выберите пустую ячейку, введите формулу. = OnlyRemoveNumbers (A2) в панель формул, а затем нажмите Enter ключ для получения результата. Продолжая выбирать ячейку результата, перетащите ее маркер заполнения вниз, чтобы получить все результаты. Смотрите скриншот:


Быстро удаляйте числа из ячеек, содержащих тексты и числа, с помощью Kutools for Excel

Вы можете использовать Удалить символы полезности Kutools for Excel чтобы легко удалить все числа из выбранных ячеек и оставить только текст.

Перед применением Kutools for Excel, Пожалуйста, сначала скачайте и установите.

1. Выберите ячейки, в которых нужно удалить числа и оставить только текст, затем нажмите Kutools > Текст > Удалить символы. Смотрите скриншот:


2. в Удалить символы диалоговое окно, только отметьте Числовой коробка в Удалить символы раздел, а затем щелкните OK кнопку.


Затем все числа удаляются из выбранного диапазона, и остаются только тексты.

Если вы хотите получить 30-дневную бесплатную пробную версию этой утилиты, пожалуйста, нажмите, чтобы загрузить это, а затем перейдите к применению операции в соответствии с указанными выше шагами.

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