Страницы: 1
RSS
Выделение 8значного числа из строки, (расположение его в строке различно - в начале, в конце, в середине...)
 
Добрый день. Подскажите, пжл, как вытащить 8значное число из строки. Это число может распологаться в различных местах - в начале, в конце... Спасибо))
 
=МАКС(ЕСЛИОШИБКА(--ПСТР(A2;СТРОКА($1:$99);8);))
Формула массива, ввод тремя клавишами.
Если мешают нулевые значения, их можно скрыть (в параметрах листа есть галка)
 
или UDF
Код
Public Function NumFromString(st As String)
    Dim s As Integer
    While Len(st) >= 8
        If st Like "########*" Then
            NumFromString = Left(st, 8)
            Exit Function
        Else
            st = Right(st, Len(st) - 1)
        End If
    Wend
    NumFromString = ""
End Function
 
webley, большое спасибо. В большенстве строчек работает, но если будет строка например "80150508423, з.10612323" то берется 8 значений первого числа, а не 8значное второе.
 
ну если такие варианты бывают, тогда вот так:
Код
Public Function NumFromString(st As String)
    Dim s As Integer, tmp As String
    NumFromString = ""
    For s = 1 To Len(st)
        If Mid(st, s, 1) Like "#" Then
            tmp = tmp & Mid(st, s, 1)
            If s = Len(st) And Len(tmp) = 8 Then NumFromString = tmp
        Else
            If tmp <> "" And Len(tmp) = 8 Then NumFromString = tmp
            tmp = ""
        End If
    Next s
End Function

PS шрифт поменьше сделайте, а то глаза режет :)
 
Цитата
Ula написал:  если будет строка например "80150508423, з.10612323"
И что еще Вы в рукаве прячете?
 
Была похожая тема в избушке. Вариант с количеством цифр до 20. Решение не моё, доделал до применимости с любым кол-ом знаков.

Моя цитата по той теме.
Отличное решение от "Светлый"! На его основе положу в коллекцию универсальный вариант для пользователей (от 1 до 20 символов), меняя текущий - знак "6" на нужный пользователю (кол-во искомых цифр).
=ПСТР(A2;ПОИСКПОЗ(6+1;ЧАСТОТА(СТРОКА($1:$999);ЕОШ(-ПСТР(A2&-(9^6);СТРОКА($1:$999);1))*СТРОКА($1:$999));)-6;6)
Изменено: bedvit - 23.10.2017 19:51:42
«Бритва Оккама» или «Принцип Калашникова»?
 
webley, bedvit, большое вам спасибо за науку и терпение)) работают все варианты, очень пригодится в работе в дальнейшем... Спасибо :-)
Страницы: 1
Наверх