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

Вход

Регистрация

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

 

= Мир MS Excel/Разделение данных по ключевому слову или маске - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Разделение данных по ключевому слову или маске (Формулы/Formulas)
Разделение данных по ключевому слову или маске
Luis32 Дата: Вторник, 06.02.2018, 10:47 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Добрый день, нужна помощь. Уже пол дня убил на то чтобы хоть как-то разобраться.
Есть большой объем данных помещенных в одну ячейку, его нужно структурировать разделив по разным ячейкам, пример того что есть и того что пытаюсь добиться в файле.
Если коротко, то необходимо провести поиск по маске или ключевым словам и выцепить каждое значение в свой столбец, как это реализовать не могу понять в связи с ограниченностью знаний.
Пробовал по столбцам, но получается не сильно лучше, где-то то вместо точки запятая, где-то просто пробел, зацепиться не получилось, пытался как-то формулами, но в них разбираюсь плохо, и так и не понял как это реализовать, на VBA программировать не умею, к сожалению.
Может кто подсказать хотя бы примерное решение или формулу которой так можно сделать?
К сообщению приложен файл: 3504163.xlsx (16.3 Kb)
 
Ответить
СообщениеДобрый день, нужна помощь. Уже пол дня убил на то чтобы хоть как-то разобраться.
Есть большой объем данных помещенных в одну ячейку, его нужно структурировать разделив по разным ячейкам, пример того что есть и того что пытаюсь добиться в файле.
Если коротко, то необходимо провести поиск по маске или ключевым словам и выцепить каждое значение в свой столбец, как это реализовать не могу понять в связи с ограниченностью знаний.
Пробовал по столбцам, но получается не сильно лучше, где-то то вместо точки запятая, где-то просто пробел, зацепиться не получилось, пытался как-то формулами, но в них разбираюсь плохо, и так и не понял как это реализовать, на VBA программировать не умею, к сожалению.
Может кто подсказать хотя бы примерное решение или формулу которой так можно сделать?

Автор - Luis32
Дата добавления - 06.02.2018 в 10:47
Che79 Дата: Вторник, 06.02.2018, 10:55 | Сообщение № 2
Группа: Друзья
Ранг: Старожил
Сообщений: 1649
Репутация: 306 ±
Замечаний: 0% ±

2013 Win, 365 Mac


Делай нормально и будет нормально!
 
Ответить
СообщениеКросс на Планете

Автор - Che79
Дата добавления - 06.02.2018 в 10:55
sv2014 Дата: Вторник, 06.02.2018, 12:34 | Сообщение № 3
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация: 61 ±
Замечаний: 0% ±

Excel 2013
Luis32 вариант функций(UDF) столбцах C-I

[vba]
Код
Function aaa$(t$)
  aaa = Split(t, ".")(0)
End Function
[/vba]

[vba]
Код
Function bbb$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\d+"
bbb = .Execute(t)(0)
End With
End Function
[/vba]

[vba]
Код
Function ccc$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\d+\.\d+\.\d+": .Global = True
ccc = .Execute(t)(.Execute(t).Count - 1)
End With
End Function
[/vba]

[vba]
Код
Function ddd$(t$)
  ddd = Trim(Split(Split(t, ".")(2), "/")(0))
End Function
[/vba]

[vba]
Код
Function uuu$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\d+\.\d+\.\d+"
uuu = .Execute(t)(0)
End With
End Function
[/vba]

[vba]
Код
Function zzz$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\d{10}"
zzz = .Execute(t)(0)
End With
End Function
[/vba]

[vba]
Код
Function fff$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "[а-яё]+ [а-яё]\.[а-яё]\.": .IgnoreCase = True: .Global = True
fff = .Execute(t)(0) & "," & .Execute(t)(1)
End With
End Function
[/vba]
К сообщению приложен файл: example_06_02_2.xls (77.5 Kb)


Сообщение отредактировал sv2014 - Вторник, 06.02.2018, 13:19
 
Ответить
СообщениеLuis32 вариант функций(UDF) столбцах C-I

[vba]
Код
Function aaa$(t$)
  aaa = Split(t, ".")(0)
End Function
[/vba]

[vba]
Код
Function bbb$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\d+"
bbb = .Execute(t)(0)
End With
End Function
[/vba]

[vba]
Код
Function ccc$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\d+\.\d+\.\d+": .Global = True
ccc = .Execute(t)(.Execute(t).Count - 1)
End With
End Function
[/vba]

[vba]
Код
Function ddd$(t$)
  ddd = Trim(Split(Split(t, ".")(2), "/")(0))
End Function
[/vba]

[vba]
Код
Function uuu$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\d+\.\d+\.\d+"
uuu = .Execute(t)(0)
End With
End Function
[/vba]

[vba]
Код
Function zzz$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "\d{10}"
zzz = .Execute(t)(0)
End With
End Function
[/vba]

[vba]
Код
Function fff$(t$)
With CreateObject("VBScript.RegExp"): .Pattern = "[а-яё]+ [а-яё]\.[а-яё]\.": .IgnoreCase = True: .Global = True
fff = .Execute(t)(0) & "," & .Execute(t)(1)
End With
End Function
[/vba]

Автор - sv2014
Дата добавления - 06.02.2018 в 12:34
SLAVICK Дата: Вторник, 06.02.2018, 12:49 | Сообщение № 4
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
sv2014, Зачем создавать столько функций? %) .
Достаточно было сделать 2-й аргумент для Pattern и просто в формуле его прописывать.


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщениеsv2014, Зачем создавать столько функций? %) .
Достаточно было сделать 2-й аргумент для Pattern и просто в формуле его прописывать.

Автор - SLAVICK
Дата добавления - 06.02.2018 в 12:49
sv2014 Дата: Вторник, 06.02.2018, 13:28 | Сообщение № 5
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 226
Репутация: 61 ±
Замечаний: 0% ±

Excel 2013
SLAVICK, благодарю за уточнение,в дальнейшем буду так поступать(,в данных вариантах .Execute(t)(0) только три случая-то есть можно укоротить,.Execute(t).Count-1 здесь один случай,Split другие случаи).


Сообщение отредактировал sv2014 - Вторник, 06.02.2018, 13:31
 
Ответить
СообщениеSLAVICK, благодарю за уточнение,в дальнейшем буду так поступать(,в данных вариантах .Execute(t)(0) только три случая-то есть можно укоротить,.Execute(t).Count-1 здесь один случай,Split другие случаи).

Автор - sv2014
Дата добавления - 06.02.2018 в 13:28
sboy Дата: Вторник, 06.02.2018, 16:16 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация: 724 ±
Замечаний: 0% ±

Excel 2010
Вариант на формулах
К сообщению приложен файл: 7503078.xlsx (22.5 Kb)


Яндекс: 410016850021169
 
Ответить
СообщениеВариант на формулах

Автор - sboy
Дата добавления - 06.02.2018 в 16:16
SLAVICK Дата: Вторник, 06.02.2018, 16:24 | Сообщение № 7
Группа: Модераторы
Ранг: Старожил
Сообщений: 2290
Репутация: 766 ±
Замечаний: 0% ±

2019
,в данных вариантах .Execute(t)(0) только три случая-то есть можно укоротить,.Execute(t).Count-1 здесь один случай,

все - равно можно же использовать более универсальную UDF, в которой можно прописать все необходимые параметры.
Закинуть ее себе в книгу макросов и вызывать просто меняя параметры.
Например тут есть несколько неплохих ЮДФок.


Иногда все проще чем кажется с первого взгляда.
 
Ответить
Сообщение
,в данных вариантах .Execute(t)(0) только три случая-то есть можно укоротить,.Execute(t).Count-1 здесь один случай,

все - равно можно же использовать более универсальную UDF, в которой можно прописать все необходимые параметры.
Закинуть ее себе в книгу макросов и вызывать просто меняя параметры.
Например тут есть несколько неплохих ЮДФок.

Автор - SLAVICK
Дата добавления - 06.02.2018 в 16:24
Luis32 Дата: Четверг, 08.02.2018, 09:01 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Спасибо Вам всем за помощь и ответы, выручили))
 
Ответить
СообщениеСпасибо Вам всем за помощь и ответы, выручили))

Автор - Luis32
Дата добавления - 08.02.2018 в 09:01
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Разделение данных по ключевому слову или маске (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

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