Формулы в excel без букв

Хитрости »

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)
Три важных момента:

  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
ссылки
статистика

  • Формулы удаления 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

Содержание

  1. Как удалить буквы из строк/чисел/ячеек в Excel?
  2. Удаление букв из строк/чисел/ячеек с формулой массива
  3. Пакетное разделение текста и чисел из одной ячейки/столбца на разные столбцы/строки
  4. Удаление букв из строк/чисел/ячеек с помощью функции, определяемой пользователем
  5. Удалите буквы из строк/чисел/ячеек с помощью функции EXTRACTNUMBERS в Kutools for Excel
  6. Удалите буквы из строк/чисел/ячеек с помощью утилиты Remove Character Kutools for Excel
  7. Демонстрация: удаление букв из строк/чисел/ячеек в Excel
  8. Статьи по теме:
  9. Лучшие инструменты для повышения производительности Office
  10. Kutools for Excel решает большинство ваших проблем и повышает производительность на 80%
  11. Вкладка “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
      • Ответить
  • Для публикации в качестве гостя ваш комментарий не будет опубликован.

    • Ответить

Посчитать сумму значений без буквенных обозначений

rvkarpovich1991 Дата: Четверг, 13.06.2019, 22:08 | Сообщение # 1

Рядовой

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

Сообщений: 2

Репутация: 0

Статус: Offline

ПОМОГИТЕ, ПОЖАЛУЙСТА, С ФОРМУЛАМИ!

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

 
irakitin2014 Дата: Пятница, 14.06.2019, 09:31 | Сообщение # 2

Генерал-майор

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

Сообщений: 311

Репутация: 6

Статус: Offline

И вам здравствуйте
для дней 

Для часов

Код

=СУММ(ЕСЛИОШИБКА(—ПОДСТАВИТЬ($G9:$AK9;»к»;»»);0))

Формула массива. Вводится одновременным нажатием Ctrl+Shift+Enter



для спасибов ЯД 41001877306852

 
rvkarpovich2013 Дата: Вторник, 25.06.2019, 10:00 | Сообщение # 3

Рядовой

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

Сообщений: 6

Репутация: 0

Статус: Offline

Спасибо огромное, только вот в формула считает все буквы, а надо только что бы «к» чтобы другие буквы А, Б, О не считались как дни

 
irakitin2014 Дата: Вторник, 25.06.2019, 10:14 | Сообщение # 4

Генерал-майор

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

Сообщений: 311

Репутация: 6

Статус: Offline

ха, а где у вас в файле 

Цитата rvkarpovich2013 ()

другие буквы А, Б, О

????



для спасибов ЯД 41001877306852

 
rvkarpovich2013 Дата: Вторник, 25.06.2019, 12:43 | Сообщение # 5

Рядовой

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

Сообщений: 6

Репутация: 0

Статус: Offline

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

 
irakitin2014 Дата: Вторник, 25.06.2019, 12:51 | Сообщение # 6

Генерал-майор

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

Сообщений: 311

Репутация: 6

Статус: Offline

ну дык приложите файл с реальной структурой данных. будем посмотреть.



для спасибов ЯД 41001877306852

 
rvkarpovich2013 Дата: Вторник, 25.06.2019, 13:04 | Сообщение # 7

Рядовой

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

Сообщений: 6

Репутация: 0

Статус: Offline

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

Сообщение отредактировал rvkarpovich2013Вторник, 25.06.2019, 13:44

 
irakitin2014 Дата: Вторник, 25.06.2019, 13:07 | Сообщение # 8

Генерал-майор

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

Сообщений: 311

Репутация: 6

Статус: Offline

нет примера



для спасибов ЯД 41001877306852

 
rvkarpovich2013 Дата: Среда, 26.06.2019, 07:54 | Сообщение # 9

Рядовой

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

Сообщений: 6

Репутация: 0

Статус: Offline

есть

 
irakitin2014 Дата: Среда, 26.06.2019, 08:45 | Сообщение # 10

Генерал-майор

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

Сообщений: 311

Репутация: 6

Статус: Offline

ааа понял. тогда просто замените СЧЁТЗ на СЧЁТ



для спасибов ЯД 41001877306852

 
rvkarpovich2013 Дата: Среда, 26.06.2019, 09:11 | Сообщение # 11

Рядовой

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

Сообщений: 6

Репутация: 0

Статус: Offline

Цитата irakitin2014 ()

ааа понял. тогда просто замените СЧЁТЗ на СЧЁТ

 тогда к не считает в рабочий день sad

 
irakitin2014 Дата: Среда, 26.06.2019, 09:27 | Сообщение # 12

Генерал-майор

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

Сообщений: 311

Репутация: 6

Статус: Offline

а где у вас в файле «К» ?  wacko
дык командировка у вас  табеле обозначается как 8к ?
попробуйте

Код

=СЧЁТ(F15:AJ15)+СЧЁТЕСЛИ(F15:AJ15;»=*к»)



для спасибов ЯД 41001877306852

 
rvkarpovich2013 Дата: Среда, 26.06.2019, 09:35 | Сообщение # 13

Рядовой

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

Сообщений: 6

Репутация: 0

Статус: Offline

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

 
boboorsetto Дата: Вторник, 14.07.2020, 16:49 | Сообщение # 14

Рядовой

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

Сообщений: 4

Репутация: 0

Статус: Offline

Да.

 
КИЛМЕТ Дата: Воскресенье, 02.05.2021, 15:31 | Сообщение # 15

Рядовой

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

Сообщений: 4

Репутация: 0

Статус: Offline

Нужна помощ

 

Содержание

  1. Как оставить в ячейке Excel только числа, а весь текст удалить
  2. Способы удаления текста и сохранения числовой информации
  3. Первый метод: использование специальной формулы
  4. Второй метод: использование специального макроса
  5. Заключение и выводы о процедуре извлечение
  6. Как оставить в ячейке только цифры или только текст?
  7. Поиск по меткам

Как оставить в ячейке Excel только числа, а весь текст удалить

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

Способы удаления текста и сохранения числовой информации

Представим, что у нас есть такая информация, располагающаяся в ячейке: «Было доставлено кусков мыла 763шт». Нам необходимо сделать так, чтобы осталось только значение 763 для проведения разнообразных математических операций. Хорошо, если нужно избавиться от текстовых данных только в одной ячейке, тогда можно реализовать удаление ручным способом, но этот вариант не подходит, когда в табличке находится слишком много разной информации. Здесь необходимо применять различные специальные функции табличного редактора.

Первый метод: использование специальной формулы

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

Разберем основные моменты:

  1. Специальную формулу необходимо вбивать в поле при помощи комбинации кнопок «Ctrl+Shift+Enter».
  2. Стоит заметить, что в таком виде массивная формула может использоваться только с текстовой информацией, в которой число знаков не больше 99. Для увеличения диапазона нужно, к примеру, заменить параметр «СТРОКА($1:$99)» на «СТРОКА($1:$200)». Иными словами, мы вместо показателя 99 вводим число знаков с запасом. Если ввести слишком большой диапазон, то обработка формулы может занять длительное время.
  3. Если в текстовых данных числовые значения разбросаны по всему тексту, то формула не сможет правильно обработать информацию.

Детально рассмотрим специальную массивную формулу на таком примере: «Было доставлено кусков мыла 763шт., а заказывали 780»

  1. В поле А1 располагается сама текстовая информация, из которой мы будем извлекать числовые данные.
  2. Фрагмент: МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99))) позволяет определить позицию 1-го значения в поле. Получаем значение 29.
  3. Фрагмент: ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99)) позволяет определить позицию последнего значения в поле. Получаем значение 31.
  4. Мы получаем такую формулу: =ПСТР(А1;29;31-29+1). Оператор ПСТР позволяет извлечь из текстовой информации, указанной 1-м аргументом, начиная с заданной позиции (29) с числом знаков, заданным 3-м аргументом.
  5. В результате мы получаем:
    =ПСТР(А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)

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

  1. Используя специальную комбинацию клавиш «Alt+F11», производим открытие редактора VBA. Альтернативный вариант – нажать ПКМ по рабочему листу и выбрать элемент «Исходный текст».
  2. Реализуем создание нового модуля. Для осуществления этой процедуры жмем левой клавишей мышки на элемент, имеющий наименование «Insert», а затем выбираем объект «Module».
  3. Производим копирование кода, который располагается выше, и вставляем его в созданный модуль. Копирование реализуем при помощи сочетания клавиш «Ctrl+C», а вставку – «Ctrl+V».
  4. Теперь в необходимой ячейке, в которой мы планируем вывести только числовую информацию, вбиваем такую формулу: =GetNumbers(А1).
  5. Нам нужно растянуть формулу вниз на все ячейки колонки. Для этого наводим указатель на нижний правый уголок ячейки. Курсор принял форму небольшого плюсика темного цвета. Зажимаем левую клавишу мышки и протягиваем формулу вниз до окончания таблички.

  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)
Три важных момента:

  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

Данный код необходимо поместить в стандартный модуль книги. После этого в мастере функций в категории Определенные пользователем (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 одновременно.
док удалить буквы из текста 1

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 кнопка. И тогда вы увидите, что из выбранных ячеек удаляются только буквы. Смотрите скриншот:
док удалить буквы из текста 6
Внимание: Если вы действительно хотите удалить все типы символов, кроме числовых, вы можете проверить Нечисловой и нажмите Ok в диалоговом окне «Удалить символы». Смотрите скриншот:
док удалить буквы из текста 7

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-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

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

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

В настоящее время такой встроенной функции нет, поэтому придется писать пользовательскую функцию на 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)

и протягиваем ее вниз

Как получить из строки только буквы в Excel - пользовательская функция

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

Содержание

  1. Способы удаления текста и сохранения числовой информации
  2. Первый метод: использование специальной формулы
  3. Второй метод: использование специального макроса
  4. Заключение и выводы о процедуре извлечение

Способы удаления текста и сохранения числовой информации

Представим, что у нас есть такая информация, располагающаяся в ячейке: «Было доставлено кусков мыла 763шт». Нам необходимо сделать так, чтобы осталось только значение 763 для проведения разнообразных математических операций. Хорошо, если нужно избавиться от текстовых данных только в одной ячейке, тогда можно реализовать удаление ручным способом, но этот вариант не подходит, когда в табличке находится слишком много разной информации. Здесь необходимо применять различные специальные функции табличного редактора.

Первый метод: использование специальной формулы

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

=ПСТР(A1;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99)));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(А1;СТРОКА($1:$99);1));СТРОКА($1:$99)))+1)

Разберем основные моменты:

  1. Специальную формулу необходимо вбивать в поле при помощи комбинации кнопок «Ctrl+Shift+Enter».
  2. Стоит заметить, что в таком виде массивная формула может использоваться только с текстовой информацией, в которой число знаков не больше 99. Для увеличения диапазона нужно, к примеру, заменить параметр «СТРОКА($1:$99)» на «СТРОКА($1:$200)». Иными словами, мы вместо показателя 99 вводим число знаков с запасом. Если ввести слишком большой диапазон, то обработка формулы может занять длительное время.
  3. Если в текстовых данных числовые значения разбросаны по всему тексту, то формула не сможет правильно обработать информацию.

Детально рассмотрим специальную массивную формулу на таком примере: «Было доставлено кусков мыла 763шт., а заказывали 780»

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

    • =ПСТР(А1;29;2+1)
    • =ПСТР(А1;29;3)
    • 763

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

Как оставить в ячейке Excel только числа, а весь текст удалить

Нам необходимо сохранить только текстовую информацию.

Как оставить в ячейке Excel только числа, а весь текст удалить

Специальная формула применяется по аналогичному алгоритму, что и вышерассмотренная. Она выглядит так: =ПСТР(А1;ПОИСК(«-«;А1)+1;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(—ПСТР(ПСТР(А1;ПОИСК(«-«;А1)+1;999);СТРОКА($1:$99);1));0)-1)

Здесь мы, благодаря фрагменту ПОИСК(«-«;А1) отыскали локацию тире, а затем при помощи оператора ПОИСКПОЗ нашли в извлеченных текстовых данных позицию 1-го числа. Передали эти показатели в оператор ПСТР, который реализовал все дальнейшие преобразования.

Второй метод: использование специального макроса

Эту процедуру можно реализовать при помощи специального макроса, созданного в табличном редакторе Эксель. К примеру, у нас есть табличка, в которой существует колонка с текстовой информацией и числовыми данными. Нам нужно оставить только числовые данные, убрав при этом текст.

Как оставить в ячейке Excel только числа, а весь текст удалить

В табличном редакторе отсутствует интегрированная функция, поэтому нам необходимо создать такой пользовательский макрос:

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

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

  1. Используя специальную комбинацию клавиш «Alt+F11», производим открытие редактора VBA. Альтернативный вариант – нажать ПКМ по рабочему листу и выбрать элемент «Исходный текст».
  2. Реализуем создание нового модуля. Для осуществления этой процедуры жмем левой клавишей мышки на элемент, имеющий наименование «Insert», а затем выбираем объект «Module».
  3. Производим копирование кода, который располагается выше, и вставляем его в созданный модуль. Копирование реализуем при помощи сочетания клавиш «Ctrl+C», а вставку – «Ctrl+V».
  4. Теперь в необходимой ячейке, в которой мы планируем вывести только числовую информацию, вбиваем такую формулу: =GetNumbers(А1).
  5. Нам нужно растянуть формулу вниз на все ячейки колонки. Для этого наводим указатель на нижний правый уголок ячейки. Курсор принял форму небольшого плюсика темного цвета. Зажимаем левую клавишу мышки и протягиваем формулу вниз до окончания таблички.

Как оставить в ячейке Excel только числа, а весь текст удалить

  1. Готово! Мы реализовали извлечение числовой информации при помощи специального макроса.

Заключение и выводы о процедуре извлечение

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

Оцените качество статьи. Нам важно ваше мнение:

Like this post? Please share to your friends:
  • Формулы в excel агрегат
  • Формулы в excel xlsx
  • Формулы в excel value
  • Формулы в excel it подсказки
  • Формулы в excel average