Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.01.2016, 11:00   #1
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию Поиск значения в ячейке

Доброго времени суток, уважаемые форумчане!

Прошу помочь мне разобраться с формулой, все хожу кругами "вокруг да около", не приходит в голову никаких идей.
Суть задачи, получить значение "ИНН" из ячейки, причем длина количество знаков в ИНН, может быть разная, от 1 и более...
(прилагай файл с вариантами формулы)

ЗАДАЧА:
78:ООО "Пряник" /неосновные услуги реализации (аренда)/; Т0545: Прочие коммерческие организации; ИНН: 7800454545; Долгосрочная аренда

НУЖНЫЙ РЕЗУЛЬТАТ:
7800454545
Вложения
Тип файла: xlsx ИНН.xlsx (10.5 Кб, 9 просмотров)
amadeus017 вне форума Ответить с цитированием
Старый 23.01.2016, 11:24   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

мой вариант:
Код:
=ПСТР(ПСТР(D3;ПОИСК("ИНН: ";D3)+5;30);1;ПОИСК(";";ПСТР(D3;ПОИСК("ИНН: ";D3)+5;30))-1)
p.s. не факт, что оптимально, но зато работает!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 23.01.2016, 11:32   #3
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Большое спасибо!

Главное, чтобы работало! ☺
amadeus017 вне форума Ответить с цитированием
Старый 23.01.2016, 12:11   #4
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Все работает, если после значения ИИН, еще имеется какой-то текст, но есть значения, когда текста нет, т.е. ИНН, последний в строке, то тогда выдает ошибку #ЗНАЧ!

78:ООО "Пряник" /неосновные услуги реализации (аренда)/; Т0545: Прочие коммерческие организации; ИНН: 7800454545
amadeus017 вне форума Ответить с цитированием
Старый 23.01.2016, 12:20   #5
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Код:
=ПСТР(ПСТР(D3;ПОИСК("ИНН: ";D3)+5;30);1;ЕСЛИОШИБКА(ПОИСК(";";ПСТР(D3;ПОИСК("ИНН: ";D3)+5;30))-1;99))
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 23.01.2016, 12:36   #6
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Цитата:
Сообщение от Казанский Посмотреть сообщение
Код:
=ПСТР(ПСТР(D3;ПОИСК("ИНН: ";D3)+5;30);1;ЕСЛИОШИБКА(ПОИСК(";";ПСТР(D3;ПОИСК("ИНН: ";D3)+5;30))-1;99))
Получилось просто значение "ИСТИНА"
amadeus017 вне форума Ответить с цитированием
Старый 23.01.2016, 13:40   #7
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Не знаю как, но формула "заиграла"... Видимо, что-то от себя добавил ☺

Спасибо всем, за оказанное содействие!!!
amadeus017 вне форума Ответить с цитированием
Старый 23.01.2016, 14:55   #8
svsh2016
Форумчанин
 
Регистрация: 16.06.2015
Сообщений: 100
По умолчанию

добрый день,вариант функции в столбце F

Код:
Function zzz(t$)
   zzz = Split(StrReverse(Split(StrReverse(t), ";", 2)(1)))(UBound(Split(StrReverse(Split(StrReverse(t), ";", 2)(1)))))
End Function
Вложения
Тип файла: xls ИНН_23_01_2016_progr2.xls (38.5 Кб, 10 просмотров)
svsh2016 вне форума Ответить с цитированием
Старый 23.01.2016, 15:25   #9
svsh2016
Форумчанин
 
Регистрация: 16.06.2015
Сообщений: 100
По умолчанию

amadeus017,еще вариант функции
Код:
Function yyy(t$)
 With CreateObject("VBScript.RegExp"): .Pattern = "\d+"
        yyy = .Execute(Split(t)(UBound(Split(t)) - 2))(0)
    End With
End Function
svsh2016 вне форума Ответить с цитированием
Старый 23.01.2016, 15:27   #10
amadeus017
Форумчанин
 
Регистрация: 28.05.2014
Сообщений: 158
По умолчанию

Цитата:
Сообщение от svsh2016 Посмотреть сообщение
добрый день,вариант функции в столбце F

Код:
Function zzz(t$)
   zzz = Split(StrReverse(Split(StrReverse(t), ";", 2)(1)))(UBound(Split(StrReverse(Split(StrReverse(t), ";", 2)(1)))))
End Function
Очень интересный вариант, но в таких формулах, я не силен...
На самом деле, файл который нужно отработать, то данные искать нужно в столбце "P", а значение полученного "ИНН", проставить нужно в столбце "A" (формулами, можно значение столбцов (букв) переставить, а в коде, нет). К тому же, в столбце "P", есть уже ИНН без всяких других данных, только цифровое значение (это можно через функцию ЕСЛИ решить)

Данный код работает, если его проставить правее от данных через столбец.
amadeus017 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
поиск приблизительного значения в ячейке таблицы annetetet Microsoft Office Excel 11 28.08.2015 09:03
Примечание в ячейке при изменении значения в ячейке другого листа FoxRiver Microsoft Office Excel 4 12.07.2013 08:46
цикл на проверку значения в ячейке vlgolu Помощь студентам 2 12.06.2012 00:11
Неправильное присваивание значения ячейке 4istii_listo4ek Microsoft Office Excel 18 15.10.2010 20:34
Автоматическое изменение значения в ячейке TStalin Microsoft Office Excel 7 07.09.2010 18:19