Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Извлечь цифровой код из текста ячейки - Мир MS Excel

Регистрация · Логин: · Пароль: · · Забыли пароль?
Страница 1 из 11
Модератор форума: _Boroda_, Pelena, Manyasha, SLAVICK 
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Извлечь цифровой код из текста ячейки (Формулы/Formulas)
Извлечь цифровой код из текста ячейки
Aleksej Дата: Среда, 02.03.2016, 04:39 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Здравствуйте уважаемые форумчане! :)
Нужна помощь в написании формулы или VBA кода. :'(

Имеется колонка с текстовыми данными из которой необходимо вытащить цифровой код в отдельную колонку. (Пример в приложении)
Код может быть от 4 знаков и до 9, дальше может будет больше :)
Руками его набивать не вариант, там бывают тысячи строк. %)
Пытался сам написать никак не получается. :(
В тексте также присутствуют другие цифры, которые нужно игнорировать.

Пример текста №1: База цен Снабжения, Договор ОСТ-0183/15 8 1744441 (расценка по аналогу Код Отвод 90 89х6-09Г2С) ----------> надо вытащить 1744441
Пример текста №2: База цен Снабжения, Договор ОСТ-0201/15 43 1001531 ----------------------> надо вытащить 1001531

Критерии отбора это:
1. число от 4 до 9 знаков
2. может стоять в конце строки или перед открывающейся скобкой (

Помогите автоматизировать данный процесс :)
К сообщению приложен файл: 121212.xlsx(13Kb)


Сообщение отредактировал Aleksej - Среда, 02.03.2016, 05:30
 
Ответить
СообщениеЗдравствуйте уважаемые форумчане! :)
Нужна помощь в написании формулы или VBA кода. :'(

Имеется колонка с текстовыми данными из которой необходимо вытащить цифровой код в отдельную колонку. (Пример в приложении)
Код может быть от 4 знаков и до 9, дальше может будет больше :)
Руками его набивать не вариант, там бывают тысячи строк. %)
Пытался сам написать никак не получается. :(
В тексте также присутствуют другие цифры, которые нужно игнорировать.

Пример текста №1: База цен Снабжения, Договор ОСТ-0183/15 8 1744441 (расценка по аналогу Код Отвод 90 89х6-09Г2С) ----------> надо вытащить 1744441
Пример текста №2: База цен Снабжения, Договор ОСТ-0201/15 43 1001531 ----------------------> надо вытащить 1001531

Критерии отбора это:
1. число от 4 до 9 знаков
2. может стоять в конце строки или перед открывающейся скобкой (

Помогите автоматизировать данный процесс :)

Автор - Aleksej
Дата добавления - 02.03.2016 в 04:39
Nic70y Дата: Среда, 02.03.2016, 06:34 | Сообщение № 2
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3492
Репутация: 724 ±
Замечаний: 0% ±

Excel 2013
вариант формулой массива
Код
=МАКС(ЕСЛИ(ЕЧИСЛО(--ПСТР(ПОДСТАВИТЬ(A3;" ";"\");СТРОКА($1:$120);СТОЛБЕЦ(D:O)));--ПСТР(A3;СТРОКА($1:$120);СТОЛБЕЦ(D:O))))
К сообщению приложен файл: 4362610.xlsx(13Kb)


ЯД(poison) 41001841029809
+7 978 049 98 74 (мтс)
 
Ответить
Сообщениевариант формулой массива
Код
=МАКС(ЕСЛИ(ЕЧИСЛО(--ПСТР(ПОДСТАВИТЬ(A3;" ";"\");СТРОКА($1:$120);СТОЛБЕЦ(D:O)));--ПСТР(A3;СТРОКА($1:$120);СТОЛБЕЦ(D:O))))

Автор - Nic70y
Дата добавления - 02.03.2016 в 06:34
Aleksej Дата: Среда, 02.03.2016, 07:09 | Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Nic70y, Спасибо :) на примере работает.

Но когда копирую в другой файл, то вариант со скобками после цифрового кода, пишет 0 (ноль).
База цен Снабжения, Договор ОСТ-0183/15 8 1744441 (расценка по аналогу Код Отвод 90 89х6-09Г2С) ------------> 0

Вариант без скобок работает нормально. :)
К сообщению приложен файл: 2610.xlsx(14Kb)


Сообщение отредактировал Aleksej - Среда, 02.03.2016, 07:26
 
Ответить
СообщениеNic70y, Спасибо :) на примере работает.

Но когда копирую в другой файл, то вариант со скобками после цифрового кода, пишет 0 (ноль).
База цен Снабжения, Договор ОСТ-0183/15 8 1744441 (расценка по аналогу Код Отвод 90 89х6-09Г2С) ------------> 0

Вариант без скобок работает нормально. :)

Автор - Aleksej
Дата добавления - 02.03.2016 в 07:09
китин Дата: Среда, 02.03.2016, 08:04 | Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3454
Репутация: 549 ±
Замечаний: 0% ±

Excel 2007;Excel 2010
а если такой вариант? тоже массивная
Код
=--ПСТР(B3;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(--ПСТР(ПОДСТАВИТЬ(B3;" ";"@");СТРОКА($1:$999);7));0);7)

[p.s.]но это если извлекаемое число ВСЕГДА состоит из 7 цифр( как в последнем примере :p )
К сообщению приложен файл: Aleksej.xlsx(15Kb)


Не судите строго:я пытаюсь научиться
ЯД 41001877306852/WM R249698041931; Z239672726538


Сообщение отредактировал китин - Среда, 02.03.2016, 08:10
 
Ответить
Сообщениеа если такой вариант? тоже массивная
Код
=--ПСТР(B3;ПОИСКПОЗ(ИСТИНА;ЕЧИСЛО(--ПСТР(ПОДСТАВИТЬ(B3;" ";"@");СТРОКА($1:$999);7));0);7)

[p.s.]но это если извлекаемое число ВСЕГДА состоит из 7 цифр( как в последнем примере :p )

Автор - китин
Дата добавления - 02.03.2016 в 08:04
Aleksej Дата: Среда, 02.03.2016, 08:42 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
китин, спасибо за помощь! :)
Просто в пример попали 7-значные, а в реале могут быть от 4 до 9, а может даже и больше. :(
а недавно ещё появились коды формата SODXXXXXXXX, HAWXXXXXXX, KFKXXXXXXXX, NOBXXXXXXX, POBXXXXXXXX
, Х - это рандомные цифры, которых может быть тоже не фиксированное количество
[moder]Ну так почему у Вас этого в примере нет? Давайте нормальный пример, что Вы тратите время помогающих впустую!


Сообщение отредактировал _Boroda_ - Среда, 02.03.2016, 09:05
 
Ответить
Сообщениекитин, спасибо за помощь! :)
Просто в пример попали 7-значные, а в реале могут быть от 4 до 9, а может даже и больше. :(
а недавно ещё появились коды формата SODXXXXXXXX, HAWXXXXXXX, KFKXXXXXXXX, NOBXXXXXXX, POBXXXXXXXX
, Х - это рандомные цифры, которых может быть тоже не фиксированное количество
[moder]Ну так почему у Вас этого в примере нет? Давайте нормальный пример, что Вы тратите время помогающих впустую!

Автор - Aleksej
Дата добавления - 02.03.2016 в 08:42
_Boroda_ Дата: Среда, 02.03.2016, 09:36 | Сообщение № 6
Группа: Модераторы
Ранг: Экселист
Сообщений: 9377
Репутация: 3950 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Посмотрите вот такой вариант. Вроде не зависит от количества символов
Код
=СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(ЛЕВБ(A3;ПОИСК("(";A3&" (")-2);" ";ПОВТОР(" ";999));999))
К сообщению приложен файл: 121212_1.xlsx(13Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеПосмотрите вот такой вариант. Вроде не зависит от количества символов
Код
=СЖПРОБЕЛЫ(ПРАВБ(ПОДСТАВИТЬ(ЛЕВБ(A3;ПОИСК("(";A3&" (")-2);" ";ПОВТОР(" ";999));999))

Автор - _Boroda_
Дата добавления - 02.03.2016 в 09:36
Aleksej Дата: Среда, 02.03.2016, 09:48 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 58
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
_Boroda_, Спасибо огромное! :D

Извиняюсь, что не все сразу не выложил! Просто эти коды SODXXXXXXXX и т.д. очень редкие и не так критичны, но с ними тоже работает. :)

Спасибо ещё раз! hands
 
Ответить
Сообщение_Boroda_, Спасибо огромное! :D

Извиняюсь, что не все сразу не выложил! Просто эти коды SODXXXXXXXX и т.д. очень редкие и не так критичны, но с ними тоже работает. :)

Спасибо ещё раз! hands

Автор - Aleksej
Дата добавления - 02.03.2016 в 09:48
sv2014 Дата: Среда, 02.03.2016, 15:20 | Сообщение № 8
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 37 ±
Замечаний: 0% ±

Excel 2013
Aleksej, добрый день,вариант функции uuu в столбце E

[vba]
Код
Function uuu&(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\d{7,9}"
        If .test(t) Then uuu = .Execute(t)(0)
End With
End Function
[/vba]
К сообщению приложен файл: 121212_2_03_201.xls(40Kb)
 
Ответить
СообщениеAleksej, добрый день,вариант функции uuu в столбце E

[vba]
Код
Function uuu&(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\d{7,9}"
        If .test(t) Then uuu = .Execute(t)(0)
End With
End Function
[/vba]

Автор - sv2014
Дата добавления - 02.03.2016 в 15:20
sv2014 Дата: Среда, 02.03.2016, 16:03 | Сообщение № 9
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 156
Репутация: 37 ±
Замечаний: 0% ±

Excel 2013
Aleksej, еще вариант функции zzz в столбце G

[vba]
Код
Function zzz(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "(\d+)(?= \(|$)"
        If .test(t) Then zzz = .Execute(t)(0).Submatches(0)
End With
End Function
[/vba]
К сообщению приложен файл: example_2_03_20.xls(44Kb)
 
Ответить
СообщениеAleksej, еще вариант функции zzz в столбце G

[vba]
Код
Function zzz(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "(\d+)(?= \(|$)"
        If .test(t) Then zzz = .Execute(t)(0).Submatches(0)
End With
End Function
[/vba]

Автор - sv2014
Дата добавления - 02.03.2016 в 16:03
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Извлечь цифровой код из текста ячейки (Формулы/Formulas)
Страница 1 из 11
Поиск:

Яндекс цитирования
© 2010-2016 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!