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

Вход

Регистрация

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

 

= Мир MS Excel/Извлечение текста из данных - Страница 2 - Мир MS Excel

Старая форма входа
  • Страница 2 из 2
  • «
  • 1
  • 2
Модератор форума: китин, _Boroda_  
Извлечение текста из данных
Jam Дата: Пятница, 09.11.2012, 01:08 | Сообщение № 21
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Quote (ikki)
кстати, у вас там в последней строчке последний "номер" не попадает под категорию "+7 или 8, а за ними 10 цифр".
и что делать?

Мда... Ну да ладно, это скорее всего неполный номер, пусть остается такой вариант без обработки, думаю не страшно.
 
Ответить
Сообщение
Quote (ikki)
кстати, у вас там в последней строчке последний "номер" не попадает под категорию "+7 или 8, а за ними 10 цифр".
и что делать?

Мда... Ну да ладно, это скорее всего неполный номер, пусть остается такой вариант без обработки, думаю не страшно.

Автор - Jam
Дата добавления - 09.11.2012 в 01:08
Jam Дата: Пятница, 09.11.2012, 01:11 | Сообщение № 22
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Quote (ikki)
пока вот так придумал:

Это относится к какой формуле? Первой высланной? или последней?
 
Ответить
Сообщение
Quote (ikki)
пока вот так придумал:

Это относится к какой формуле? Первой высланной? или последней?

Автор - Jam
Дата добавления - 09.11.2012 в 01:11
ikki Дата: Пятница, 09.11.2012, 01:14 | Сообщение № 23
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
к файлу 0139640.xls(28Kb) из поста №8


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki


Сообщение отредактировал ikki - Пятница, 09.11.2012, 01:14
 
Ответить
Сообщениек файлу 0139640.xls(28Kb) из поста №8

Автор - ikki
Дата добавления - 09.11.2012 в 01:14
Jam Дата: Пятница, 09.11.2012, 01:19 | Сообщение № 24
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Что то ничего не изменилось в таблице.
Открыл макрос, вставил код, сохранил, выполнил макрос. Изменений вообще не наблюдаю.
Что я делаю не так?


Сообщение отредактировал Jam - Пятница, 09.11.2012, 01:19
 
Ответить
СообщениеЧто то ничего не изменилось в таблице.
Открыл макрос, вставил код, сохранил, выполнил макрос. Изменений вообще не наблюдаю.
Что я делаю не так?

Автор - Jam
Дата добавления - 09.11.2012 в 01:19
ikki Дата: Пятница, 09.11.2012, 01:21 | Сообщение № 25
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
вправо лист крутили?
должно заполняться, начиная со столбца К


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениевправо лист крутили?
должно заполняться, начиная со столбца К

Автор - ikki
Дата добавления - 09.11.2012 в 01:21
Jam Дата: Пятница, 09.11.2012, 01:23 | Сообщение № 26
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Точно, извиняюсь за невнимательность.
Сейчас попробую применить к большему диапазону данных.
 
Ответить
СообщениеТочно, извиняюсь за невнимательность.
Сейчас попробую применить к большему диапазону данных.

Автор - Jam
Дата добавления - 09.11.2012 в 01:23
Jam Дата: Пятница, 09.11.2012, 01:30 | Сообщение № 27
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Шикарно clap
И напоследок, возможно ли двузначные числа применить к тексту? Это последняя оставшаяся проблема.
 
Ответить
СообщениеШикарно clap
И напоследок, возможно ли двузначные числа применить к тексту? Это последняя оставшаяся проблема.

Автор - Jam
Дата добавления - 09.11.2012 в 01:30
ikki Дата: Пятница, 09.11.2012, 01:34 | Сообщение № 28
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
а для "напоследок" я вам писал (пост №20):
Quote (ikki)
давайте все то же самое, но в исходном виде?


пока ничего нету.
правда, это уже до завтра - пол-четвертого ночи у меня, однако smile


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеа для "напоследок" я вам писал (пост №20):
Quote (ikki)
давайте все то же самое, но в исходном виде?


пока ничего нету.
правда, это уже до завтра - пол-четвертого ночи у меня, однако smile

Автор - ikki
Дата добавления - 09.11.2012 в 01:34
Jam Дата: Пятница, 09.11.2012, 01:36 | Сообщение № 29
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Аналогичное время. Спасибо, еще раз, огромное. Отпишу завтра исходный вариант.
Приятного отдыха.
 
Ответить
СообщениеАналогичное время. Спасибо, еще раз, огромное. Отпишу завтра исходный вариант.
Приятного отдыха.

Автор - Jam
Дата добавления - 09.11.2012 в 01:36
Jam Дата: Пятница, 09.11.2012, 08:49 | Сообщение № 30
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Прикрепляю, все тоже самое, но в исходном виде.
 
Ответить
СообщениеПрикрепляю, все тоже самое, но в исходном виде.

Автор - Jam
Дата добавления - 09.11.2012 в 08:49
KuklP Дата: Пятница, 09.11.2012, 09:56 | Сообщение № 31
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Долго не думая:
[vba]
Code
Sub xxx()
     Dim om As Object, c As Range, i%
     With CreateObject("vbscript.regexp")
         .Pattern = "([a-zа-яё0-9 ]+)"
         .Global = False
         .IgnoreCase = True
         For Each c In Range("a2", [a65536].End(xlUp)).Cells
             If .test(c.Text) Then
                 c.Offset(, 7).Value = .Execute(c.Text).Item(0)
             End If
         Next
         .Pattern = "(\+?\d{10,11})"
         .Global = True
         For Each c In Range("a2", [a65536].End(xlUp)).Cells
             If .test(c.Text) Then
                 Set om = .Execute(c.Text)
                 For i = 0 To om.Count - 1
                     c.Offset(, i + 8).NumberFormat = "@"
                     c.Offset(, i + 8).Value = om.Item(i)
                 Next
             End If
         Next
     End With
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Пятница, 09.11.2012, 10:01
 
Ответить
СообщениеДолго не думая:
[vba]
Code
Sub xxx()
     Dim om As Object, c As Range, i%
     With CreateObject("vbscript.regexp")
         .Pattern = "([a-zа-яё0-9 ]+)"
         .Global = False
         .IgnoreCase = True
         For Each c In Range("a2", [a65536].End(xlUp)).Cells
             If .test(c.Text) Then
                 c.Offset(, 7).Value = .Execute(c.Text).Item(0)
             End If
         Next
         .Pattern = "(\+?\d{10,11})"
         .Global = True
         For Each c In Range("a2", [a65536].End(xlUp)).Cells
             If .test(c.Text) Then
                 Set om = .Execute(c.Text)
                 For i = 0 To om.Count - 1
                     c.Offset(, i + 8).NumberFormat = "@"
                     c.Offset(, i + 8).Value = om.Item(i)
                 Next
             End If
         Next
     End With
End Sub
[/vba]

Автор - KuklP
Дата добавления - 09.11.2012 в 09:56
Jam Дата: Пятница, 09.11.2012, 10:07 | Сообщение № 32
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Что то не выходит с двузначными числами. Они сортируются отдельно так же:
 
Ответить
СообщениеЧто то не выходит с двузначными числами. Они сортируются отдельно так же:

Автор - Jam
Дата добавления - 09.11.2012 в 10:07
KuklP Дата: Пятница, 09.11.2012, 10:11 | Сообщение № 33
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Jam, Вы мой вариант пробовали?


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728


Сообщение отредактировал KuklP - Пятница, 09.11.2012, 10:12
 
Ответить
СообщениеJam, Вы мой вариант пробовали?

Автор - KuklP
Дата добавления - 09.11.2012 в 10:11
Jam Дата: Пятница, 09.11.2012, 10:27 | Сообщение № 34
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Прошу прощения, я не прав. Удалил предыдущий макрос, создал новый. До этого делал редактирование.
И вот что получаем, фамилия, имя в общей колонке. Нужно разделить по двум столбцам, фамилия в первый и во второй - имя и двузначное число.


Сообщение отредактировал Jam - Пятница, 09.11.2012, 10:27
 
Ответить
СообщениеПрошу прощения, я не прав. Удалил предыдущий макрос, создал новый. До этого делал редактирование.
И вот что получаем, фамилия, имя в общей колонке. Нужно разделить по двум столбцам, фамилия в первый и во второй - имя и двузначное число.

Автор - Jam
Дата добавления - 09.11.2012 в 10:27
KuklP Дата: Пятница, 09.11.2012, 10:31 | Сообщение № 35
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Его нет смысла так делить, поскольку в ячейках у Вас всякая белиберда вместо First Name Last Name. Но можно:
[vba]
Code
Sub xxx()
     Dim om As Object, c As Range, i%, a
     With CreateObject("vbscript.regexp")
         .Pattern = "([a-zа-яё0-9 ]+)"
         .Global = False
         .IgnoreCase = True
         For Each c In Range("a2", [a65536].End(xlUp)).Cells
             If .test(c.Text) Then
                 a = Split(.Execute(c.Text).Item(0), " ", 2)
                 c.Offset(, 2).Resize(, UBound(a) + 1).Value = a
             End If
         Next
         .Pattern = "(\+?\d{10,11})"
         .Global = True
         For Each c In Range("a2", [a65536].End(xlUp)).Cells
             If .test(c.Text) Then
                 Set om = .Execute(c.Text)
                 For i = 0 To om.Count - 1
                     c.Offset(, i + 4).NumberFormat = "@"
                     c.Offset(, i + 4).Value = om.Item(i)
                 Next
             End If
         Next
     End With
End Sub
[/vba]


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеЕго нет смысла так делить, поскольку в ячейках у Вас всякая белиберда вместо First Name Last Name. Но можно:
[vba]
Code
Sub xxx()
     Dim om As Object, c As Range, i%, a
     With CreateObject("vbscript.regexp")
         .Pattern = "([a-zа-яё0-9 ]+)"
         .Global = False
         .IgnoreCase = True
         For Each c In Range("a2", [a65536].End(xlUp)).Cells
             If .test(c.Text) Then
                 a = Split(.Execute(c.Text).Item(0), " ", 2)
                 c.Offset(, 2).Resize(, UBound(a) + 1).Value = a
             End If
         Next
         .Pattern = "(\+?\d{10,11})"
         .Global = True
         For Each c In Range("a2", [a65536].End(xlUp)).Cells
             If .test(c.Text) Then
                 Set om = .Execute(c.Text)
                 For i = 0 To om.Count - 1
                     c.Offset(, i + 4).NumberFormat = "@"
                     c.Offset(, i + 4).Value = om.Item(i)
                 Next
             End If
         Next
     End With
End Sub
[/vba]

Автор - KuklP
Дата добавления - 09.11.2012 в 10:31
Jam Дата: Пятница, 09.11.2012, 10:38 | Сообщение № 36
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Извиняюсь, что отнимаю кучу времени.
Но теперь нет текста, как такового.


Сообщение отредактировал Jam - Пятница, 09.11.2012, 12:33
 
Ответить
СообщениеИзвиняюсь, что отнимаю кучу времени.
Но теперь нет текста, как такового.

Автор - Jam
Дата добавления - 09.11.2012 в 10:38
KuklP Дата: Пятница, 09.11.2012, 10:42 | Сообщение № 37
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
А у меня есть.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеА у меня есть.

Автор - KuklP
Дата добавления - 09.11.2012 в 10:42
Jam Дата: Пятница, 09.11.2012, 11:04 | Сообщение № 38
Группа: Пользователи
Ранг: Новичок
Сообщений: 42
Репутация: 0 ±
Замечаний: 0% ±

Но нет сортировки по полям "First Name" "Last Name" "Mobile Phone" "Mobile Phone 2" "Mobile Phone 3" "Mobile Phone 4"
а это важно.
Во втором столбце Имя, с двузначным (при его наличии) числом.
 
Ответить
СообщениеНо нет сортировки по полям "First Name" "Last Name" "Mobile Phone" "Mobile Phone 2" "Mobile Phone 3" "Mobile Phone 4"
а это важно.
Во втором столбце Имя, с двузначным (при его наличии) числом.

Автор - Jam
Дата добавления - 09.11.2012 в 11:04
KuklP Дата: Пятница, 09.11.2012, 11:11 | Сообщение № 39
Группа: Проверенные
Ранг: Старожил
Сообщений: 2369
Репутация: 486 ±
Замечаний: 0% ±

2003-2010
Jam, сортировку(любую) можете записать рекордером. Если же Вы имеете ввиду:
Quote
"отсортировать" - разместить по одному номеру в отдельный столбец (телефон 1, телефон 2, телефон 3, телефон 4) номера телефонов разделены между собой разным количеством запятых, которые в свою очередь взяты в кавычки. (особенность сортировки)
то что, мой код не разносит номера по столбцам? И слово "отсортировать" здесь совсем неуместно. Это разделение по столбцам.


Ну с НДС и мы чего-то стoим! kuklp60@gmail.com
WM Z206653985942, R334086032478, U238399322728
 
Ответить
СообщениеJam, сортировку(любую) можете записать рекордером. Если же Вы имеете ввиду:
Quote
"отсортировать" - разместить по одному номеру в отдельный столбец (телефон 1, телефон 2, телефон 3, телефон 4) номера телефонов разделены между собой разным количеством запятых, которые в свою очередь взяты в кавычки. (особенность сортировки)
то что, мой код не разносит номера по столбцам? И слово "отсортировать" здесь совсем неуместно. Это разделение по столбцам.

Автор - KuklP
Дата добавления - 09.11.2012 в 11:11
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск:

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