Функция =ЧИСЛОИЗСТРОКИ(ТЕКСТ) извлекает число из текста ячейки. Причем не важно в какой части строки находится число: это может быть как начало или конец строки, так и ее середина. Функция имеет всего 1 аргумент:
Функция умеет распознавать целые и дробные числа. К примеру, результатом работы по извлечению числа из ячейки, которая содержит текст "Арбузы за 20,5 рублей за кг", будет значение 20,5.
Для работы функции требуется установка надстройки VBA-Excel, после чего она будет добавлена в Excel и будет работает как и любая другая стандартная функция Excel.
На рисунке далее показаны результаты работы функции в различных случаях.
Внимание! Если текст ячейки содержит более одного числа, то функция их сольет воедино. Например, из текста "7 яблок и 3 груши" будет извлечено число 73.
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