Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / извлечение число из текстовой строки / 25 сообщений из 27, страница 1 из 2
10.02.2011, 12:46
    #37108804
OlesyaSan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
Подскажите пожалуйста как можно извлечь число (весовку) из этих текстовых строк
Чай Гринфилд Фэстив Грейп 25пак*1.5г 10шт Ленинградская обл РОССИЯ
Чай Гринфилд Флаинг Драгон 100г 16шт Ленинградская обл РОССИЯ
...
Рейтинг: 0 / 0
10.02.2011, 12:56
    #37108838
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
OlesyaSan,

Excel ?
...
Рейтинг: 0 / 0
10.02.2011, 12:57
    #37108844
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
OlesyaSan,

ну вы и выбрали цвет... я вижу только выделив весь фрагмент... просматривать неплохо перед публикацией..

ну а извлечь можно, привязавшись к связке цифра-буква г

т.е. разобрать на слова, слово, оканчивающееся на означ комбинацию и будет нужным

макросом лехко.. можно и формулой
...
Рейтинг: 0 / 0
10.02.2011, 12:59
    #37108850
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
_slan_,

макросом легче, можно через split.
...
Рейтинг: 0 / 0
10.02.2011, 12:59
    #37108852
OlesyaSan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
_slan_,
а если использовать формулу, то какую будет лучше
...
Рейтинг: 0 / 0
10.02.2011, 13:14
    #37108920
vikttur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
Если всегда перед нужным фрагментом 4 слова, то формула простая, если нет - формула массива, большое количество таких (если таблица большая) будет тормозить расчеты.
...
Рейтинг: 0 / 0
10.02.2011, 13:14
    #37108923
SirFisher
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
OlesyaSan, устроит?

Код: plaintext
1.
2.
3.
4.
5.
6.
Sub Text_to_Columns()

Dim i As Integer
i = WorksheetFunction.CountA(Range("A1:A30000"))
Range("A1:A" & i).TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, ConsecutiveDelimiter:=True, Space:=True

End Sub

Предполагается, что Ваши текстовые строки находятся в поле (столбце) A
...
Рейтинг: 0 / 0
10.02.2011, 13:15
    #37108926
vikttur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
viktturЕсли всегда перед нужным фрагментом 4 слова, ...
Уточнение. Если перед фрагментом ли после фрагмента одинаковое количество слов.
...
Рейтинг: 0 / 0
10.02.2011, 13:16
    #37108929
OlesyaSan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
vikttur,
В том то и дело, что таблица большая, и перед числом не всегда четыре слова, тут просто совпало
...
Рейтинг: 0 / 0
10.02.2011, 13:18
    #37108938
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
OlesyaSan,

вопрос конечно интересный.. но вам прямой ответ, боюсь, не поможет :)

ибо это будет не одна функция, несколько..

выложите примерчик данных строк на 50..100, на примере легче пойдет
...
Рейтинг: 0 / 0
10.02.2011, 13:19
    #37108941
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
OlesyaSan,

Гарантировано , в таком случае, только макросами, еще лучше - макросами и регулярными выражениями.
...
Рейтинг: 0 / 0
10.02.2011, 13:22
    #37108949
извлечение число из текстовой строки
OlesyaSanПодскажите пожалуйста как можно извлечь число (весовку) из этих текстовых строк
Чай Гринфилд Фэстив Грейп 25пак*1.5г 10шт Ленинградская обл РОССИЯ
Чай Гринфилд Флаинг Драгон 100г 16шт Ленинградская обл РОССИЯ
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Sub vesovka()
Dim re, ex, c

Set re = CreateObject("vbscript.regexp")
With re
    .Global = False
    .Pattern = "\b([1-9]\d+пак\*){0,1}[1-9]\.{0,1}\d+г"
    .IgnoreCase = True
    For Each c In Range("A1:A2") ' <- задайте свой диапазон
        Set ex = .Execute(c.Value2)
        If ex.Count >  0  Then
            'вывод "весовки" в окно отладки
            Debug.Print ex( 0 )
            'вывод "весовки" в той же строке на 8 колонок правее
            'c.Offset(0, 8).Value2 = ex(0)
        End If
    Next
    Set ex = Nothing
    Set c = Nothing
End With
    
Set re = Nothing

End Sub
...
Рейтинг: 0 / 0
10.02.2011, 13:23
    #37108954
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
big-duke,

да нет, можно и формуллой, но, как правильно заметили выше, на больших массивах может тормозить..
...
Рейтинг: 0 / 0
10.02.2011, 13:26
    #37108964
OlesyaSan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
_slan_,
...
Рейтинг: 0 / 0
10.02.2011, 13:28
    #37108971
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
_slan_,

хотелдось бы взглянуть на формулу.
...
Рейтинг: 0 / 0
10.02.2011, 13:41
    #37109018
vikttur
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
big-dukeхотелдось бы взглянуть на формулу.
Ну, если очень хочется :)
=ПСТР(B6;МИН(ЕСЛИ(ЕЧИСЛО(--ПСТР(B6;СТРОКА($1:$200);1));СТРОКА($1:$200)));ПОИСК("г";ПСТР(B6;МИН(ЕСЛИ(ЕЧИСЛО(--ПСТР(B6;СТРОКА($1:$200);1));СТРОКА($1:$200)));20)))
Работает, если перед нужным фрагментом нет чисел и фрагмент содержит одну "г".
...
Рейтинг: 0 / 0
10.02.2011, 13:49
    #37109039
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
vikttur,

ну вот, я ж говорил..

макросом конечно совсем просто:

Код: plaintext
1.
2.
3.
4.
Function v(r)
    For Each v In Split(r, " ")
        If v Like "*#г*" Then Exit Function
    Next
End Function
...
Рейтинг: 0 / 0
10.02.2011, 13:56
    #37109052
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
viktturbig-dukeхотелдось бы взглянуть на формулу.
Ну, если очень хочется :)
=ПСТР(B6;МИН(ЕСЛИ(ЕЧИСЛО(--ПСТР(B6;СТРОКА($1:$200);1));СТРОКА($1:$200)));ПОИСК("г";ПСТР(B6;МИН(ЕСЛИ(ЕЧИСЛО(--ПСТР(B6;СТРОКА($1:$200);1));СТРОКА($1:$200)));20)))
Работает, если перед нужным фрагментом нет чисел и фрагмент содержит одну "г".
Это просто караул, не то что будет тормозить на больших массивах, тут даже понять как работает нужно время, не говоря уже о поддержке.
Плюс еще и ограничения на шаблон.
Так что эту задачу надо решать макросом.
...
Рейтинг: 0 / 0
10.02.2011, 14:03
    #37109075
_slan_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
big-duke,

согласен :)
...
Рейтинг: 0 / 0
10.02.2011, 14:20
    #37109140
OlesyaSan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
_slan_,
Огромное спасибо!!!!!!!!!!!!!!!!!
...
Рейтинг: 0 / 0
10.02.2011, 15:23
    #37109385
OlesyaSan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
_slan_,
А подскажи пожалуйста еще как изменить функцию, чтобы выходило число для последующих вычислений, или есть другой способ
...
Рейтинг: 0 / 0
10.02.2011, 15:29
    #37109414
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
OlesyaSan,

если получается 25*2г , то какое число вы хотите получить ?
...
Рейтинг: 0 / 0
10.02.2011, 15:30
    #37109418
OlesyaSan
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
big-duke,
должна выходить весовка - 50
...
Рейтинг: 0 / 0
10.02.2011, 15:35
    #37109436
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
OlesyaSan,

А там может быть только знак умножения ?
...
Рейтинг: 0 / 0
10.02.2011, 15:37
    #37109446
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
извлечение число из текстовой строки
Попробуйте через функцию Evaluate, сможете ?
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / извлечение число из текстовой строки / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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