Убрать цифры в excel 2010

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

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

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

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

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

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

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

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

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

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

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"1";"");"2";"");"3";"");"4";"");"5";"");"6";"");"7";"");"8";"");"9";"");"0";"")

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

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

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

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

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

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

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

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

Скачайте надстройку !SEMTools, чтобы упростить эту и сотни других задач в работе с Excel!

Оставить в ячейке только текст (удалить все числа)

  Доступность
Скачать ЁXCEL
Возможность отмены:

Данная команда позволяет массово удалять из текст множества ячеек числа:

ostavit-v-yachejke-tolko-tekst-udalit-vse-chisla

Чтобы воспользоваться данной командой выделите ячейки с текстом из которых вы хотите удалить числа, перейдите во вкладку «ЁXCEL» Главного меню, нажмите кнопку «Ячейки» и выберите команду «Оставить в ячейке только текст (удалить все числа)»:

Оставить в ячейке только текст (удалить все числа)

Все числа из выделенных ячеек будут удалены.

Для отмены операции нажмите кнопку отмены:

Добавить комментарий

Имя

Отправить

JComments

Автор Владислав Каманин На чтение 1 мин

А вы знаете как из отчета в Excel быстро удалить только числа, а формулы и текст оставить?

Как быстро удалить числа из таблицы Excel

На вкладке Главная щелкните по Найти и выделить, а затем Выделить группу ячеек.

Как быстро удалить числа из таблицы Excel

В окне Выделить группу ячеек щелкните по Константы и уберите галочку с Текст.

Кликните Ок.

Telegram Logo Больше лайфхаков в нашем Telegram Подписаться

Как быстро удалить числа из таблицы Excel

Ячейки с числами будут выделены.

Нажмите клавишу Delete для удаления.

Как быстро удалить числа из таблицы Excel

Отчет готов к заполнению новыми данными.

Как быстро удалить числа из таблицы Excel

Почитайте еще

Все новички в Excel заполняют пустые ячейки таблицы вручную.

Инструмент формат по образцу или как часто его называют

Если начальник попросил в таблице с заказами по номеру

Если вы часто работаете в Excel с большими числами

Удалить цифры, что бы остались только буквы.

Taliya

Дата: Пятница, 18.07.2014, 12:26 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

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

 

Ответить

_Boroda_

Дата: Пятница, 18.07.2014, 12:39 |
Сообщение № 2

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Это не в ячейке содержится. Это формат ячейки такой 0,000″ м.»;[Красный]-0,000″ м.». А в ячейке просто число, без букв.


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Taliya

Дата: Пятница, 18.07.2014, 12:52 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Можно как-то сделать так что бы ячейки имели вид только с буквами?

 

Ответить

_Boroda_

Дата: Пятница, 18.07.2014, 12:53 |
Сообщение № 4

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Можно. Функцией пользователя
[vba]

Код

Function buk(adr As Range)
     f_ = adr.NumberFormat
     t_ = Mid(f_, WorksheetFunction.Search(«»»», f_) + 2, WorksheetFunction.Search(«»»;», f_) — WorksheetFunction.Search(«»»», f_) — 2)
End Function

[/vba]
Смотрите в файле.
Макросы должны быть разрешены


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Taliya

Дата: Пятница, 18.07.2014, 13:25 |
Сообщение № 5

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Других вариантов нет?
Пол часа танца с бубном..ниче не получается((

 

Ответить

Taliya

Дата: Пятница, 18.07.2014, 14:00 |
Сообщение № 6

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Не пойму что не так делаю..все как Вы написали

ПыСы а в графе выходи или «ЗНАЧ» или «0»

К сообщению приложен файл:

8740294.xlsm
(48.2 Kb)

Сообщение отредактировал TaliyaПятница, 18.07.2014, 14:01

 

Ответить

_Boroda_

Дата: Пятница, 18.07.2014, 14:11 |
Сообщение № 7

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

А потому, что в ЭТОМ примере у Вас шт. не форматом выведены, а текстом.
вот тут Вам нужна формула

Код

=ПСТР(B7;ПОИСК(» «;B7)+1;99)


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

Taliya

Дата: Пятница, 18.07.2014, 14:31 |
Сообщение № 8

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

СПАСИБО! Теперь разобралась как мне проще делать..с функцией так и не подружилась..но если графу с форматом ячеек «0,000» м.»;[Красный]-0,000″ м.» скопировать в ворд а потом обратно в ексель то формат ячеек меняется на общий и появляются уже шт. м. и т.д. А потом уже вставляю Вашу формулу!
Большое спасибо..сэкономили час жизни еженедельно!!! hands

 

Ответить

Michael_S

Дата: Пятница, 18.07.2014, 14:38 |
Сообщение № 9

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

но если графу с форматом ячеек «0,000» м.»;[Красный]-0,000″ м.» скопировать в ворд

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

 

Ответить

Taliya

Дата: Пятница, 18.07.2014, 14:44 |
Сообщение № 10

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

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

Эт как?

 

Ответить

ArkaIIIa

Дата: Пятница, 18.07.2014, 14:50 |
Сообщение № 11

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

Taliya

Позволю себе модифицировать формулу многоуважаемого Бороды

Код

=ЕСЛИОШИБКА(ЕСЛИ(—ЛЕВСИМВ(B7;ПОИСК(«.»;B7;1)-1)>=0;ПСТР(B7;ПОИСК(» «;B7)+1;99);»»);ПСТР(B7;ПОИСК(» «;B7;ПОИСК(» «;B7)+1)+1;99))

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

Сообщение отредактировал ArkaIIIaПятница, 18.07.2014, 14:53

 

Ответить

Taliya

Дата: Пятница, 18.07.2014, 14:58 |
Сообщение № 12

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

ArkaIIIa
Огромное СПАСИБО! как раз на этом «споткнулась»..только хотела спросить.. а уже готов ответ! hands

 

Ответить

_Boroda_

Дата: Пятница, 18.07.2014, 15:00 |
Сообщение № 13

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16618


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Для любого кол-ва пробелов

Код

=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(B7;» «;ПОВТОР(» «;99));99*(ДЛСТР(B7)-ДЛСТР(ПОДСТАВИТЬ(B7;» «;»»)));99))


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

ArkaIIIa

Дата: Пятница, 18.07.2014, 15:03 |
Сообщение № 14

Группа: Проверенные

Ранг: Ветеран

Сообщений: 894


Репутация:

115

±

Замечаний:
0% ±


2010

_Boroda_
Класс! Очень универсально и вроде бы даже не слишком сложно :-)

 

Ответить

Michael_S

Дата: Пятница, 18.07.2014, 18:13 |
Сообщение № 15

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

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

Эт как?

 

Ответить

Michael_S

Дата: Пятница, 18.07.2014, 18:15 |
Сообщение № 16

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

продолжение

 

Ответить

Michael_S

Дата: Пятница, 18.07.2014, 18:16 |
Сообщение № 17

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

далее

 

Ответить

Michael_S

Дата: Пятница, 18.07.2014, 18:17 |
Сообщение № 18

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

Последнее действие в ворде — удалить пробелы, и результат:

К сообщению приложен файл:

5320391.docx
(45.7 Kb)

 

Ответить

Michael_S

Дата: Пятница, 18.07.2014, 18:37 |
Сообщение № 19

Группа: Друзья

Ранг: Старожил

Сообщений: 2012


Репутация:

373

±

Замечаний:
0% ±


Excel2016

Модификация формулы _Boroda_,

Код

=СЖПРОБЕЛЫ(ПРАВСИМВ(ПОДСТАВИТЬ(B2112;» «;ПОВТОР(» «;99));99))

 

Ответить

Taliya

Дата: Пятница, 18.07.2014, 20:58 |
Сообщение № 20

Группа: Пользователи

Ранг: Прохожий

Сообщений: 8


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Michael_S
Спасибо за возможные варианты..попробую! ))

 

Ответить

Хитрости »

1 Май 2011              398332 просмотров


Как оставить в ячейке только цифры или только текст?

Вот бывает так: есть у Вас в ячейке некий текст. Допустим «Было доставлено кусков мыла 763шт.». Вам нужно из этого только 763 — чтобы можно было провести с этим некие математические действия. Если это только одна ячейка — проблем тут нет, а если таких ячеек пару тысяч? И к тому же все разные?

  • Было доставлено кусков мыла 763шт.
  • Всего пришло 34
  • Тюбики — 54 доставлено
  • и т.д.

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


СПОСОБ 1: не используем макросы
можно применить формулу массива, вроде такой:
=ПСТР(A1;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99)));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99)))+1)
Три важных момента:

  1. Формула вводится в ячейку сочетанием клавиш Ctrl+Shift+Enter, т.к. является формулой массива. Подробнее про эти формулы читайте в статье: Что такое формула массива
  2. в таком виде формула работает с текстом, количество символов в котором не превышает 99. Чтобы расширить необходимо в формуле во всех местах заменить СТРОКА($1:$99) на СТРОКА($1:$200). Т.е. вместо 99 указать количество символов с запасом. Только не увлекайтесь, иначе может получиться, что формула будет работать слишком долго
  3. формула не обработает корректно текст «Было доставлено кусков мыла 763шт., а заказывали 780» и ему подобный, где числа раскиданы по тексту.

Теперь коротко разберем формулу на примере фразы: Было доставлено кусков мыла 763шт.

  • в A1 сам текст, из которого необходимо извлечь числа: Было доставлено кусков мыла 763шт., а заказывали 780
  • блок: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99)))
    вычисляет позицию первой цифры в ячейке — 29
  • блок: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99))
    вычисляет позицию последней цифры в ячейке — 31
  • в результате получается: =ПСТР(A1;29;3129+1)
    функция ПСТР извлекает из текста, указанного первым аргументом(A1) текст, начиная с указанной позиции(29) с количеством символов, указанным третьим аргументом(3129+1)
  • И в итоге:
    =ПСТР(A1;29;3129+1)
    => =ПСТР(A1;29;2+1)
    => =ПСТР(A1;29;3)
    => 763

Может быть задача проще — необходимо извлечь односоставной текст, убрав цифры вначале и в конце строки, учитывая, что сам текст всегда следует после разделителя(например, тире):

12.08-АГСВ2
12.08-АГСВ1
01.03-ОВ2
12.03-КЖ6.1

Из этих данных надо получить только текст после тире(-) и отсечь цифры на конце:

АГСВ
АГСВ
ОВ
КЖ

Формула будет работать почти по тому же принципу, что и формула выше, но она проще:

=ПСТР(A1;ПОИСК(«-«;A1)+1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР(A1;ПОИСК(«-«;A1)+1;999);СТРОКА($1:$99);1));0)-1)

В данном случае мы при помощи

ПОИСК(«-«;A1)

ищем сначала позицию тире, далее при помощи

ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР(A1;ПОИСК(«-«;A1)+1;999);СТРОКА($1:$99);1));0)

находим именно в отсеченном тексте позицию первой цифры. Передаем эти значения в

ПСТР

, которая отбирает из этого текста все от первого тире(+1) до первого числа, идущего после текста.


СПОСОБ 2: используем макросы
Самый главный недостаток метода при помощи формулы, приведенной выше — из текста «Было доставлено кусков мыла 763шт., а заказывали 780» формула вернет не только числа, а и текст между первой и последней цифрой: 763шт., а заказывали 780.
Решить же проблему извлечения цифр даже из такого текста при помощи VBA куда проще и гибче. Плюс можно не только цифры извлекать, но и наоборот — цифры удалить, а извлечь только текст. Ниже приведен код пользовательской функции, которая поможет извлечь из строки только числа либо только текст. Иными словами, результатом функции будет либо только текст, либо только числа.

Function Extract_Number_from_Text(sWord As String, Optional Metod As Integer)
'sWord = ссылка на ячейку или непосредственно текст
'Metod = 0 – числа
'Metod = 1 – текст
    Dim sSymbol As String, sInsertWord As String
    Dim i As Integer
 
    If sWord = "" Then Extract_Number_from_Text = "Нет данных!": Exit Function
    sInsertWord = ""
    sSymbol = ""
    For i = 1 To Len(sWord)
        sSymbol = Mid(sWord, i, 1)
        If Metod = 1 Then
            If Not LCase(sSymbol) Like "*[0-9]*" Then
                If (sSymbol = "," Or sSymbol = "." Or sSymbol = " ") And i > 1 Then
                    If Mid(sWord, i - 1, 1) Like "*[0-9]*" And Mid(sWord, i + 1, 1) Like "*[0-9]*" Then
                        sSymbol = ""
                    End If
                End If
                sInsertWord = sInsertWord & sSymbol
            End If
        Else
            If LCase(sSymbol) Like "*[0-9.,;:-]*" Then
                If LCase(sSymbol) Like "*[.,]*" And i > 1 Then
                    If Not Mid(sWord, i - 1, 1) Like "*[0-9]*" Or Not Mid(sWord, i + 1, 1) Like "*[0-9]*" Then
                        sSymbol = ""
                    End If
                End If
                sInsertWord = sInsertWord & sSymbol
            End If
        End If
    Next i
    Extract_Number_from_Text = sInsertWord
End Function

Чтобы правильно использовать приведенный код, необходимо сначала ознакомиться со статьей Что такое функция пользователя(UDF)?. Вкратце: скопировать текст кода выше, перейти в редактор VBA(Alt+F11) -создать стандартный модуль(InsertModule) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций(Shift+F3), отыскав её в категории Определенные пользователем (User Defined Functions) и применять как обычную функцию на листе.
Для извлечения только чисел
=Extract_Number_from_Text(A1; 0)
или
=Extract_Number_from_Text(A1)
Для извлечения только текста
=Extract_Number_from_Text(A1; 1)

Подробнее про создание пользовательских функции и их применении можно почитать в статье Что такое функция пользователя(UDF)?


Помимо функции пользователя решил выложить и вариант с использованием диалогового окна:

Выбрать ячейку или диапазон с текстом(Лист1!$A$2:$A$10) — здесь указывается диапазон с исходными значениями, из которого необходимо оставить только числа или только текст.

Выберите ячейку для вывода данных(Лист1!$A$2) — указывается одна ячейка, с которой начать вывод преобразованных значений. В качестве этой ячейки можно выбрать первую ячейку диапазона с текстом(исходного) если необходимо произвести изменения сразу в этих же ячейках(как на рисунке). Осторожнее с таким указанием, т.к. результат работы кода может быть не совсем таким, какой вы ожидали, а вернуть прежние данные уже не получится — если только не закрыть файл без сохранения изменений.

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

Небольшое дополнение к использованию кода
В коде есть строка:

If LCase(sSymbol) Like "*[0-9.,;:-]*" Then

Данная строка отвечает за текстовые символы, которые могут встречаться внутри чисел и которые надо оставить(не удалять наравне с другими не числовыми символами). Следовательно, если какие-то из данных символов не нужны в конечном тексте — их надо просто удалить. Например, чтобы оставались исключительно числа(без запятых и пр.):

If LCase(sSymbol) Like "*[0-9]*" Then

если надо исключить из удаления помимо цифр точку(т.е. будут извлечены цифры и точка):

If LCase(sSymbol) Like "*[0-9.]*" Then

и т.д.
Скачать пример:

  Число из текста и наоборот.xls (99,0 KiB, 17 669 скачиваний)

Также см.:
Извлечение числа из текста
Что такое функция пользователя(UDF)?
Как получить адрес гиперссылки из ячейки
Оставить цифры или текст при помощи PowerQuery


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

Понравилась статья? Поделить с друзьями:
  • Убрать цвет заливки word
  • Убрать формулу в excel оставив значения в файле
  • Убрать формулу в excel в одной ячейке
  • Убрать форматирование таблиц excel
  • Уверенно работать в excel