powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выбор чисел из смешанного текста!
15 сообщений из 15, страница 1 из 1
Выбор чисел из смешанного текста!
    #33797207
Evrodiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Возникла такая вот задачка, нужна помощь в решение ее.
Есть таблица№1, в которой есть информация след. типа:
Проволока Ф4 мм , Проволока Ф5мм , Проволока Ф3,5мм
Нужно сделать выбор только чисел и в таблицу№2 перекопировать эти числа.Слова могут распологатся в неправильном порядке, тоесть:
Проволока Ф4мм
Профиль 20х20
Проволока Ф5мм
Мне нужно делать выбор только чисел из проволоки.
Заранее спасибо!
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33797504
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
Dim I as Variant
I = Val(Replace(Range("A1").Value, "Проволока Ф","")
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33797518
Витал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Закрывающую скобку забыл
Код: plaintext
1.
Dim I as Variant
I = Val(Replace(Range("A1").Value, "Проволока Ф",""))
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33798317
Фотография big-duke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно еще на regexp
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33801446
Трурль
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А тот-же пример, где "Проволока 20х20" дожен быть преобразован в "20х20" или просто на 20? Или на 2020 ? Как быть, если чисел несколько? Писать их в соседние ячейки?
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33801664
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Воспользуемся регулярными выражениями, как предложил big-duke.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Public Function fnOnlyNumeric( _
  strValue As String) As String
    Dim objRegExp As RegExp
    Dim objMatches As MatchCollection
    Dim objMatch As Match
    
    Set objRegExp = CreateObject("VBScript.RegExp")
    
    objRegExp.Global = True
    objRegExp.Pattern = "[0-9]{1,2}х[0-9]{1,2}"
    
    Set objMatches = objRegExp.Execute(strValue)
    Set objMatch = objMatches.Item( 0 )
    
    fnOnlyNumeric = objMatch.Value
    
    Set objRegExp = Nothing
End Function

Код: plaintext
?fnOnlyNumeric("Проволока 20х20")
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33812768
Evrodiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток!
Если не затруднит, поясните пример приведенный выше. Я что-то его не до конца понял, а вернее сказать совсем не понял :(
Заранее спасибо.
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33813653
Evrodiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача сложна или раскоменнтировать просто трудно?:(
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33813685
Ashton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача несложна, просто все отдыхают.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
' Подключаем библиотеку Microsoft VBScript
' Regular Expressions.

Public Function fnOnlyNumeric( _
  strValue As String) As String
    Dim objRegExp As RegExp
    Dim objMatches As MatchCollection
    Dim objMatch As Match
    
    ' Создаем объект RegExp.
    Set objRegExp = CreateObject("VBScript.RegExp")
    
    ' True - проверяем по всему тексту,
    ' False - до первого соответсвия.
    objRegExp.Global = True
    
    ' Строка, используемая как шаблон.
    ' Возвращаемые значения на основе этого шаблон могут быть:
    ' 20х20
    ' 1x40
    ' 20x3
    ' 4x5
    objRegExp.Pattern = "[0-9]{1,2}х[0-9]{1,2}"
    
    ' Поиск соответствующих шаблону вхождений в строке-оригинале.
    ' Возвращает коллекцию найденных подстрок в виде агрегатного объекта.
    Set objMatches = objRegExp.Execute(strValue)
    Set objMatch = objMatches.Item( 0 )
    
    ' Функция возвращает первое найденное соответсвие.
    ' В нашем примере - 20х20.
    fnOnlyNumeric = objMatch.Value
    
    Set objRegExp = Nothing
End Function
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33813718
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ли в формулах Excel регулярные выражения?
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33813968
Evrodiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое, потопал пробывать +)
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33813996
Evrodiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это преобразование из Проволоки Ф4мм в просто 4, а мне надо найти строку . которая содержит слово проволока и изьяв из него число, которое стоит рядом с проволокой, вставить в определенную строку.

Так до конца диапазона для поиска , диапазон состоит из 15 строк.
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33814088
LeonM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
Private Function NumSplit(txt As String) As Variant
    Dim i As Long, j As Long, n As Long, m As Long, bn As Boolean, grn() As Long
    n = Len(txt)
    m =  0 
    i =  1 
    j = i
    ReDim grn(m)
    grn(m) = i
    m = m +  1 
    bn = IsNumeric(Mid(txt, i,  1 ))
    While j <= n
        If bn = IsNumeric(Mid(txt, j,  1 )) Then
            j = j +  1 
        Else
            ReDim Preserve grn(m)
            grn(m) = j
            m = m +  1 
            i = j
            bn = IsNumeric(Mid(txt, i,  1 ))
        End If
    Wend
    ReDim Preserve grn(m)
    grn(m) = n +  1 
    NumSplit = grn
End Function
Sub test()
    Dim s As String, i As Long, v
    s = "0123dfh789"
    v = NumSplit(s)
    For i =  1  To UBound(v)
        Debug.Print Mid(s, v(i -  1 ), v(i) - v(i -  1 ))
    Next i
End Sub
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33815781
Evrodiller
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мда , а комментария к коду можно будет?
Или небольшое пояснение, где указывается диапазон, где происходит отбор и вставка.
Спасибо.
...
Рейтинг: 0 / 0
Выбор чисел из смешанного текста!
    #33839071
Фотография Ivan33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
This array formula will extract the phone number as text in the form of
123-45678 from examples as shown below.

234-5678PG
Result 234-5678

Array enter the formula and copy it down as far as needed for entries
in column A.

=MID(A1,MATCH(FALSE,ISERROR(1*MID(A1,ROW(INDIRECT("1:20")),1)),0),21-
SUM(1*ISERROR(1*MID(A1,ROW(INDIRECT("1:20")),1))))
может поможет
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выбор чисел из смешанного текста!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]