Хитрости »
1 Май 2011 398347 просмотров
Как оставить в ячейке только цифры или только текст?
Вот бывает так: есть у Вас в ячейке некий текст. Допустим «Было доставлено кусков мыла 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)
Три важных момента:
- Формула вводится в ячейку сочетанием клавиш Ctrl+Shift+Enter, т.к. является формулой массива. Подробнее про эти формулы читайте в статье: Что такое формула массива
- в таком виде формула работает с текстом, количество символов в котором не превышает 99. Чтобы расширить необходимо в формуле во всех местах заменить СТРОКА($1:$99) на СТРОКА($1:$200). Т.е. вместо 99 указать количество символов с запасом. Только не увлекайтесь, иначе может получиться, что формула будет работать слишком долго
- формула не обработает корректно текст «Было доставлено кусков мыла 763шт., а заказывали 780» и ему подобный, где числа раскиданы по тексту.
Теперь коротко разберем формулу на примере фразы: Было доставлено кусков мыла 763шт.
- в A1 сам текст, из которого необходимо извлечь числа: Было доставлено кусков мыла 763шт., а заказывали 780
- блок: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99)))
вычисляет позицию первой цифры в ячейке — 29 - блок: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99))
вычисляет позицию последней цифры в ячейке — 31 - в результате получается: =ПСТР(A1;29;31—29+1)
функция ПСТР извлекает из текста, указанного первым аргументом(A1) текст, начиная с указанной позиции(29) с количеством символов, указанным третьим аргументом(31—29+1) - И в итоге:
=ПСТР(A1;29;31—29+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) -создать стандартный модуль(Insert —Module) и в него вставить скопированный текст. После чего функцию можно будет вызвать из Диспетчера функций(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
ссылки
статистика
- Формулы удаления N символов в начале и конце строк
- Удалить символы в начале ячейки (слева): функция надстройки !SEMTools
- Удалить символы в конце ячейки (справа): функция надстройки !SEMTools
- Удалить слова и символы по другим условиям
Как удалить первый/последний символ или несколько первых/последних символов в ячейке Excel? Узнайте ответ из этой статьи.
Примечание автора: речь пойдет о ситуациях, когда количество символов определено конкретным числом — один, два, три и т.д. Тому, как удалить текст до определенного символа, посвящена отдельная статья.
Для составления таких формул понадобятся функции ЛЕВСИМВ, ПРАВСИМВ и ДЛСТР. Первые две извлекают из текста указанное количество символов слева и справа соответственно, а ДЛСТР возвращает количество символов в тексте ячейки, к которой обращается.
Чтобы удалить из ячейки N символов слева, можно взять справа количество символов, равное разнице длины строки в символах (ДЛСТР) и N:
=ПРАВСИМВ(A1;ДЛСТР(A1)-N)
А чтобы удалить из ячейки N символов справа, наоборот, извлекаем слева длину строки минус N:
Удалить символы в начале ячейки (слева): функция надстройки !SEMTools
Формулы выше требуют создания дополнительного столбца. Чтобы сэкономить время, если исходные данные не нужны, я разработал функции !SEMTools, удаляющие символы прямо на месте.
Если не уверены до конца в том, что делаете, рекомендуется все же перестраховываться, создавая дополнительный столбец.
Удалить символы в конце ячейки (справа): функция надстройки !SEMTools
Процедура потребуется, когда у вас есть массив фраз, в котором нужно обрезать последние буквы в конце строки, и вы уверены на 100% в их количестве.
Выделите диапазон, затем на панели !SEMTools в меню «Удалить» выберите «Символы -> обрезать -> с конца ячейки». В появившемся диалоговом окошке вбейте количество символов, которое хотите удалить, и нажмите «ОК».
Удалить слова и символы по другим условиям
Надеюсь, на этой странице вы нашли то, что искали, и смогли решить задачу удаления последних или первых символов в ячейках.
Вас наверняка могут заинтересовать похожие операции, смотрите подробнее:
- Взять первые N символов ячейки в Excel;
- Удалить лишние пробелы в Excel;
- Удалить латиницу;
- Удалить все символы, кроме цифр в Excel;
- Удалить все символы, кроме букв и цифр;
- Удалить первое слово или первые N слов в ячейках;
- Регулярные выражения в Excel.
Хотите так же быстро удалять символы в Excel без использования формул?
В надстройке !SemTools есть этот и ещё более 500 похожих полезных инструментов по обработке текста. Сделайте апгрейд вашего Excel!
На чтение 10 мин. Просмотров 626 Опубликовано 14.01.2021
Содержание
- Как удалить буквы из строк/чисел/ячеек в Excel?
- Удаление букв из строк/чисел/ячеек с формулой массива
- Пакетное разделение текста и чисел из одной ячейки/столбца на разные столбцы/строки
- Удаление букв из строк/чисел/ячеек с помощью функции, определяемой пользователем
- Удалите буквы из строк/чисел/ячеек с помощью функции EXTRACTNUMBERS в Kutools for Excel
- Удалите буквы из строк/чисел/ячеек с помощью утилиты Remove Character Kutools for Excel
- Демонстрация: удаление букв из строк/чисел/ячеек в Excel
- Статьи по теме:
- Лучшие инструменты для повышения производительности Office
- Kutools for Excel решает большинство ваших проблем и повышает производительность на 80%
- Вкладка “Office”. Интерфейс с вкладками добавлен в Office, что значительно упростит вашу работу.
Как удалить буквы из строк/чисел/ячеек в Excel?
В этой статье рассказывается о том, как удалить буквы из текстовых строк/ячеек/чисел в Excel . И мы предоставляем четыре метода для решения этой проблемы с помощью формулы массива, пользовательской функции и сторонней надстройки Kutools for Excel.
- Удалить буквы из строки/числа/ячейки с формулой массива
- Удаление букв из строк/чисел/ячеек с помощью функции, определяемой пользователем
- Удалите буквы из строк/чисел/ячеек с помощью утилиты Remove Character в Kutools for Excel
- Удалить буквы из строк/чисел/ячеек с функцией EXTRACTNUMBER Kutools for Excel
Вкладка Office Включает редактирование и просмотр с вкладками в Office и делает вашу работу намного проще …
Подробнее … Скачать бесплатно …
Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%.
- Повторное использование чего угодно: добавление наиболее часто используемых или сложных формул, диаграмм и всего остального в ваши избранные и быстро используйте их в будущем.
- Более 20 текстовых функций: извлечение числа из текстовой строки; Извлечь или удалить часть текстов; Преобразование чисел и валют в английские слова.
- Инструменты слияния: несколько книг и листов в одну; Объединить несколько ячеек/строк/столбцов без потери данных; Объедините повторяющиеся строки и суммируйте.
- Инструменты разделения: разделение данных на несколько листов на основе значения; Из одной книги в несколько файлов Excel, PDF или CSV; Один столбец в несколько столбцов.
- Вставить пропуск скрытых/отфильтрованных строк; Подсчет и сумма по цвету фона; Отправляйте персонализированные электронные письма нескольким получателям массово.
- Суперфильтр: создавайте расширенные схемы фильтров и применяйте их к любым листам; Сортировать по неделе, дню, частоте и т. Д. Фильтр жирным шрифтом, формулами, комментариями …
- Более 300 мощных функций; Работает с Office 2007-2019 и 365; Поддерживает все языки; Простое развертывание на вашем предприятии или в организации.
Подробнее … Бесплатная загрузка …
->
Удаление букв из строк/чисел/ячеек с формулой массива
Мы можем применить формулу массива для удаления букв из строк/чисел/ячеек в Excel. Пожалуйста, сделайте следующее:
1 . Выберите пустую ячейку, в которую вы вернете текстовую строку без букв, введите формулу = СУММ (СРЕДНЕЕ (0 & A2, НАИБОЛЬШИЙ (ИНДЕКС (ЕЧИСЛО (- СРЕДНЕЕ (A2, СТРОКА ($ 1: $ 99), 1)) * СТРОКА ($ 1: $ 99),), СТРОКА ($ 1: $ 99)) + 1,1) * 10 ^ ROW ($ 1: $ 99)/10) ( A2 – это ячейку, из которой вы удалите буквы) в нее и одновременно нажмите клавиши Ctrl + Shift + Enter время.
2 . Продолжайте выделять ячейку, а затем перетащите ее маркер заполнения в нужный диапазон. И теперь вы увидите, что все буквы удалены из исходных текстовых строк, как показано ниже:
Примечания :
(1) Эта формула массива удаляет все типы символов, кроме цифровых. Например, исходная текстовая строка – abc-859 * -24test, эта формула массива удалит все буквы и специальные символы (* и -) и вернет значение 85924.
(2) Если в тексте нет числа строка, эта формула массива вернет 0.
Пакетное разделение текста и чисел из одной ячейки/столбца на разные столбцы/строки
Kutools for Excel расширяет свою утилиту Split Cells и поддерживает пакетное разделение всех текстовых символов и чисел одной ячейки/столбца на два столбца/строки. Полнофункциональная бесплатная пробная версия, 30 дней!
Удаление букв из строк/чисел/ячеек с помощью функции, определяемой пользователем
Мы также можем добавить пользовательскую функцию в Excel для удаления букв из строк/чисел/ячеек. Пожалуйста, сделайте следующее:
1 . Одновременно нажмите клавиши Alt + F11 , чтобы открыть окно Microsoft Visual Basic для приложений.
2 . Щелкните Insert > Module , а затем скопируйте и вставьте следующий код в новое открывающееся окно модуля.
VBA: удаление букв из строк/чисел/ячеек в Excel
Функция StripChar (Txt As String) As StringWith CreateObject ("VBScript.RegExp"). Global = True.Pattern = " D" StripChar = .Replace (Txt, "") End WithEnd Function
3 . Сохраните эту пользовательскую функцию. Выберите пустую ячейку, в которую вы вернете текстовую строку без букв, и введите в нее формулу = StripChar (A2) (A2 – это ячейка, из которой вы удалите буквы) и перетащите маркер заполнения вниз до нужного диапазона. См. Скриншоты:
Примечания:
(1) Эта функция, определяемая пользователем, также может удалять все типы символов, кроме цифровых. Например, исходная текстовая строка – abc-859 * -24test, эта формула массива удалит буквы и специальные символы (* и -) и вернет значение 85924.
(2) Эта определяемая пользователем функция будет возвращать числа, хранящиеся как текстовые строки.
Удалите буквы из строк/чисел/ячеек с помощью функции EXTRACTNUMBERS в Kutools for Excel
Этот метод представит Kutools for Excel функцию EXTRACTNUMBERS , позволяющую легко удалить все буквы из строк/чисел/ячеек в Excel. Пожалуйста, сделайте следующее:
Kutools for Excel – включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Бесплатная пробная версия!
Kutools for Excel – объединяет более 300 дополнительных функций и инструментов для Microsoft Excel
Перейти к загрузке
Бесплатная пробная версия 60 днейПокупка
PayPal/MyCommerce
->
1 . Выберите пустую ячейку, вы вернете текстовую строку без букв, и нажмите Kutools > Функции > Текст > EXTRCTNUMBERS . См. Снимок экрана:
2 . В открывшемся диалоговом окне «Аргументы функции» укажите ячейку, из которой вы будете удалять буквы, в поле Txt , необязательно вводить TRUE или FAlSE в поле N и нажмите кнопку OK .
Примечание . При вводе TRUE будут возвращены числовые числа, при отсутствии ввода или FALSE вернет числа, хранящиеся в виде текстовых строк.
3 . Продолжайте выбирать ячейку и перетащите маркер заполнения в нужный диапазон. И тогда вы увидите, что все буквы удалены из исходных текстовых строк. См. Снимок экрана:
Kutools for Excel – Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Получить сейчас
Примечания:
(1) Вы можете ввести формулу = EXTRACTNUMBERS (A2, TRUE) непосредственно в выбранную ячейку, а затем перетащить дескриптор Fill в нужный диапазон.
(2) Эта функция EXTRACTNUMBERS также удалит все виды символы, кроме цифровых.
Удалите буквы из строк/чисел/ячеек с помощью утилиты Remove Character Kutools for Excel
Все вышеперечисленные методы удаляют все символы, кроме числовых. Но иногда вы можете захотеть удалить только буквы из текстовой строки, но оставить числовые символы и другие. Этот метод представит Kutools for Excel’s Удалить символы , чтобы сделать это легко в Excel.
Kutools for Excel – Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Бесплатная пробная версия!
Kutools for Excel – объединяет более 300 дополнительных функций и инструментов для Microsoft Excel
Перейти к загрузке
Бесплатная пробная версия 60 днейПокупка
PayPal/MyCommerce
->
1 . Выделите ячейки, из которых вы будете удалять буквы, и нажмите Kutools > Текст > Удалить символы .
2 . В открывшемся диалоговом окне «Удалить символы» установите флажок Alpha и нажмите кнопку Ok . И тогда вы увидите, что из выбранных ячеек удаляются только буквы. См. Снимок экрана:
Примечание . Если вы действительно хотите Удалите все виды символов, кроме числовых, вы можете установить флажок Нечисловые и нажать кнопку ОК в диалоговом окне «Удалить символы». См. Снимок экрана:
Kutools for Excel – Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная 30-дневная пробная версия, кредитная карта не требуется! Получить сейчас
Демонстрация: удаление букв из строк/чисел/ячеек в Excel
Kutools for Excel включает более 300 удобных инструментов для Excel, которые можно бесплатно попробовать без ограничений в течение 30 дней. Загрузить и бесплатную пробную версию !
Статьи по теме:
Как удалить числа из текстовых строк в Excel?
Лучшие инструменты для повышения производительности Office
Kutools for Excel решает большинство ваших проблем и повышает производительность на 80%
- Повторное использование : быстро вставляйте сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки паролем; Создавайте список рассылки и отправляйте электронные письма …
- Панель супер формул (легко редактировать несколько строк текста и формул); Чтение макета (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон …
- Объединить ячейки/строки/столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки/столбцы … Предотвратить дублирование ячеек; Сравнить диапазоны …
- Выбрать повторяющиеся или уникальные строки; Выберите пустые строки (все ячейки пусты); Супер поиск и нечеткий поиск во многих книгах; Случайный выбор …
- Точное копирование нескольких ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставьте маркеры, флажки и многое другое …
- Извлечь текст, добавить текст, удалить по позиции, удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии …
- Суперфильтр (сохранение и применение схем фильтрации к другим листам); Расширенная сортировка по месяцам/неделям/дням, частоте и другим параметрам; Специальный фильтр жирным шрифтом, курсивом …
- Объединить рабочие книги и рабочие таблицы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF …
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2019 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Группировка сводной таблицы по номеру недели, дню недели и другим параметрам … Показывать разблокированные, заблокированные ячейки разными цветами; Выделите ячейки с формулой/именем … ->
Подробнее .. . Бесплатная загрузка … Купить …
Вкладка “Office”. Интерфейс с вкладками добавлен в Office, что значительно упростит вашу работу.
- Включить редактирование и чтение с вкладками в Word, Excel, PowerPoint , Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Подробнее … Скачать бесплатно … Купить …
- 7 комментариев
- Войти
-
Сортировать по самым новым
- Лучшим
- популярным
- Новейшие
- Самый старый
Вы гость
или отправьте сообщение в качестве гостя, но ваше сообщение не будет опубликовано автоматически.
Загрузка комментария … Комментарий будет обновлен после 00:00.
-
Для публикации в качестве гостя ваш комментарий не публикуется.
АААААА. Наконец то, что работает! Gj!
- Ответ
-
Для публикации в качестве гостя ваш комментарий не будет опубликован.
Мне нужно удалить весь текст в ячейке, ЗА ИСКЛЮЧЕНИЕМ определенного набора слов. Например, список фруктов или овощей в столбце A, а столбец B содержит описание овощей, включая цвет, и я хочу удалить весь текст в ячейках столбца B, кроме цветных слов. Есть идеи?
- Ответ
-
Для публикации в качестве гостя ваш комментарий не будет опубликован.
Привет, я хочу спросить, есть ли формула для добавления точки к каждому сокращению в одной ячейке в предложении?
пример
825 яблочный рд ст. № 5 – я хочу добавить точку на «рд» и «ст», чтобы сделать его формальным
надеюсь, вы можете мне помочь
спасибо
- Ответить
-
Для публикации в качестве гостя ваш комментарий не будет опубликован.
Привет,
Функция добавления текста в Kutools for Excel может помочь вам решить проблему: https://www.extendoffice.com/ product/kutools-for-excel/excel-add-same-text-to-multiple-cells.html- Ответить
-
Для публикации в качестве гостя ваш комментарий не публикуется.
Formatunknown · 2 года назад
Что делать, если вы хотите сохранить формат числа или десятичных знаков? т.е. Apple30.01? за ответ 30.01? ваш vb бросает пятно?
- Ответ
-
Для публикации в качестве гостя ваш комментарий не публикуется.
Привет, Formatunknown,
В этой ситуации рекомендуется Kutools для Excel Удалить символы.
Выберите ячейки, включите функцию «Удалить символы», отметьте только параметр «Альфа» и нажмите кнопку «ОК», чтобы удалить все буквенные символы и оставить числа, включая десятичные разряды.- doc-comments-3244.png
- Ответить
-
Для публикации в качестве гостя ваш комментарий не будет опубликован.
- Ответить
Посчитать сумму значений без буквенных обозначений |
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
||||||
|
Содержание
- Как оставить в ячейке Excel только числа, а весь текст удалить
- Способы удаления текста и сохранения числовой информации
- Первый метод: использование специальной формулы
- Второй метод: использование специального макроса
- Заключение и выводы о процедуре извлечение
- Как оставить в ячейке только цифры или только текст?
- Поиск по меткам
Как оставить в ячейке Excel только числа, а весь текст удалить
Часто перед пользователями табличного редактора Эксель встает такая задача, когда необходимо удалить всю текстовую информацию в ячейках, а числовые данные оставить. Для осуществления этой процедуры существует множество способов. В статье мы детально разберем каждый метод, позволяющий оставить числа и убрать текст в ячейках.
Способы удаления текста и сохранения числовой информации
Представим, что у нас есть такая информация, располагающаяся в ячейке: «Было доставлено кусков мыла 763шт». Нам необходимо сделать так, чтобы осталось только значение 763 для проведения разнообразных математических операций. Хорошо, если нужно избавиться от текстовых данных только в одной ячейке, тогда можно реализовать удаление ручным способом, но этот вариант не подходит, когда в табличке находится слишком много разной информации. Здесь необходимо применять различные специальные функции табличного редактора.
Первый метод: использование специальной формулы
Для реализации этой процедуры можно применять специальную массивную формулу. Примерная формула выглядит так:
Разберем основные моменты:
- Специальную формулу необходимо вбивать в поле при помощи комбинации кнопок «Ctrl+Shift+Enter».
- Стоит заметить, что в таком виде массивная формула может использоваться только с текстовой информацией, в которой число знаков не больше 99. Для увеличения диапазона нужно, к примеру, заменить параметр «СТРОКА($1:$99)» на «СТРОКА($1:$200)». Иными словами, мы вместо показателя 99 вводим число знаков с запасом. Если ввести слишком большой диапазон, то обработка формулы может занять длительное время.
- Если в текстовых данных числовые значения разбросаны по всему тексту, то формула не сможет правильно обработать информацию.
Детально рассмотрим специальную массивную формулу на таком примере: «Было доставлено кусков мыла 763шт., а заказывали 780»
- В поле А1 располагается сама текстовая информация, из которой мы будем извлекать числовые данные.
- Фрагмент: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99))) позволяет определить позицию 1-го значения в поле. Получаем значение 29.
- Фрагмент: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99)) позволяет определить позицию последнего значения в поле. Получаем значение 31.
- Мы получаем такую формулу: =ПСТР(А1;29;31-29+1). Оператор ПСТР позволяет извлечь из текстовой информации, указанной 1-м аргументом, начиная с заданной позиции (29) с числом знаков, заданным 3-м аргументом.
- В результате мы получаем:
=ПСТР(А1;29;31-29+1)- =ПСТР(А1;29;2+1)
- =ПСТР(А1;29;3)
- 763
Бывают ситуации обратные, когда нужно реализовать операцию извлечения односоставных текстовых данных, исключив числа.
Нам необходимо сохранить только текстовую информацию.
Специальная формула применяется по аналогичному алгоритму, что и вышерассмотренная. Она выглядит так: =ПСТР(А1;ПОИСК(«-«;А1)+1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР(А1;ПОИСК(«-«;А1)+1;999);СТРОКА($1:$99);1));0)-1)
Здесь мы, благодаря фрагменту ПОИСК(«-«;А1) отыскали локацию тире, а затем при помощи оператора ПОИСКПОЗ нашли в извлеченных текстовых данных позицию 1-го числа. Передали эти показатели в оператор ПСТР, который реализовал все дальнейшие преобразования.
Второй метод: использование специального макроса
Эту процедуру можно реализовать при помощи специального макроса, созданного в табличном редакторе Эксель. К примеру, у нас есть табличка, в которой существует колонка с текстовой информацией и числовыми данными. Нам нужно оставить только числовые данные, убрав при этом текст.
В табличном редакторе отсутствует интегрированная функция, поэтому нам необходимо создать такой пользовательский макрос:
Public Function GetNumbers(TargetCell As Range) As String
Dim LenStr As Long
For LenStr = 1 To Len(TargetCell)
Select Case Asc(Mid(TargetCell, LenStr, 1))
GetNumbers = GetNumbers & Mid(TargetCell, LenStr, 1)
Подробная инструкция по созданию пользовательского макроса выглядит так:
- Используя специальную комбинацию клавиш «Alt+F11», производим открытие редактора VBA. Альтернативный вариант – нажать ПКМ по рабочему листу и выбрать элемент «Исходный текст».
- Реализуем создание нового модуля. Для осуществления этой процедуры жмем левой клавишей мышки на элемент, имеющий наименование «Insert», а затем выбираем объект «Module».
- Производим копирование кода, который располагается выше, и вставляем его в созданный модуль. Копирование реализуем при помощи сочетания клавиш «Ctrl+C», а вставку – «Ctrl+V».
- Теперь в необходимой ячейке, в которой мы планируем вывести только числовую информацию, вбиваем такую формулу: =GetNumbers(А1).
- Нам нужно растянуть формулу вниз на все ячейки колонки. Для этого наводим указатель на нижний правый уголок ячейки. Курсор принял форму небольшого плюсика темного цвета. Зажимаем левую клавишу мышки и протягиваем формулу вниз до окончания таблички.
- Готово! Мы реализовали извлечение числовой информации при помощи специального макроса.
Заключение и выводы о процедуре извлечение
Мы выяснили, что существует несколько способов, позволяющих реализовать извлечение числовой информации. Осуществить эту операцию можно при помощи создания специальных макросов в редакторе VBA или же используя массивную формулу. Каждый пользователь может самостоятельно выбрать для себя наиболее удобный способ, который позволит ему убрать текстовую информацию из ячейки и оставить при этом числовые данные.
Источник
Как оставить в ячейке только цифры или только текст?
Вот бывает так: есть у Вас в ячейке некий текст. Допустим «Было доставлено кусков мыла 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)
Три важных момента:
- Формула вводится в ячейку сочетанием клавиш Ctrl+Shift+Enter, т.к. является формулой массива. Подробнее про эти формулы читайте в статье: Что такое формула массива
- в таком виде формула работает с текстом, количество символов в котором не превышает 99. Чтобы расширить необходимо в формуле во всех местах заменить СТРОКА( $1:$99 ) на СТРОКА( $1:$200 ) . Т.е. вместо 99 указать количество символов с запасом. Только не увлекайтесь, иначе может получиться, что формула будет работать слишком долго
- формула не обработает корректно текст » Было доставлено кусков мыла 763шт., а заказывали 780 » и ему подобный, где числа раскиданы по тексту.
Теперь коротко разберем формулу на примере фразы: Было доставлено кусков мыла 763шт.
- в A1 сам текст, из которого необходимо извлечь числа: Было доставлено кусков мыла 763шт., а заказывали 780
- блок: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 )))
вычисляет позицию первой цифры в ячейке — 29 - блок: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР( A1 ;СТРОКА( $1:$99 );1));СТРОКА( $1:$99 ))
вычисляет позицию последней цифры в ячейке — 31 - в результате получается: =ПСТР( A1 ;29;31—29+1)
функция ПСТР извлекает из текста, указанного первым аргументом( A1 ) текст, начиная с указанной позиции(29) с количеством символов, указанным третьим аргументом(31—29+1) - И в итоге:
=ПСТР( A1 ;29;31—29+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
Данный код необходимо поместить в стандартный модуль книги. После этого в мастере функций в категории Определенные пользователем (User Defined) будет доступна функция Extract_Number_from_Text , которую можно будет применять как обычную функцию на листе.
Для извлечения только чисел
=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 601 скачиваний)
Статья помогла? Поделись ссылкой с друзьями!
Поиск по меткам
Здравствуйте скрипт при обработке ячейки:
Пр-ка ТНВД 5301 (пер.) 50-1006315-Б2 выдает: 530150-1006315-2
вопрос есть возможность что бы он брал только последних 15-20 сим.
с заглавными А-Я, или хотя бы цифирки.
Буду признателен за предложения.
Возможно есть проще варианты(12000 стр.записеи) обрезани до последних 10-20сим.
Александр, последние 15-20 символов можно взять при помощи функции ПРАВСИМВ(RIGHT). Так же можно совместить:
=Extract_Number_from_Text(ПРАВСИМВ(A1))
Более сложные вариации извлечения делаются под конкретные данные с учетом различных нюансов.
Добрый день!
Спасибо за замечательный код! Подскажите пожалуйста, как оставить среди неудаляемых символов пробел?
Например, в ячейке было «Т-образный поворот SPB-RF60 TE-200 SS316L».
Ваш код оставляет (после некоторой модификации) «60200316».
А хотелось бы «60 200 316».
Я не понимаю как вписать пробел в строку
Like «*[0-9.,;:-]*» Then
А всё разобрался, пробел нужно указывать в середине ряда, а не в конце.
Здравствуйте.
Использовал функцию, вызванную на VBA, все нормально, при вызове мастера функций он нормально отрабатывает
Но при выполнение в эксель, выскакивает сообщение, что здесь используется циклическая ссылка и потом появляется значение 0. В чем дело?
Добрый день!
А что надо добавить в код/формулу чтобы из строки
«ТП ВЕТЧИННАЯ ВАРЕНАЯ 400Г (162854) /Ш/»
— вытащить только цифры до буквы Г?
— или без содержимого скобок
Заранее большое спасибо!
Нашла пока только такой вариант решения:
=ЛЕВСИМВ(B5;ПОИСК(«г «;B5)-1)
Затем в другой колонке
=ЕСЛИОШИБКА(ПСТР(C5;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99)));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(C5;СТРОКА($1:$99);1));СТРОКА($1:$99)))+1);1000)
И в третьей колонке = из предыдущей и преобразовать в числовой формат макросом
Результат достигнут, но если расскажите как можно было сделать изящнее — обязательно запомню))
Public Function RegExpExtract(Text As String, Pattern As String, Optional Item As Integer = 1) As String On Error GoTo ErrHandl Set regex = CreateObject(«VBScript.RegExp») regex.Pattern = Pattern regex.Global = True If regex.Test(Text) Then Set matches = regex.Execute(Text) RegExpExtract = matches.Item(Item — 1) Exit Function End If ErrHandl: RegExpExtract = CVErr(xlErrValue) End Function
И играйтесь регулярками, на лету выбирая нужные части текста. Инфы с примерами, благо, достаточно.
Денис, спасибо. Но есть все равно пара замечаний, раз уж предлагаете воспользоваться функцией. Неплохо было бы добавить и пример применения. Иначе как тому, кто зайдет почитать использовать Ваше решение?
Я умею использовать регулярки и по коду вижу, что помимо текста надо указать не только шаблон, но еще и номер элемента, который получить. Что является немаловажным замечанием.
Для извлечения первого числа(без разделения групп разрядов) — =(RegExpExtract( A1 ;»d»;1)
Для извлечения первого текста(что не очень удобно, если чисел в тексте много) — =(RegExpExtract( A1 ;»D»;1)
Оба варианта слегка халтурны, но для понимания общего смысла использования подойдут.
В общем и целом я бы в функцию еще параметр IgnoreCase добавил(при извлечении текста по шаблону может потребоваться). Да и Multiline тоже иногда может играть роль(зависит от шаблона и текста), поэтому его тоже лучше ставить в True сразу в случае с такими функциями.
Источник
Как удалить буквы из строк / чисел / ячеек в Excel?
В этой статье рассказывается о том, как удалить буквы из текстовых строк/ячеек/чисел в Excel. И мы предоставляем четыре метода для ее решения с помощью формулы массива, определяемой пользователем функции и сторонней надстройки Kutools for Excel.
- Удалить буквы из строк / чисел / ячеек с помощью формулы массива
- Удаление букв из строк / чисел / ячеек с помощью функции, определяемой пользователем
- Удалите буквы из строк/чисел/ячеек с помощью утилиты «Удалить символ» Kutools for Excel
- Удалить буквы из строк/чисел/ячеек с помощью функции EXTRACTNUMBER Kutools for Excel
Удалить буквы из строк / чисел / ячеек с помощью формулы массива
Мы можем применить формулу массива для удаления букв из строк / чисел / ячеек в Excel. Пожалуйста, сделайте следующее:
1. Выберите пустую ячейку, вы вернете текстовую строку без букв, введите формулу =SUM(MID(0&A2,LARGE(INDEX(ISNUMBER(—MID(A2,ROW($1:$99),1))*ROW($1:$99),),ROW($1:$99))+1,1)*10^ROW($1:$99)/10) (A2 это ячейка, из которой вы будете удалять буквы) в нее и нажмите Ctrl + Shift + Enter одновременно.
2. Продолжайте выделять ячейку, а затем перетащите ее маркер заполнения в нужный диапазон. И теперь вы увидите, что все буквы удалены из исходных текстовых строк, как показано ниже:
Заметки:
(1) Эта формула массива удалит все типы символов, кроме числовых. Например, исходная текстовая строка abc-859 * -24test, эта формула массива удалит все буквы и специальные символы (* и —) и вернуться 85924.
(2) Если в текстовой строке нет числа, эта формула массива вернет 0.
Пакетное разделение текста и чисел из одной ячейки / столбца на разные столбцы / строки
Kutools for Excel повышает его Разделить клетки утилита и поддерживает пакетное разделение всех текстовых символов и чисел одной ячейки / столбца на два столбца / строки.
Удаление букв из строк / чисел / ячеек с помощью функции, определяемой пользователем
Мы также можем добавить пользовательскую функцию в Excel для удаления букв из строк / чисел / ячеек. Пожалуйста, сделайте следующее:
1, нажмите другой + F11 одновременно с клавишами, чтобы открыть окно Microsoft Visual Basic для приложений.
2. Нажмите Вставить > Модули, а затем скопируйте и вставьте следующий код в новое окно открытия модуля.
VBA: удалить буквы из строк / чисел / ячеек в Excel
Function StripChar(Txt As String) As String
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "D"
StripChar = .Replace(Txt, "")
End With
End Function
3. Сохраните эту пользовательскую функцию. Выберите пустую ячейку, вы вернете текстовую строку без букв, и введите формулу = StripChar (A2) (A2 — это ячейка, из которой вы удалите буквы) в нее и перетащите маркер заполнения вниз до нужного вам диапазона. Смотрите скриншоты:
Ноты:
(1) Эта функция, определяемая пользователем, также может удалять все типы символов, кроме цифровых. Например, исходная текстовая строка abc-859 * -24test, эта формула массива удалит буквы и специальные символы (* и —) и вернуться 85924.
(2) Эта определяемая пользователем функция возвращает числа, хранящиеся в виде текстовых строк.
Удалить буквы из строк/чисел/ячеек с помощью функции EXTRACTNUMBERS Kutools for Excel
Этот метод представит Kutools for ExcelАвтора ВЫДЕРЖКИ функция для простого удаления всех букв из строк / цифр / ячеек в Excel. Пожалуйста, сделайте следующее:
1. Выберите пустую ячейку, вы вернете текстовую строку без букв, и нажмите Кутулс > функции > Текст > EXTRCTNUMBERS. Смотрите скриншот:
2. В открывшемся диалоговом окне «Аргументы функции» укажите ячейку, из которой вы будете удалять буквы в Текст поле, вводить необязательно ИСТИНА or Ложный в N и нажмите OK кнопку.
Внимание: Печатать ИСТИНА вернет числовые числа, ничего не набирая или НЕПРАВДА вернет числа, хранящиеся в виде текстовых строк.
3. Продолжайте выбирать ячейку и перетащите маркер заполнения в нужный диапазон. И тогда вы увидите, что все буквы удалены из исходных текстовых строк. Смотрите скриншот:
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now
Ноты:
(1) Вы можете ввести формулу = EXTRACTNUMBERS (A2; ИСТИНА) непосредственно в выбранную ячейку, а затем перетащите маркер заполнения в нужный диапазон.
(2) Эта функция EXTRACTNUMBERS также удаляет все типы символов, кроме цифровых.
Удалите буквы из строк/чисел/ячеек с помощью утилиты «Удалить символ» Kutools for Excel
Все вышеперечисленные методы удалят все символы, кроме цифровых. Но иногда вы можете захотеть удалить только буквы из текстовой строки, но оставить цифры и другие символы. Этот метод познакомит Kutools for ExcelАвтора Удалить символы утилита, чтобы легко сделать это в Excel.
1. Выберите ячейки, из которых вы будете удалять буквы, и нажмите Кутулс > Текст > Удалить символы.
2. В открывшемся диалоговом окне «Удалить символы» установите флажок Альфа и нажмите Ok кнопка. И тогда вы увидите, что из выбранных ячеек удаляются только буквы. Смотрите скриншот:
Внимание: Если вы действительно хотите удалить все типы символов, кроме числовых, вы можете проверить Нечисловой и нажмите Ok в диалоговом окне «Удалить символы». Смотрите скриншот:
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now
Демо: удаление букв из строк / чисел / ячеек в Excel
Статьи по теме:
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Часто требуется получить из строки только буквы, исключив цифры и различные знаки, символы.
В настоящее время такой встроенной функции нет, поэтому придется писать пользовательскую функцию на VBA
Вот небольшой код для пользовательской функции Excel, которая может вытаскивать из строки состоящей из цифр, букв и символов только буквы.
Public Function GetText(txt As String) As String Dim m As String, s As String For i = 1 To Len(txt) m = Mid(txt, i, 1) If m Like "[A-Za-zА-Яа-яЁё]" Then s = s & m Next i GetText = s End Function
Как пользоваться?
Открываем редактор VBA в Excel (Alt+F11), или правой кнопкой по листу и выбираем пункт «Исходный текст».
Создаем новый модуль → Insert → Module
Переключаемся на российскую раскладку клавиатуры, копируем код, указанный выше и вставляем в модуль
Далее в нужной ячейке, где необходимо вывести только буквы, прописываем формулу:
=GetText(A1)
и протягиваем ее вниз
Часто перед пользователями табличного редактора Эксель встает такая задача, когда необходимо удалить всю текстовую информацию в ячейках, а числовые данные оставить. Для осуществления этой процедуры существует множество способов. В статье мы детально разберем каждый метод, позволяющий оставить числа и убрать текст в ячейках.
Содержание
- Способы удаления текста и сохранения числовой информации
- Первый метод: использование специальной формулы
- Второй метод: использование специального макроса
- Заключение и выводы о процедуре извлечение
Способы удаления текста и сохранения числовой информации
Представим, что у нас есть такая информация, располагающаяся в ячейке: «Было доставлено кусков мыла 763шт». Нам необходимо сделать так, чтобы осталось только значение 763 для проведения разнообразных математических операций. Хорошо, если нужно избавиться от текстовых данных только в одной ячейке, тогда можно реализовать удаление ручным способом, но этот вариант не подходит, когда в табличке находится слишком много разной информации. Здесь необходимо применять различные специальные функции табличного редактора.
Первый метод: использование специальной формулы
Для реализации этой процедуры можно применять специальную массивную формулу. Примерная формула выглядит так:
=ПСТР(A1;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99)));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99)))+1)
Разберем основные моменты:
- Специальную формулу необходимо вбивать в поле при помощи комбинации кнопок «Ctrl+Shift+Enter».
- Стоит заметить, что в таком виде массивная формула может использоваться только с текстовой информацией, в которой число знаков не больше 99. Для увеличения диапазона нужно, к примеру, заменить параметр «СТРОКА($1:$99)» на «СТРОКА($1:$200)». Иными словами, мы вместо показателя 99 вводим число знаков с запасом. Если ввести слишком большой диапазон, то обработка формулы может занять длительное время.
- Если в текстовых данных числовые значения разбросаны по всему тексту, то формула не сможет правильно обработать информацию.
Детально рассмотрим специальную массивную формулу на таком примере: «Было доставлено кусков мыла 763шт., а заказывали 780»
- В поле А1 располагается сама текстовая информация, из которой мы будем извлекать числовые данные.
- Фрагмент: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99))) позволяет определить позицию 1-го значения в поле. Получаем значение 29.
- Фрагмент: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99)) позволяет определить позицию последнего значения в поле. Получаем значение 31.
- Мы получаем такую формулу: =ПСТР(А1;29;31-29+1). Оператор ПСТР позволяет извлечь из текстовой информации, указанной 1-м аргументом, начиная с заданной позиции (29) с числом знаков, заданным 3-м аргументом.
- В результате мы получаем:
=ПСТР(А1;29;31-29+1)- =ПСТР(А1;29;2+1)
- =ПСТР(А1;29;3)
- 763
Бывают ситуации обратные, когда нужно реализовать операцию извлечения односоставных текстовых данных, исключив числа.
Нам необходимо сохранить только текстовую информацию.
Специальная формула применяется по аналогичному алгоритму, что и вышерассмотренная. Она выглядит так: =ПСТР(А1;ПОИСК(«-«;А1)+1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР(А1;ПОИСК(«-«;А1)+1;999);СТРОКА($1:$99);1));0)-1)
Здесь мы, благодаря фрагменту ПОИСК(«-«;А1) отыскали локацию тире, а затем при помощи оператора ПОИСКПОЗ нашли в извлеченных текстовых данных позицию 1-го числа. Передали эти показатели в оператор ПСТР, который реализовал все дальнейшие преобразования.
Второй метод: использование специального макроса
Эту процедуру можно реализовать при помощи специального макроса, созданного в табличном редакторе Эксель. К примеру, у нас есть табличка, в которой существует колонка с текстовой информацией и числовыми данными. Нам нужно оставить только числовые данные, убрав при этом текст.
В табличном редакторе отсутствует интегрированная функция, поэтому нам необходимо создать такой пользовательский макрос:
Public Function GetNumbers(TargetCell As Range) As String
Dim LenStr As Long
For LenStr = 1 To Len(TargetCell)
Select Case Asc(Mid(TargetCell, LenStr, 1))
Case 48 To 57
GetNumbers = GetNumbers & Mid(TargetCell, LenStr, 1)
End Select
Next
End Function
Подробная инструкция по созданию пользовательского макроса выглядит так:
- Используя специальную комбинацию клавиш «Alt+F11», производим открытие редактора VBA. Альтернативный вариант – нажать ПКМ по рабочему листу и выбрать элемент «Исходный текст».
- Реализуем создание нового модуля. Для осуществления этой процедуры жмем левой клавишей мышки на элемент, имеющий наименование «Insert», а затем выбираем объект «Module».
- Производим копирование кода, который располагается выше, и вставляем его в созданный модуль. Копирование реализуем при помощи сочетания клавиш «Ctrl+C», а вставку – «Ctrl+V».
- Теперь в необходимой ячейке, в которой мы планируем вывести только числовую информацию, вбиваем такую формулу: =GetNumbers(А1).
- Нам нужно растянуть формулу вниз на все ячейки колонки. Для этого наводим указатель на нижний правый уголок ячейки. Курсор принял форму небольшого плюсика темного цвета. Зажимаем левую клавишу мышки и протягиваем формулу вниз до окончания таблички.
- Готово! Мы реализовали извлечение числовой информации при помощи специального макроса.
Заключение и выводы о процедуре извлечение
Мы выяснили, что существует несколько способов, позволяющих реализовать извлечение числовой информации. Осуществить эту операцию можно при помощи создания специальных макросов в редакторе VBA или же используя массивную формулу. Каждый пользователь может самостоятельно выбрать для себя наиболее удобный способ, который позволит ему убрать текстовую информацию из ячейки и оставить при этом числовые данные.
Оцените качество статьи. Нам важно ваше мнение: