Получить слова с большой буквы или (в идеале ФИО)
evgenyforever
Дата: Среда, 07.11.2018, 17:20 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Уважаемые коллеги, подскажите, как получить все слова в ячейке, начинающиеся с заглавной буквы (без учёта первого слова и без макроса, формула нужна одна, что бы протянуть вниз). В идеале получить фамилии и имена, но думаю, что это нерешаемая задача, учитывая, что ФИО может находится в любом месте текста. Заранее благодарен за любую помощь!
Уважаемые коллеги, подскажите, как получить все слова в ячейке, начинающиеся с заглавной буквы (без учёта первого слова и без макроса, формула нужна одна, что бы протянуть вниз). В идеале получить фамилии и имена, но думаю, что это нерешаемая задача, учитывая, что ФИО может находится в любом месте текста. Заранее благодарен за любую помощь! evgenyforever
Сообщение отредактировал evgenyforever - Среда, 07.11.2018, 17:27
Ответить
Сообщение Уважаемые коллеги, подскажите, как получить все слова в ячейке, начинающиеся с заглавной буквы (без учёта первого слова и без макроса, формула нужна одна, что бы протянуть вниз). В идеале получить фамилии и имена, но думаю, что это нерешаемая задача, учитывая, что ФИО может находится в любом месте текста. Заранее благодарен за любую помощь! Автор - evgenyforever Дата добавления - 07.11.2018 в 17:20
Pelena
Дата: Среда, 07.11.2018, 17:24 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация:
4412
±
Замечаний:
±
Excel 365 & Mac Excel
Приложите файл с несколькими вариантами текста
Приложите файл с несколькими вариантами текста Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Приложите файл с несколькими вариантами текста Автор - Pelena Дата добавления - 07.11.2018 в 17:24
evgenyforever
Дата: Среда, 07.11.2018, 17:27 |
Сообщение № 3
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Pelena , Добавил!
Ответить
Сообщение Pelena , Добавил!Автор - evgenyforever Дата добавления - 07.11.2018 в 17:27
bmv98rus
Дата: Среда, 07.11.2018, 19:22 |
Сообщение № 4
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация:
766
±
Замечаний:
0% ±
Excel 2013/2016
Код
=MID(LEFT(A2&" ";FIND(" ";A2&" ";LOOKUP(2;1/((CODE(MID(A2;ROW(A1:INDEX(A:A;LEN(A2)));1))>=192)*(CODE(MID(A2;ROW(A1:INDEX(A:A;LEN(A2)));1))<=223));ROW(A1:INDEX(A:A;LEN(A2))))));LOOKUP(0;-1/((CODE(MID(A2;2+LEN(A2)-ROW(A2:INDEX(A:A;LEN(A2)));1))>=192)*(CODE(MID(A2;2+LEN(A2)-ROW(A2:INDEX(A:A;LEN(A2)));1))<=223));2+LEN(A2)-ROW(A2:INDEX(A:A;LEN(A2))));256)
Меньше универсальности - меньше символовКод
=MID(LEFT(A4&" ";FIND(" ";A4&" ";LOOKUP(2;1/((CODE(MID(A4;ROW($1:$999);1))>=192)*(CODE(MID(A4;ROW($1:$999);1))<=223));ROW($1:$999))));LOOKUP(0;-1/((CODE(MID(A4;1001-ROW($2:$999);1))>=192)*(CODE(MID(A4;1001-ROW($2:$999);1))<=223));1001-ROW($2:$999));256)
Код
=MID(LEFT(A2&" ";FIND(" ";A2&" ";LOOKUP(2;1/((CODE(MID(A2;ROW(A1:INDEX(A:A;LEN(A2)));1))>=192)*(CODE(MID(A2;ROW(A1:INDEX(A:A;LEN(A2)));1))<=223));ROW(A1:INDEX(A:A;LEN(A2))))));LOOKUP(0;-1/((CODE(MID(A2;2+LEN(A2)-ROW(A2:INDEX(A:A;LEN(A2)));1))>=192)*(CODE(MID(A2;2+LEN(A2)-ROW(A2:INDEX(A:A;LEN(A2)));1))<=223));2+LEN(A2)-ROW(A2:INDEX(A:A;LEN(A2))));256)
Меньше универсальности - меньше символовКод
=MID(LEFT(A4&" ";FIND(" ";A4&" ";LOOKUP(2;1/((CODE(MID(A4;ROW($1:$999);1))>=192)*(CODE(MID(A4;ROW($1:$999);1))<=223));ROW($1:$999))));LOOKUP(0;-1/((CODE(MID(A4;1001-ROW($2:$999);1))>=192)*(CODE(MID(A4;1001-ROW($2:$999);1))<=223));1001-ROW($2:$999));256)
bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Среда, 07.11.2018, 21:29
Ответить
Сообщение Код
=MID(LEFT(A2&" ";FIND(" ";A2&" ";LOOKUP(2;1/((CODE(MID(A2;ROW(A1:INDEX(A:A;LEN(A2)));1))>=192)*(CODE(MID(A2;ROW(A1:INDEX(A:A;LEN(A2)));1))<=223));ROW(A1:INDEX(A:A;LEN(A2))))));LOOKUP(0;-1/((CODE(MID(A2;2+LEN(A2)-ROW(A2:INDEX(A:A;LEN(A2)));1))>=192)*(CODE(MID(A2;2+LEN(A2)-ROW(A2:INDEX(A:A;LEN(A2)));1))<=223));2+LEN(A2)-ROW(A2:INDEX(A:A;LEN(A2))));256)
Меньше универсальности - меньше символовКод
=MID(LEFT(A4&" ";FIND(" ";A4&" ";LOOKUP(2;1/((CODE(MID(A4;ROW($1:$999);1))>=192)*(CODE(MID(A4;ROW($1:$999);1))<=223));ROW($1:$999))));LOOKUP(0;-1/((CODE(MID(A4;1001-ROW($2:$999);1))>=192)*(CODE(MID(A4;1001-ROW($2:$999);1))<=223));1001-ROW($2:$999));256)
Автор - bmv98rus Дата добавления - 07.11.2018 в 19:22
evgenyforever
Дата: Среда, 07.11.2018, 20:39 |
Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
bmv98rus , Спасибо за предложенный вариант, он действительно рабочий для текста, который содержит одно предложение. Мне нужно было сразу сообщить, что может быть несколько предложений, поэтому прикладываю ещё один файл с Вашей формулой.
bmv98rus , Спасибо за предложенный вариант, он действительно рабочий для текста, который содержит одно предложение. Мне нужно было сразу сообщить, что может быть несколько предложений, поэтому прикладываю ещё один файл с Вашей формулой.evgenyforever
Ответить
Сообщение bmv98rus , Спасибо за предложенный вариант, он действительно рабочий для текста, который содержит одно предложение. Мне нужно было сразу сообщить, что может быть несколько предложений, поэтому прикладываю ещё один файл с Вашей формулой.Автор - evgenyforever Дата добавления - 07.11.2018 в 20:39
Светлый
Дата: Среда, 07.11.2018, 21:08 |
Сообщение № 6
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация:
507
±
Замечаний:
0% ±
Excel 2013, 2016
Ещё два варианта массивных формул. Два слова и три, но с инициалами затруднения:Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));2);99);" ";ПОВТОР(" ";99));99))&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));3);99);" ";ПОВТОР(" ";99));99));"")
Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));2);99);" ";ПОВТОР(" ";99));99))&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));3);99);" ";ПОВТОР(" ";99));99));"")&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));4);99);" ";ПОВТОР(" ";99));99));"")
Ещё два варианта массивных формул. Два слова и три, но с инициалами затруднения:Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));2);99);" ";ПОВТОР(" ";99));99))&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));3);99);" ";ПОВТОР(" ";99));99));"")
Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));2);99);" ";ПОВТОР(" ";99));99))&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));3);99);" ";ПОВТОР(" ";99));99));"")&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));4);99);" ";ПОВТОР(" ";99));99));"")
Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение Ещё два варианта массивных формул. Два слова и три, но с инициалами затруднения:Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));2);99);" ";ПОВТОР(" ";99));99))&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));3);99);" ";ПОВТОР(" ";99));99));"")
Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));2);99);" ";ПОВТОР(" ";99));99))&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));3);99);" ";ПОВТОР(" ";99));99));"")&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(КОДСИМВ(ПСТР(A2;СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1))<>КОДСИМВ(ПСТР(СТРОЧН(A2);СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2)));1));СТРОКА(СМЕЩ(A$1;;;ДЛСТР(A2))));4);99);" ";ПОВТОР(" ";99));99));"")
Автор - Светлый Дата добавления - 07.11.2018 в 21:08
bmv98rus
Дата: Среда, 07.11.2018, 21:19 |
Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация:
766
±
Замечаний:
0% ±
Excel 2013/2016
Светлый , и судя по #5 все это напрасно. evgenyforever , Боюсь что даже минимум невыполним , при таких ограничениях и условиях. в голову ничего не приходит как и за что зацепится, ну ладно бы еще четко знать что в последнем предложении надо искать, так это может не так быть.
Светлый , и судя по #5 все это напрасно. evgenyforever , Боюсь что даже минимум невыполним , при таких ограничениях и условиях. в голову ничего не приходит как и за что зацепится, ну ладно бы еще четко знать что в последнем предложении надо искать, так это может не так быть.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение Светлый , и судя по #5 все это напрасно. evgenyforever , Боюсь что даже минимум невыполним , при таких ограничениях и условиях. в голову ничего не приходит как и за что зацепится, ну ладно бы еще четко знать что в последнем предложении надо искать, так это может не так быть.Автор - bmv98rus Дата добавления - 07.11.2018 в 21:19
Светлый
Дата: Среда, 07.11.2018, 21:48 |
Сообщение № 8
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация:
507
±
Замечаний:
0% ±
Excel 2013, 2016
А вот это работает:Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";200));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";200));СТРОКА($1:$20)*200;200))&0)-207.5)<16;СТРОКА($1:$20));1)*200;200))&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";200));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";200));СТРОКА($1:$20)*200;200))&0)-207.5)<16;СТРОКА($1:$20));2)*200;200));"")
А вот это работает:Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";200));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";200));СТРОКА($1:$20)*200;200))&0)-207.5)<16;СТРОКА($1:$20));1)*200;200))&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";200));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";200));СТРОКА($1:$20)*200;200))&0)-207.5)<16;СТРОКА($1:$20));2)*200;200));"")
Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение А вот это работает:Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";200));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";200));СТРОКА($1:$20)*200;200))&0)-207.5)<16;СТРОКА($1:$20));1)*200;200))&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";200));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";200));СТРОКА($1:$20)*200;200))&0)-207.5)<16;СТРОКА($1:$20));2)*200;200));"")
Автор - Светлый Дата добавления - 07.11.2018 в 21:48
bmv98rus
Дата: Среда, 07.11.2018, 22:18 |
Сообщение № 9
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация:
766
±
Замечаний:
0% ±
Excel 2013/2016
Светлый , Читер :-) Я сперва не понял, а потом смотрю на два "слова" работает. Не для всех случаев конечно, но в целом работает, Пропуск первого слова в предложении подлянку строит, "Трам пам пам . Кузнецов Андрей проверил."
Светлый , Читер :-) Я сперва не понял, а потом смотрю на два "слова" работает. Не для всех случаев конечно, но в целом работает, Пропуск первого слова в предложении подлянку строит, "Трам пам пам . Кузнецов Андрей проверил."bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Сообщение отредактировал bmv98rus - Среда, 07.11.2018, 22:25
Ответить
Сообщение Светлый , Читер :-) Я сперва не понял, а потом смотрю на два "слова" работает. Не для всех случаев конечно, но в целом работает, Пропуск первого слова в предложении подлянку строит, "Трам пам пам . Кузнецов Андрей проверил."Автор - bmv98rus Дата добавления - 07.11.2018 в 22:18
Светлый
Дата: Среда, 07.11.2018, 22:42 |
Сообщение № 10
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация:
507
±
Замечаний:
0% ±
Excel 2013, 2016
Можно и на три слова,и больше:Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207.5)<16;СТРОКА($1:$20));1)*999;999))&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207.5)<16;СТРОКА($1:$20));2)*999;999));"")&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207.5)<16;СТРОКА($1:$20));3)*999;999));"")
Но пока не вижу никаких признаков, чтобы отличить Имя и любое слово в начале предложения. И ещё буква Ё работать не будет.
Можно и на три слова,и больше:Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207.5)<16;СТРОКА($1:$20));1)*999;999))&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207.5)<16;СТРОКА($1:$20));2)*999;999));"")&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207.5)<16;СТРОКА($1:$20));3)*999;999));"")
Но пока не вижу никаких признаков, чтобы отличить Имя и любое слово в начале предложения. И ещё буква Ё работать не будет. Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Среда, 07.11.2018, 22:44
Ответить
Сообщение Можно и на три слова,и больше:Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207.5)<16;СТРОКА($1:$20));1)*999;999))&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207.5)<16;СТРОКА($1:$20));2)*999;999));"")&ЕСЛИОШИБКА(" "&СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207.5)<16;СТРОКА($1:$20));3)*999;999));"")
Но пока не вижу никаких признаков, чтобы отличить Имя и любое слово в начале предложения. И ещё буква Ё работать не будет. Автор - Светлый Дата добавления - 07.11.2018 в 22:42
evgenyforever
Дата: Четверг, 08.11.2018, 10:16 |
Сообщение № 11
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Светлый , bmv98rus , а можно сделать так, что бы слова, которые начинаются с нижнего регистра - исключить, определить только слова, которые содержат заглавные б. и по ним ориентироваться. (может для этого перебрать алфавит, что-нибудь вроде <>найти({а,б,в...})Например, если будет целый абзац, то формулы работать либо не будут, или будут, но очень отдалённо от истины) [vba]Код
Продавец Лариса Николаевна (далее Л.Н.) является продавцом в продуктовом магазине. Некто подходит к Л.Н. и просит взвесить 1 кг конфет Л.Н. взвешивает товар, берёт деньги и передаёт товар покупателю. Некто объявляет, что он является членом общества защиты прав потребителей, только что произвёл проверочную закупку и хочет самостоятельно произвести перевешивание товара. Действия Л.Н.: — Здравствуйте, уважаемый. Предъявите, пожалуйста Ваши документы Л.П. выясняет, что некто — это председатель общества защиты прав потребителей Сусликов Илья Константинович (далее СИК), адрес его общества такой-то, телефон какой-то. Все эти данные Л.Н. записывает на отдельный листок бумаги и прячет в надёжное место.
[/vba] Поэтому, если это возможно, то оставить только слова с большой буквы: это будет выглядеть так: Лариса Николаевна Л.Н. Некто Л.Н. Л.Н.Действия Л.Н. Здравствуйте Предъявите Ваши Л.П. Сусликов Илья Константинович СИК Все Л.Н. А потом, я просто формулой сделаю "подставить" и все эти слова уберу (такие , как Здравствуйте, Предъявите, Ваши и т.д.)
Светлый , bmv98rus , а можно сделать так, что бы слова, которые начинаются с нижнего регистра - исключить, определить только слова, которые содержат заглавные б. и по ним ориентироваться. (может для этого перебрать алфавит, что-нибудь вроде <>найти({а,б,в...})Например, если будет целый абзац, то формулы работать либо не будут, или будут, но очень отдалённо от истины) [vba]Код
Продавец Лариса Николаевна (далее Л.Н.) является продавцом в продуктовом магазине. Некто подходит к Л.Н. и просит взвесить 1 кг конфет Л.Н. взвешивает товар, берёт деньги и передаёт товар покупателю. Некто объявляет, что он является членом общества защиты прав потребителей, только что произвёл проверочную закупку и хочет самостоятельно произвести перевешивание товара. Действия Л.Н.: — Здравствуйте, уважаемый. Предъявите, пожалуйста Ваши документы Л.П. выясняет, что некто — это председатель общества защиты прав потребителей Сусликов Илья Константинович (далее СИК), адрес его общества такой-то, телефон какой-то. Все эти данные Л.Н. записывает на отдельный листок бумаги и прячет в надёжное место.
[/vba] Поэтому, если это возможно, то оставить только слова с большой буквы: это будет выглядеть так: Лариса Николаевна Л.Н. Некто Л.Н. Л.Н.Действия Л.Н. Здравствуйте Предъявите Ваши Л.П. Сусликов Илья Константинович СИК Все Л.Н. А потом, я просто формулой сделаю "подставить" и все эти слова уберу (такие , как Здравствуйте, Предъявите, Ваши и т.д.)evgenyforever
Сообщение отредактировал evgenyforever - Четверг, 08.11.2018, 11:35
Ответить
Сообщение Светлый , bmv98rus , а можно сделать так, что бы слова, которые начинаются с нижнего регистра - исключить, определить только слова, которые содержат заглавные б. и по ним ориентироваться. (может для этого перебрать алфавит, что-нибудь вроде <>найти({а,б,в...})Например, если будет целый абзац, то формулы работать либо не будут, или будут, но очень отдалённо от истины) [vba]Код
Продавец Лариса Николаевна (далее Л.Н.) является продавцом в продуктовом магазине. Некто подходит к Л.Н. и просит взвесить 1 кг конфет Л.Н. взвешивает товар, берёт деньги и передаёт товар покупателю. Некто объявляет, что он является членом общества защиты прав потребителей, только что произвёл проверочную закупку и хочет самостоятельно произвести перевешивание товара. Действия Л.Н.: — Здравствуйте, уважаемый. Предъявите, пожалуйста Ваши документы Л.П. выясняет, что некто — это председатель общества защиты прав потребителей Сусликов Илья Константинович (далее СИК), адрес его общества такой-то, телефон какой-то. Все эти данные Л.Н. записывает на отдельный листок бумаги и прячет в надёжное место.
[/vba] Поэтому, если это возможно, то оставить только слова с большой буквы: это будет выглядеть так: Лариса Николаевна Л.Н. Некто Л.Н. Л.Н.Действия Л.Н. Здравствуйте Предъявите Ваши Л.П. Сусликов Илья Константинович СИК Все Л.Н. А потом, я просто формулой сделаю "подставить" и все эти слова уберу (такие , как Здравствуйте, Предъявите, Ваши и т.д.)Автор - evgenyforever Дата добавления - 08.11.2018 в 10:16
Светлый
Дата: Четверг, 08.11.2018, 13:17 |
Сообщение № 12
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация:
507
±
Замечаний:
0% ±
Excel 2013, 2016
Немного причесал формулу:Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207,5)<16;СТРОКА($1:$20));1)*999;999)&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207,5)<16;СТРОКА($1:$20);99);2)*999;999)&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207,5)<16;СТРОКА($1:$20);99);3)*999;999))
И вторая формула(была с ошибкой - исправил):Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИОШИБКА(СТРОКА($1:$90)*ЗНАК(ПОИСКПОЗ(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$90)*999;999)));СТРОКА($192:$223);));99);1)*999;999)&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИОШИБКА(СТРОКА($1:$90)*ЗНАК(ПОИСКПОЗ(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$90)*999;999)));СТРОКА($192:$223);));99);2)*999;999)&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИОШИБКА(СТРОКА($1:$90)*ЗНАК(ПОИСКПОЗ(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$90)*999;999)));СТРОКА($192:$223);));99);3)*999;999))
Немного причесал формулу:Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207,5)<16;СТРОКА($1:$20));1)*999;999)&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207,5)<16;СТРОКА($1:$20);99);2)*999;999)&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207,5)<16;СТРОКА($1:$20);99);3)*999;999))
И вторая формула(была с ошибкой - исправил):Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИОШИБКА(СТРОКА($1:$90)*ЗНАК(ПОИСКПОЗ(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$90)*999;999)));СТРОКА($192:$223);));99);1)*999;999)&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИОШИБКА(СТРОКА($1:$90)*ЗНАК(ПОИСКПОЗ(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$90)*999;999)));СТРОКА($192:$223);));99);2)*999;999)&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИОШИБКА(СТРОКА($1:$90)*ЗНАК(ПОИСКПОЗ(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$90)*999;999)));СТРОКА($192:$223);));99);3)*999;999))
Светлый
Программировать проще, чем писать стихи.
Сообщение отредактировал Светлый - Четверг, 08.11.2018, 14:27
Ответить
Сообщение Немного причесал формулу:Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207,5)<16;СТРОКА($1:$20));1)*999;999)&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207,5)<16;СТРОКА($1:$20);99);2)*999;999)&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$20)*999;999))&0)-207,5)<16;СТРОКА($1:$20);99);3)*999;999))
И вторая формула(была с ошибкой - исправил):Код
=СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИОШИБКА(СТРОКА($1:$90)*ЗНАК(ПОИСКПОЗ(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$90)*999;999)));СТРОКА($192:$223);));99);1)*999;999)&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИОШИБКА(СТРОКА($1:$90)*ЗНАК(ПОИСКПОЗ(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$90)*999;999)));СТРОКА($192:$223);));99);2)*999;999)&ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));НАИМЕНЬШИЙ(ЕСЛИОШИБКА(СТРОКА($1:$90)*ЗНАК(ПОИСКПОЗ(КОДСИМВ(СЖПРОБЕЛЫ(ПСТР(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A2;". ";" .");" ";ПОВТОР(" ";999));СТРОКА($1:$90)*999;999)));СТРОКА($192:$223);));99);3)*999;999))
Автор - Светлый Дата добавления - 08.11.2018 в 13:17
Светлый
Дата: Четверг, 08.11.2018, 14:01 |
Сообщение № 13
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация:
507
±
Замечаний:
0% ±
Excel 2013, 2016
Есть ограничения Excel по длине обрабатываемой строки. Часть текста ещё возможно обработать. Если размер больше, ошибка в команде ПОДСТАВИТЬ, где длинные пробелы вставляются.
Есть ограничения Excel по длине обрабатываемой строки. Часть текста ещё возможно обработать. Если размер больше, ошибка в команде ПОДСТАВИТЬ, где длинные пробелы вставляются. Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение Есть ограничения Excel по длине обрабатываемой строки. Часть текста ещё возможно обработать. Если размер больше, ошибка в команде ПОДСТАВИТЬ, где длинные пробелы вставляются. Автор - Светлый Дата добавления - 08.11.2018 в 14:01
bmv98rus
Дата: Четверг, 08.11.2018, 14:13 |
Сообщение № 14
Группа: Друзья
Ранг: Участник клуба
Сообщений: 4099
Репутация:
766
±
Замечаний:
0% ±
Excel 2013/2016
evgenyforever , Если убрать то UDF , которая будет выглядеть на листе как простая функция, написать не составит труда нашим макрушникам. Это скорее всего не решит проблему лишних слов , так как мух от котлет отделить сложно без наличия явных признаков. Светлый , и так молодец, сделал много, я бросил затею, так как предвидел, что все упрется в известные ограничения.
evgenyforever , Если убрать то UDF , которая будет выглядеть на листе как простая функция, написать не составит труда нашим макрушникам. Это скорее всего не решит проблему лишних слов , так как мух от котлет отделить сложно без наличия явных признаков. Светлый , и так молодец, сделал много, я бросил затею, так как предвидел, что все упрется в известные ограничения.bmv98rus
Замечательный Временно просто медведь , процентов на 20 .
Ответить
Сообщение evgenyforever , Если убрать то UDF , которая будет выглядеть на листе как простая функция, написать не составит труда нашим макрушникам. Это скорее всего не решит проблему лишних слов , так как мух от котлет отделить сложно без наличия явных признаков. Светлый , и так молодец, сделал много, я бросил затею, так как предвидел, что все упрется в известные ограничения.Автор - bmv98rus Дата добавления - 08.11.2018 в 14:13
sboy
Дата: Четверг, 08.11.2018, 14:36 |
Сообщение № 15
Группа: Друзья
Ранг: Участник клуба
Сообщений: 2566
Репутация:
724
±
Замечаний:
0% ±
Excel 2010
только слова с большой буквы
[vba]Код
Function evgenyforever(t) As String With CreateObject("vbscript.regexp") .Global = True .Pattern = "[А-ЯЁ][а-яё.]+" If .test(t) Then For i = 0 To .Execute(t).Count - 1 evgenyforever = evgenyforever & " " & .Execute(t)(i) Next i End If evgenyforever = Trim(evgenyforever) End With End Function
[/vba]
только слова с большой буквы
[vba]Код
Function evgenyforever(t) As String With CreateObject("vbscript.regexp") .Global = True .Pattern = "[А-ЯЁ][а-яё.]+" If .test(t) Then For i = 0 To .Execute(t).Count - 1 evgenyforever = evgenyforever & " " & .Execute(t)(i) Next i End If evgenyforever = Trim(evgenyforever) End With End Function
[/vba]sboy
Яндекс: 410016850021169
Ответить
Сообщение только слова с большой буквы
[vba]Код
Function evgenyforever(t) As String With CreateObject("vbscript.regexp") .Global = True .Pattern = "[А-ЯЁ][а-яё.]+" If .test(t) Then For i = 0 To .Execute(t).Count - 1 evgenyforever = evgenyforever & " " & .Execute(t)(i) Next i End If evgenyforever = Trim(evgenyforever) End With End Function
[/vba]Автор - sboy Дата добавления - 08.11.2018 в 14:36
Светлый
Дата: Четверг, 08.11.2018, 22:55 |
Сообщение № 16
Группа: Друзья
Ранг: Старожил
Сообщений: 1823
Репутация:
507
±
Замечаний:
0% ±
Excel 2013, 2016
все упрется в известные ограничения
Мыши кололись плакали, но ели кактус. Обошёл эти ограничения:Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);1);20);" ";ПОВТОР(" ";20));20)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);2);20);" ";ПОВТОР(" ";20));20)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);3);20);" ";ПОВТОР(" ";20));20))
все упрется в известные ограничения
Мыши кололись плакали, но ели кактус. Обошёл эти ограничения:Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);1);20);" ";ПОВТОР(" ";20));20)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);2);20);" ";ПОВТОР(" ";20));20)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);3);20);" ";ПОВТОР(" ";20));20))
Светлый
Программировать проще, чем писать стихи.
Ответить
Сообщение все упрется в известные ограничения
Мыши кололись плакали, но ели кактус. Обошёл эти ограничения:Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);1);20);" ";ПОВТОР(" ";20));20)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);2);20);" ";ПОВТОР(" ";20));20)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);3);20);" ";ПОВТОР(" ";20));20))
Автор - Светлый Дата добавления - 08.11.2018 в 22:55
evgenyforever
Дата: Пятница, 09.11.2018, 18:51 |
Сообщение № 17
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Светлый , bmv98rus , sboy , Огромное Вам спасибо за труды! Действительно задача была не из простых. Хорошо справилась с задачей формула, предложенная Светлым: [vba]Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);1);20);" ";ПОВТОР(" ";20));20)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);2);20);" ";ПОВТОР(" ";20));20)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);3);20);" ";ПОВТОР(" ";20));20))
[/vba] И сработал UDF, предложенный sboy .
Светлый , bmv98rus , sboy , Огромное Вам спасибо за труды! Действительно задача была не из простых. Хорошо справилась с задачей формула, предложенная Светлым: [vba]Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);1);20);" ";ПОВТОР(" ";20));20)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);2);20);" ";ПОВТОР(" ";20));20)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);3);20);" ";ПОВТОР(" ";20));20))
[/vba] И сработал UDF, предложенный sboy .evgenyforever
Сообщение отредактировал evgenyforever - Пятница, 09.11.2018, 19:02
Ответить
Сообщение Светлый , bmv98rus , sboy , Огромное Вам спасибо за труды! Действительно задача была не из простых. Хорошо справилась с задачей формула, предложенная Светлым: [vba]Код
=СЖПРОБЕЛЫ(ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);1);20);" ";ПОВТОР(" ";20));20)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);2);20);" ";ПОВТОР(" ";20));20)&ЛЕВБ(ПОДСТАВИТЬ(ПСТР(A2;НАИМЕНЬШИЙ(ЕСЛИ(ABS(КОДСИМВ(ПСТР(A2;ЕСЛИ(ПСТР(ПОДСТАВИТЬ(A2;". ";" .");СТРОКА($1:$998);1)=" ";СТРОКА($2:$999);999);1)&0)-207.5)<16;СТРОКА($2:$999);999);3);20);" ";ПОВТОР(" ";20));20))
[/vba] И сработал UDF, предложенный sboy .Автор - evgenyforever Дата добавления - 09.11.2018 в 18:51
evgenyforever
Дата: Пятница, 09.11.2018, 19:12 |
Сообщение № 18
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
sboy , Подскажите пожалуйста, а как установить правило UDF, чтобы брал данные из ячейки A2, а вставлял в ячейку G2?
sboy , Подскажите пожалуйста, а как установить правило UDF, чтобы брал данные из ячейки A2, а вставлял в ячейку G2?evgenyforever
Ответить
Сообщение sboy , Подскажите пожалуйста, а как установить правило UDF, чтобы брал данные из ячейки A2, а вставлял в ячейку G2?Автор - evgenyforever Дата добавления - 09.11.2018 в 19:12
Pelena
Дата: Пятница, 09.11.2018, 19:52 |
Сообщение № 19
Группа: Админы
Ранг: Местный житель
Сообщений: 19167
Репутация:
4412
±
Замечаний:
±
Excel 365 & Mac Excel
чтобы брал данные из ячейки A2, а вставлял в ячейку G2
В ячейку G2 запишите формулу
чтобы брал данные из ячейки A2, а вставлял в ячейку G2
В ячейку G2 запишите формулу Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение чтобы брал данные из ячейки A2, а вставлял в ячейку G2
В ячейку G2 запишите формулу Автор - Pelena Дата добавления - 09.11.2018 в 19:52
evgenyforever
Дата: Пятница, 09.11.2018, 20:36 |
Сообщение № 20
Группа: Пользователи
Ранг: Участник
Сообщений: 62
Репутация:
0
±
Замечаний:
0% ±
Excel 2016
Pelena , Не поможете на этот файл вставить UDF в ячейку G2?
Pelena , Не поможете на этот файл вставить UDF в ячейку G2?evgenyforever
Сообщение отредактировал evgenyforever - Пятница, 09.11.2018, 20:37
Ответить
Сообщение Pelena , Не поможете на этот файл вставить UDF в ячейку G2?Автор - evgenyforever Дата добавления - 09.11.2018 в 20:36