Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выбор чисел из смешанного текста! / 15 сообщений из 15, страница 1 из 1
17.06.2006, 11:56:22
    #33797207
Evrodiller
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор чисел из смешанного текста!
Доброго времени суток!
Возникла такая вот задачка, нужна помощь в решение ее.
Есть таблица№1, в которой есть информация след. типа:
Проволока Ф4 мм , Проволока Ф5мм , Проволока Ф3,5мм
Нужно сделать выбор только чисел и в таблицу№2 перекопировать эти числа.Слова могут распологатся в неправильном порядке, тоесть:
Проволока Ф4мм
Профиль 20х20
Проволока Ф5мм
Мне нужно делать выбор только чисел из проволоки.
Заранее спасибо!
...
Рейтинг: 0 / 0
17.06.2006, 17:53:47
    #33797504
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор чисел из смешанного текста!
Код: plaintext
1.
Dim I as Variant
I = Val(Replace(Range("A1").Value, "Проволока Ф","")
...
Рейтинг: 0 / 0
17.06.2006, 17:55:52
    #33797518
Витал
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор чисел из смешанного текста!
Закрывающую скобку забыл
Код: plaintext
1.
Dim I as Variant
I = Val(Replace(Range("A1").Value, "Проволока Ф",""))
...
Рейтинг: 0 / 0
18.06.2006, 21:52:27
    #33798317
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор чисел из смешанного текста!
можно еще на regexp
...
Рейтинг: 0 / 0
20.06.2006, 07:34:27
    #33801446
Трурль
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор чисел из смешанного текста!
А тот-же пример, где "Проволока 20х20" дожен быть преобразован в "20х20" или просто на 20? Или на 2020 ? Как быть, если чисел несколько? Писать их в соседние ячейки?
...
Рейтинг: 0 / 0
20.06.2006, 10:05:31
    #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
24.06.2006, 08:21:06
    #33812768
Evrodiller
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор чисел из смешанного текста!
Доброго времени суток!
Если не затруднит, поясните пример приведенный выше. Я что-то его не до конца понял, а вернее сказать совсем не понял :(
Заранее спасибо.
...
Рейтинг: 0 / 0
26.06.2006, 08:15:26
    #33813653
Evrodiller
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор чисел из смешанного текста!
Задача сложна или раскоменнтировать просто трудно?:(
...
Рейтинг: 0 / 0
26.06.2006, 08:50:48
    #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
26.06.2006, 09:17:00
    #33813718
vkodor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор чисел из смешанного текста!
Есть ли в формулах Excel регулярные выражения?
...
Рейтинг: 0 / 0
26.06.2006, 10:51:07
    #33813968
Evrodiller
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор чисел из смешанного текста!
Спасибо большое, потопал пробывать +)
...
Рейтинг: 0 / 0
26.06.2006, 11:00:12
    #33813996
Evrodiller
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор чисел из смешанного текста!
Это преобразование из Проволоки Ф4мм в просто 4, а мне надо найти строку . которая содержит слово проволока и изьяв из него число, которое стоит рядом с проволокой, вставить в определенную строку.

Так до конца диапазона для поиска , диапазон состоит из 15 строк.
...
Рейтинг: 0 / 0
26.06.2006, 11:29:50
    #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
27.06.2006, 08:16:59
    #33815781
Evrodiller
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Выбор чисел из смешанного текста!
Мда , а комментария к коду можно будет?
Или небольшое пояснение, где указывается диапазон, где происходит отбор и вставка.
Спасибо.
...
Рейтинг: 0 / 0
07.07.2006, 16:45:45
    #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
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Выбор чисел из смешанного текста! / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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