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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.08.2012, 08:34   #1
Yusch
Пользователь
 
Регистрация: 10.02.2012
Сообщений: 16
По умолчанию извлечение из строки цифры

Добрый день!
Подскажите как вытащить из строки число, которое начинается с 76 и скопировать в новый столбец , причем длина числа может быть разная?

Спасибо!
Yusch вне форума Ответить с цитированием
Старый 13.08.2012, 09:57   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Дайте пример в XLS.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 13.08.2012, 13:46   #3
just_a_coder
 
Регистрация: 13.08.2012
Сообщений: 3
По умолчанию

В VBA есть функция instr которая предназначена для поиска подстроки в какой либо строке. Вы можете вызвать её передав ей в качестве параметра строку в которой нужно вести поиск и искомую подстроку "76". После того как оно найдется, нужно сделать новый поиск для вычисления длинны числа. В этот раз поиск будет происходить уже не с начала строки, а позиции в которой нашлось "76". А искать мы будем пробел (Ведь именно он стоит после числа 76*****). ну а чтоб скопировать его в новый столбец это уже не сложно.
just_a_coder вне форума Ответить с цитированием
Старый 13.08.2012, 13:54   #4
ShAM66
Форумчанин
 
Регистрация: 24.02.2012
Сообщений: 160
По умолчанию

Цитата:
А искать мы будем пробел (Ведь именно он стоит после числа 76*****).
Почему Вы так решили? Из описания Yusch это не видно.
Поэтому Казанский и пишет:
Цитата:
Дайте пример в XLS.
ShAM66 вне форума Ответить с цитированием
Старый 13.08.2012, 14:00   #5
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

А про пробел речи не было!
Поэтому и просили файл.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 13.08.2012, 14:47   #6
just_a_coder
 
Регистрация: 13.08.2012
Сообщений: 3
По умолчанию

Прошу прощения, сразу не подумал про то что там всё что угодно быть может. Тогда алгоритм немного изменится: После того как мы нашли позицию 76, необходимо перебирать всё оставшиеся символы в строке до тех пор пока не встретится что-то отличное от числа. ну а затем просто вырезать подстроку интервалом с той позиции где встретилось 76 по позицию в которой было записано последнее число. А в случае если у нас число не целое то нужно еще и запятую учитывать.
just_a_coder вне форума Ответить с цитированием
Старый 13.08.2012, 15:56   #7
ShAM66
Форумчанин
 
Регистрация: 24.02.2012
Сообщений: 160
По умолчанию

Не хотите файл показывать, см. такой вариант.
Вытаскивает из текста число до 7 знаков.
Код:
=МАКС(ЕСЛИ(ЕЧИСЛО(-ПСТР(K3;СТРОКА($1:$99);{1;2;3;4;5;6;7}));--ПСТР(K3;СТРОКА($1:$99);{1;2;3;4;5;6;7})))
Формула массива.
ShAM66 вне форума Ответить с цитированием
Старый 13.08.2012, 19:00   #8
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Код:
76\d+
\\\\
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 14.08.2012, 20:24   #9
Gekan
Пользователь
 
Регистрация: 29.06.2012
Сообщений: 39
По умолчанию

Как вариант:
Код:
{=ЛЕВСИМВ(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ("76";A1)+1);СУММ(--ЕЧИСЛО(--ПСТР(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ("76";A1)+1);1;СТРОКА(ДВССЫЛ("1:" & ДЛСТР(ПРАВСИМВ(A1;ДЛСТР(A1)-НАЙТИ("76";A1)+1))))))))}
Gekan вне форума Ответить с цитированием
Старый 14.08.2012, 21:21   #10
MCH
Форумчанин
 
Регистрация: 21.11.2010
Сообщений: 326
По умолчанию

Вариант:
Код:
=ПРОСМОТР(9E+307;--ПСТР(A1;ПОИСК(76;A1);СТРОКА($2:$15)))

Последний раз редактировалось MCH; 14.08.2012 в 21:25.
MCH вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Извлечение чисел из строки или как переформатировать нестандартную дату(время)) ingvi Microsoft Office Excel 12 27.10.2011 15:24
цифры и строки Milano Общие вопросы C/C++ 0 04.01.2011 20:27
Из строки удалить все цифры. Shnurik_sh Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 24.11.2010 01:17
Дана строка символов. Задача: удалить из строки все цифры. Striker14 Помощь студентам 1 25.02.2009 20:23
Access извлечение данных из строки Melamory Microsoft Office Access 3 28.09.2008 19:50