Дробление текста по разделителям ЧИСЛО+ТОЧКА.
perven
Дата: Воскресенье, 03.12.2017, 08:56 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Доброе утро, умудренные опытом мастера экселя. Помогите с формулой. Есть строка с текстом. Текст - в основном хаотический набор символов. Этот текст требуется разделить на части - по особым разделителям. Разделители здесь - это любое число с точкой после него и слово "ОТМЕТКА-". Например разделителем здесь может быть "2." или "4." или слово "ОТМЕТКА-". То, что идет после слова "ОТМЕТКА-" исключается из поиска.
Доброе утро, умудренные опытом мастера экселя. Помогите с формулой. Есть строка с текстом. Текст - в основном хаотический набор символов. Этот текст требуется разделить на части - по особым разделителям. Разделители здесь - это любое число с точкой после него и слово "ОТМЕТКА-". Например разделителем здесь может быть "2." или "4." или слово "ОТМЕТКА-". То, что идет после слова "ОТМЕТКА-" исключается из поиска. perven
Ответить
Сообщение Доброе утро, умудренные опытом мастера экселя. Помогите с формулой. Есть строка с текстом. Текст - в основном хаотический набор символов. Этот текст требуется разделить на части - по особым разделителям. Разделители здесь - это любое число с точкой после него и слово "ОТМЕТКА-". Например разделителем здесь может быть "2." или "4." или слово "ОТМЕТКА-". То, что идет после слова "ОТМЕТКА-" исключается из поиска. Автор - perven Дата добавления - 03.12.2017 в 08:56
Nic70y
Дата: Воскресенье, 03.12.2017, 12:04 |
Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 8759
Репутация:
2273
±
Замечаний:
0% ±
Excel 2010
строго по Вашему примеруКод
=ПСТР(D$8;ПОИСК(СТРОКА(D1)-1&".";0&"."&D$8);ПОИСК(СТРОКА(D1)&".";ПОДСТАВИТЬ(D$8;"ОТМЕТКА";СТРОКА(D1)&"."))-ПОИСК(СТРОКА(D1)-1&".";0&"."&D$8))
строго по Вашему примеруКод
=ПСТР(D$8;ПОИСК(СТРОКА(D1)-1&".";0&"."&D$8);ПОИСК(СТРОКА(D1)&".";ПОДСТАВИТЬ(D$8;"ОТМЕТКА";СТРОКА(D1)&"."))-ПОИСК(СТРОКА(D1)-1&".";0&"."&D$8))
Nic70y
ЮMoney 41001841029809
Ответить
Сообщение строго по Вашему примеруКод
=ПСТР(D$8;ПОИСК(СТРОКА(D1)-1&".";0&"."&D$8);ПОИСК(СТРОКА(D1)&".";ПОДСТАВИТЬ(D$8;"ОТМЕТКА";СТРОКА(D1)&"."))-ПОИСК(СТРОКА(D1)-1&".";0&"."&D$8))
Автор - Nic70y Дата добавления - 03.12.2017 в 12:04
perven
Дата: Понедельник, 04.12.2017, 00:06 |
Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Nic70y, это не совсем то. Имеются ввиду не числа по возрастанию + точка. А вообще любые числа + точка. Например, если в вашем примере, вместо первого разделителя "1." - поставить разделитель "5." - то формула будет выдавать неверный результат.
Nic70y, это не совсем то. Имеются ввиду не числа по возрастанию + точка. А вообще любые числа + точка. Например, если в вашем примере, вместо первого разделителя "1." - поставить разделитель "5." - то формула будет выдавать неверный результат. perven
Ответить
Сообщение Nic70y, это не совсем то. Имеются ввиду не числа по возрастанию + точка. А вообще любые числа + точка. Например, если в вашем примере, вместо первого разделителя "1." - поставить разделитель "5." - то формула будет выдавать неверный результат. Автор - perven Дата добавления - 04.12.2017 в 00:06
buchlotnik
Дата: Понедельник, 04.12.2017, 00:17 |
Сообщение № 4
Группа: Заблокированные
Ранг: Участник клуба
Сообщений: 3442
Репутация:
929
±
Замечаний:
20% ±
2010, 2013, 2016 RUS / ENG
Цитата
если в вашем примере
это эпидемия что ли? perven , это Ваш пример, и вам чётко написалиЦитата
строго по Вашему примеру
- зачем вы выстроили числа по порядку, если на самом деле они идут как угодно? Где хотя бы парочка примеров этого как угодно? Каков вопрос - таков и ответ
Цитата
если в вашем примере
это эпидемия что ли? perven , это Ваш пример, и вам чётко написалиЦитата
строго по Вашему примеру
- зачем вы выстроили числа по порядку, если на самом деле они идут как угодно? Где хотя бы парочка примеров этого как угодно? Каков вопрос - таков и ответbuchlotnik
Ответить
Сообщение Цитата
если в вашем примере
это эпидемия что ли? perven , это Ваш пример, и вам чётко написалиЦитата
строго по Вашему примеру
- зачем вы выстроили числа по порядку, если на самом деле они идут как угодно? Где хотя бы парочка примеров этого как угодно? Каков вопрос - таков и ответАвтор - buchlotnik Дата добавления - 04.12.2017 в 00:17
perven
Дата: Понедельник, 04.12.2017, 00:23 |
Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
buchlotnik, ну я же написал в названии темы: "ЧИСЛО + ТОЧКА". Я подумал, что это понятно.Где хотя бы парочка примеров этого как угодно?
Вот прикрепил в предыдущем сообщении - уточняющий пример.
buchlotnik, ну я же написал в названии темы: "ЧИСЛО + ТОЧКА". Я подумал, что это понятно.Где хотя бы парочка примеров этого как угодно?
Вот прикрепил в предыдущем сообщении - уточняющий пример. perven
Сообщение отредактировал perven - Понедельник, 04.12.2017, 00:24
Ответить
Сообщение buchlotnik, ну я же написал в названии темы: "ЧИСЛО + ТОЧКА". Я подумал, что это понятно.Где хотя бы парочка примеров этого как угодно?
Вот прикрепил в предыдущем сообщении - уточняющий пример. Автор - perven Дата добавления - 04.12.2017 в 00:23
sboy
Дата: Понедельник, 04.12.2017, 09:47 |
Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация:
724
±
Замечаний:
0% ±
Excel 2010
Добрый день. Вариант макросом, выделяем ячейку с текстом и жмем кнопку [vba]Код
Sub qwe() txt = Selection.Value txt = Left(txt, InStr(txt, "ОТМЕТКА-") - 1) With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\d+\." txt = .Replace(txt, "яяяя") End With arr = Split(txt, "яяяя") Selection.Offset(3, 1).Resize(UBound(arr) + 1, 1) = Application.Transpose(arr) End Sub
[/vba]
Добрый день. Вариант макросом, выделяем ячейку с текстом и жмем кнопку [vba]Код
Sub qwe() txt = Selection.Value txt = Left(txt, InStr(txt, "ОТМЕТКА-") - 1) With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\d+\." txt = .Replace(txt, "яяяя") End With arr = Split(txt, "яяяя") Selection.Offset(3, 1).Resize(UBound(arr) + 1, 1) = Application.Transpose(arr) End Sub
[/vba] sboy
Яндекс: 410016850021169
Ответить
Сообщение Добрый день. Вариант макросом, выделяем ячейку с текстом и жмем кнопку [vba]Код
Sub qwe() txt = Selection.Value txt = Left(txt, InStr(txt, "ОТМЕТКА-") - 1) With CreateObject("VBScript.RegExp") .Global = True .Pattern = "\d+\." txt = .Replace(txt, "яяяя") End With arr = Split(txt, "яяяя") Selection.Offset(3, 1).Resize(UBound(arr) + 1, 1) = Application.Transpose(arr) End Sub
[/vba] Автор - sboy Дата добавления - 04.12.2017 в 09:47
Светлый
Дата: Понедельник, 04.12.2017, 11:07 |
Сообщение № 7
Группа: Друзья
Ранг: Старожил
Сообщений: 1829
Репутация:
510
±
Замечаний:
0% ±
Excel 2013, 2016
Или вариант формулой массива (Ctrl+Shift+Enter):Код
=ЕСЛИОШИБКА(ИНДЕКС(ПСТР(ЗАМЕНИТЬ(D$8;ПОИСК("отметка";D$8);99;"");НАИМЕНЬШИЙ(ПОИСК(99-СТРОКА($1:$99)&".";"0."&D$8&99-СТРОКА($1:$99)&".");СТРОКА($1:$9));НАИМЕНЬШИЙ(ПОИСК(99-СТРОКА($1:$99)&".";D$8&99-СТРОКА($1:$99)&".");СТРОКА($1:$9))-НАИМЕНЬШИЙ(ПОИСК(99-СТРОКА($1:$99)&".";"0."&D$8&99-СТРОКА($1:$99)&".");СТРОКА($1:$9)));СТРОКА(C1));"")
Есть ошибка в формуле - если число перед точкой двухзначное, то в столбце результатов получится пустая строка.
Или вариант формулой массива (Ctrl+Shift+Enter):Код
=ЕСЛИОШИБКА(ИНДЕКС(ПСТР(ЗАМЕНИТЬ(D$8;ПОИСК("отметка";D$8);99;"");НАИМЕНЬШИЙ(ПОИСК(99-СТРОКА($1:$99)&".";"0."&D$8&99-СТРОКА($1:$99)&".");СТРОКА($1:$9));НАИМЕНЬШИЙ(ПОИСК(99-СТРОКА($1:$99)&".";D$8&99-СТРОКА($1:$99)&".");СТРОКА($1:$9))-НАИМЕНЬШИЙ(ПОИСК(99-СТРОКА($1:$99)&".";"0."&D$8&99-СТРОКА($1:$99)&".");СТРОКА($1:$9)));СТРОКА(C1));"")
Есть ошибка в формуле - если число перед точкой двухзначное, то в столбце результатов получится пустая строка. Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Понедельник, 04.12.2017, 14:14
Ответить
Сообщение Или вариант формулой массива (Ctrl+Shift+Enter):Код
=ЕСЛИОШИБКА(ИНДЕКС(ПСТР(ЗАМЕНИТЬ(D$8;ПОИСК("отметка";D$8);99;"");НАИМЕНЬШИЙ(ПОИСК(99-СТРОКА($1:$99)&".";"0."&D$8&99-СТРОКА($1:$99)&".");СТРОКА($1:$9));НАИМЕНЬШИЙ(ПОИСК(99-СТРОКА($1:$99)&".";D$8&99-СТРОКА($1:$99)&".");СТРОКА($1:$9))-НАИМЕНЬШИЙ(ПОИСК(99-СТРОКА($1:$99)&".";"0."&D$8&99-СТРОКА($1:$99)&".");СТРОКА($1:$9)));СТРОКА(C1));"")
Есть ошибка в формуле - если число перед точкой двухзначное, то в столбце результатов получится пустая строка. Автор - Светлый Дата добавления - 04.12.2017 в 11:07
perven
Дата: Понедельник, 04.12.2017, 20:36 |
Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 67
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Светлый, вот эта формула - вроде работает. Спасибо вам и всем, кто отвечал.
Светлый, вот эта формула - вроде работает. Спасибо вам и всем, кто отвечал. perven
Ответить
Сообщение Светлый, вот эта формула - вроде работает. Спасибо вам и всем, кто отвечал. Автор - perven Дата добавления - 04.12.2017 в 20:36