Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
29.03.2024, 10:49:02

Войти
Хотите поблагодарить участника за дельный совет? Нажмите [Повысить]. Так вы заслуженно поднимите репутацию активному участнику.
33 233 Сообщений в 5 454 Тем от 6 750 Пользователей
Последний пользователь: Alex1210
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Вырезать из текста ячейки отрезок из восьми цифр
Страниц: [1]   Вниз
Печать
Автор Тема: Вырезать из текста ячейки отрезок из восьми цифр  (Прочитано 4278 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Venger
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 33


Просмотр профиля E-mail
« : 17.10.2019, 19:14:53 »

Подскажите ,как можно например из ячейки a1 в которой находится длинный текст из цифр и букв вырезать только цифры, которые идут подряд в количестве (8) и вырезанные диапазон цифр вставлять в ячейку b1    
Пример:
A1 = "Текст 56473567,5843 текст 475 текст"
 B1 = 56473567
« Последнее редактирование: 17.10.2019, 20:49:33 от Дмитрий Щербаков(The_Prist) » Записан
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #1 : 17.10.2019, 20:19:00 »

Посмотреть на сообщение, узнать, сколько цифр подряд, записать на стикер и приклеить к монитору )
Или показать файл-пример с возможными варантами. а не один текст-огрызок.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 828



Просмотр профиля WWW
« Ответ #2 : 17.10.2019, 20:53:53 »

По сути основную часть решения я в чистом виде приводил в этой статье: Как оставить в ячейке только цифры или только текст?
Останется только взять левые 8 цифр из результата:
=ЛЕВБ(ПСТР(A1;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99)));ПРОСМОТР(2;1/ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99))-МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99)))+1);8)
Не забудьте прочитать статью - формула является формулой массива и вводится в ячейку через Ctrl+Shift+Enter.

А если реально прочитать статью, то можно укоротить саму функцию из статьи для получения нужного результата(т.к. там отбирается весь текст после первого числа, а нам нужны только первые 8):
=ПСТР(A1;МИН(ЕСЛИ(ЕЧИСЛО(-ПСТР(A1;СТРОКА($1:$99);1));СТРОКА($1:$99)));8)
« Последнее редактирование: 17.10.2019, 20:55:56 от Дмитрий Щербаков(The_Prist) » Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Venger
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 33


Просмотр профиля E-mail
« Ответ #3 : 17.10.2019, 21:25:59 »

Приложил пример:
Нужно из левой части "A" вытянуть восемь цифр(номер вагона) и вставить его в столбец "B"
Записан
Venger
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 33


Просмотр профиля E-mail
« Ответ #4 : 17.10.2019, 21:28:03 »

желательно , чтобы процесс можно было автоматизировать...Поэтому кодом VBA.
Записан
boa
Старожил
****

Репутация: +22/-0
Офлайн Офлайн

Сообщений: 252


Доброта спасет мир...


Просмотр профиля WWW
« Ответ #5 : 17.10.2019, 22:18:14 »

Вот вам макрос
чуть чуть доработаете. можно прямо в ячекйке
Код:
=MID(Extract_Number_from_Text(A1), 1, 8)
Записан

Ничто не обходится нам так дешево и не ценится так дорого, как вежливость...  Мигель Сервантес де Сааведра

Venger
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 33


Просмотр профиля E-mail
« Ответ #6 : 18.10.2019, 12:08:35 »

Большое спасибо!
Все получилось
=ПСТР(Extract_Number_from_Text(A1);2; 8)

Вопрос еще по теме:
-как с помощью макроса(VBA) вырезать из Ячейки A1 номер вагона (8 цифр) и перенести в ячейку B1, чтобы номер вагона остался только в ячейке B1 ?
Записан
Venger
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 33


Просмотр профиля E-mail
« Ответ #7 : 18.10.2019, 12:12:57 »

Файл.
Записан
Kuzmich
Постоялец
***

Репутация: +27/-0
Офлайн Офлайн

Сообщений: 168


Просмотр профиля
« Ответ #8 : 19.10.2019, 20:44:01 »

Цитировать
как с помощью макроса(VBA) вырезать из Ячейки A1 номер вагона (8 цифр) и перенести в ячейку B1
Код: (vb)
Sub iNomerWagon()
Dim Dict As Object
Dim i As Long
Dim iLastRow As Long
  iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
Set Dict = CreateObject("scripting.dictionary"): Dict.comparemode = 1
 With CreateObject("VBScript.RegExp")
   .Global = True
   .IgnoreCase = True
   .MultiLine = True
   .Pattern = "\d{8}"
  For i = 2 To iLastRow
     If .test(Cells(i, 1)) Then
       Cells(i, "B") = .Execute(Cells(i, "A"))(0)
       Cells(i, "A") = .Replace(Cells(i, "A"), "")
    End If
   Next
 End With
End Sub

Записан
Venger
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 33


Просмотр профиля E-mail
« Ответ #9 : 21.10.2019, 16:11:22 »

Большое Спасибо, очень помогли!
Записан
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru