Страницы: 1
RSS
Разделить текст по заглавным буквам
 
Всем привет! Вопрос такой:
Как разделить текст, который находится в одной строке, по заглавным буквам так, чтобы каждое предложение (те фрагменты, которые начинаются с заглавной буквы) оказалось бы в одном столбце и, каждое из них, занимало бы отдельную стоку? (см. скрин).
 
например, с использованием PQ

до кучи кросс, о! - и ещё кросс
Изменено: buchlotnik - 22.06.2021 20:28:17
Соблюдение правил форума не освобождает от модераторского произвола
 
Мне бы как "кофейнику" попроще, по шагам и с примером, если возможно :) А то, аббревиатура PQ мне, к сожалению, ничего не говорит :(
 
Цитата
Alex Orlov написал:
по шагам и с примером
угу, 2.3, 4.1
Соблюдение правил форума не освобождает от модераторского произвола
 
даже на скрине видно, что текст не в одной строке
Тогда, как вариант, шаги:
1. определить количество строк в таблице и считать в массив
2. каждую строку в цикле разбить Split по пробелам
3. перебирать в цикле массив слов
  - если слово начинается с заглавной буквы - значит новое предложение. Если длина предыдущего предложения не равна 0 запоминаем где-то. Хоть в словаре
  - если не с заглавной то дописываем в предложение слово
4. вываливаем словарь на новый лист, чтобы не портить старый
Одно но!: с картинками не работает. Тут только печатать на бумаге, резать ножницами и клеить
Изменено: Александр Моторин - 22.06.2021 21:13:15
 
как должен быть разделен на части текст: ОАО "Прогресс" ?
О
А
О "
Прогресс"
так по вашему???
когда формулируете задачу на форумах, для надежности считайте, что имеете дело с бездушным искусственным интеллектом, который будет указывать вам на любую явную неточность (глупость) в постановке задачи
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
ИМХО:
если по словам с заглавной буквы, то:
ОАО "Прогресс"
кавычка прописная или строчная?  ;)  
Изменено: Александр Моторин - 22.06.2021 23:38:45
 
Александр Моторин, с точки зрения логики все так и должно остаться = ОАО "Прогресс"
а с точки зрения правила, описанного в сообщении 1:
Цитата
Alex Orlov написал:
по заглавным буквам
и ни слова более - я все правильно разделили
Цитата
Ігор Гончаренко написал:
О
А
О "
Прогресс"
по заглавным буквам
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Оптимизировать не стал.
Формула массива вводится одновременным нажатием Ctrl+Shift+Enter и протянуть вниз:
Код
=СЖПРОБЕЛЫ(ЕСЛИОШИБКА(ПСТР(A$1&A$2&A$3;НАИМЕНЬШИЙ(ЕСЛИ(ЕОШ(НАЙТИ(ПСТР(A$1&A$2&A$3&"А";СТОЛБЕЦ(A:DZ);1);ПСТР(СТРОЧН(A$1&A$2&A$3&"А");СТОЛБЕЦ(A:DZ);1)));СТОЛБЕЦ(A:DZ));СТРОКА(A1));СУММ(НАИМЕНЬШИЙ(ЕСЛИ(ЕОШ(НАЙТИ(ПСТР(A$1&A$2&A$3&"А";СТОЛБЕЦ(A:DZ);1);ПСТР(СТРОЧН(A$1&A$2&A$3&"А");СТОЛБЕЦ(A:DZ);1)));СТОЛБЕЦ(A:DZ));СТРОКА(A1)+{0;1})*{-1;1}));""))
 
Светлый не работает! Беру файл из первого сообщения, вставляю  и ничего

По вопросам из тем форума, личку не читаю.
 
Цитата
БМВ написал:
Светлый  не работает! Беру файл из первого сообщения, вставляю  и ничего
Так правильно, в фотошопе Ctrl+Shift+Enter не работает, там нужно в обратном порядке Enter+Shift+Ctrl  :D  
Изменено: msi2102 - 23.06.2021 09:06:18
 
Цитата
msi2102 написал:
там нужно в обратном порядке
и правда - век живи...
Соблюдение правил форума не освобождает от модераторского произвола
 
Раз в том файле не работает  :) , прикреплю файл.
Формулу придумал другую. Отлавливает ОАО "Прогресс". Недостатков не лишена, но лучше, чем первая.
Код
=ЕСЛИ(B1="";"";ЕСЛИОШИБКА(СЖПРОБЕЛЫ(ЛЕВБ(ПСТР(B$1&" "&A$1&" "&A$2&" "&A$3;НАЙТИ(B1;B$1&" "&A$1&" "&A$2&" "&A$3)+ДЛСТР(B1);99);АГРЕГАТ(15;6;НАЙТИ(" "&СИМВОЛ(СТРОКА($192:$223));ПСТР(B$1&" "&A$1&" "&A$2&" "&A$3;НАЙТИ(B1;B$1&" "&A$1&" "&A$2&" "&A$3)+ДЛСТР(B1);99)&" А";3);1)));"")) 

*Можно немного упростить, но в конце останутся пробелы:

Код
=ЕСЛИ(B1="";"";ЕСЛИОШИБКА((ЛЕВБ(ПСТР(B$1&A$1&" "&A$2&" "&A$3;НАЙТИ(B1;B$1&A$1&" "&A$2&" "&A$3)+ДЛСТР(B1);99);АГРЕГАТ(15;6;НАЙТИ(" "&СИМВОЛ(СТРОКА($192:$223));ПСТР(B$1&A$1&" "&A$2&" "&A$3;НАЙТИ(B1;B$1&A$1&" "&A$2&" "&A$3)+ДЛСТР(B1);99)&" А";3);1)));""))
Изменено: Светлый - 23.06.2021 09:50:43
 
Цитата
и ни слова более -
Я трактовал как слова:
Цитата
чтобы каждое предложение (те фрагменты, которые начинаются с заглавной буквы
 
Цитата
Alex Orlov написал:
по заглавным буквам
элементарный макрос
находим большую букву заменяем ее  на vblf + эта буква - все задача решена
условно 1 строка текста для RegExp
но
тут выясняется...
почему бы все, что "выясняется" потом не описать сразу в задаче?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
Страницы: 1
Наверх