Логотип
Надстройка VBA-Excel
Спасибо за надстройку, хотелось бы добавить склонение ФИО по падежам. Не бойтесь скачивать и опробовать в работе демо-версию.
Олег К

Как найти число в произвольной части текста

Функция ЧИСЛОИЗСТРОКИ позволяет найти и извлечь число, находящееся в текстовой ячейке.

 

Добавить в Excel!

Установите программу

*Этого функционала нет в стандартном Excel

 Скачали:  29 344 чел.

Описание функции

Функция =ЧИСЛОИЗСТРОКИ(ТЕКСТ) извлекает число из текста ячейки. Причем не важно в какой части строки находится число: это может быть как начало или конец строки, так и ее середина.  Функция имеет всего 1 аргумент:

  1. ТЕКСТ - строка или ссылка на ячейку, из которой необходимо извлечь число.

Функция умеет распознавать целые и дробные числа. К примеру, результатом работы по извлечению числа из ячейки, которая содержит текст "Арбузы за 20,5 рублей за кг", будет значение 20,5.

Для работы функции требуется установка надстройки VBA-Excel, после чего она будет добавлена в Excel и будет работает как и любая другая стандартная функция Excel.

Пример

На рисунке далее показаны результаты работы функции в различных случаях.

Пример работы функции

Внимание! Если текст ячейки содержит более одного числа, то функция их сольет воедино. Например, из текста "7 яблок и 3 груши" будет извлечено число 73.

Код на VBA

Function ЧИСЛОИЗСТРОКИ(СТРОКА As String)

    Dim sSymbol As String, sWord As String
    Dim i As Integer

    If СТРОКА = "" Then ЧИСЛОИЗСТРОКИ = "Н/Д": Exit Function
    sWord = "":   sSymbol = ""

    ' Проходим по каждому символу
    For i = 1 To Len(СТРОКА)
        sSymbol = Mid(СТРОКА, i, 1)
        If LCase(sSymbol) Like "*[0-9.,;:-]*" Then
            If LCase(sSymbol) Like "*[.,]*" And i > 1 Then
                If Not Mid(СТРОКА, i - 1, 1) Like "*[0-9]*" Or Not Mid(СТРОКА, i + 1, 1) Like "*[0-9]*" Then
                    sSymbol = ""
                End If
            End If
            sWord = sWord & sSymbol
        End If
    Next
    ЧИСЛОИЗСТРОКИ = sWord
End Function

Установка

Обращаем Ваше внимание, что функционал, описанный в данной статье, ОТСУТСТВУЕТ в Excel.

Чтобы его добавить, необходимо установить надстройку VBA-Excel. Данная программа содержит более сотни функций, которые сделают работу с Excel в разы эффективней. С ней рутинные задачи будут занимать считанные секунды. Программой уже воспользовались 29 344 чел., попробуйте и Вы!


Установите программу

Ссылки по теме

  1. Найти дату в тексте ячейки Excel
  2. Извлечь текст из строки Excel
  3. Как удалить лишние пробелы в диапазоне

Комментарии:

comments powered by Disqus