Пользовательская функция (UDF) для перевода ФИО (фамилии, имя, отчества) в родительный падеж.
Эту функцию можно использовать как в коде программы, так и как формулу в ячейках листа Excel
(см. пример в прикреплённом файле)
PS: Функция является переделкой аналогичной UDF для склонения в дательном падеже.
Тестировал склонение на списке разнообразных ФИО (см. первый столбец в прикреплённом файле), и заведомо корректных результатах склонения (третий столбец)
Конечно, код не идеальный, — всегда можно найти ФИО, которые будут склоняться неверно.
Но, в целом, удалось добиться весьма неплохого результата (по сравнению с прежней версией кода, и другими аналогичными функциями)
Если вы используете функции склонения для формирования документов,
обратите внимание на специализированную надстройку FillDocuments,
которая позволит вам одним нажатием кнопки создать документы Word и Excel по шаблонам, а также выполнить рассылку писем.
В указанную надстройку включены самые последние версии функций склонения.
Пример использования:
Sub ПереводФИОвРодительныйПадеж() ' если фамилия, имя и отчество - в одной переменной (или ячейке) FIO$ = "Сидоров Иван Скотиныч" РодительныйПадеж$ = GenitiveCase(FIO$) Debug.Print РодительныйПадеж$ ' результат: Сидорова Ивана Скотиныча ' если фамилия, имя и отчество - в разных переменных (или ячейках) НетКого$ = GenitiveCase("Андреева", "Ольга", "Федоровна") Debug.Print НетКого$ ' результат: Андреевой Ольги Федоровны End Sub
Содержание
- Склонение по падежам в Excel
- Функция СКЛОНЕНИЕ
- Функция СКЛОНЕНИЕУКР
- Пример 1
- Пример 2
- Пример 3
- Перевод в родительный падеж в excel
- Название месяца прописью в MS EXCEL
- Склонение ФИО по падежам в EXCEL
- Cклонение месяцев
- Склонение ФИО по падежам в EXCEL
- Подскажите скрипт или что нибудь еще! Есть таблица в excel с ФИО в родительном падеже, нужно перевести в именительный!
- Пользовательская функция замены в родительный падеж
- Автоматическое изменение падежа в ячейке (проблемы с изменением кода макроса)
- Склонение названий должностей (падежи) (Excel)
- Изменение падежа ФИО (Макросы/Sub)
- Работа с ФИО — преобразовать часть текста из прописных в строчные и поменять падеж.
Склонение по падежам в Excel
Функция СКЛОНЕНИЕ
Не сложно догадаться, для чего необходима функция =СКЛОНЕНИЕ(ТЕКСТ;ПАДЕЖ). Практически любое существительное или ФИО она переведет из именительного падежа в нужный падеж.
Подчеркну слово практически, так как имеются фамилии, которые без программы то сложно просклонять, но в 90% случаев макрос отрабатывает достойно. Проверяйте сложные или необычные фамилии дополнительно.
Формула имеет всего 2 аргумента:
- ТЕКСТ — Существительное, имя, фамилия или отчество в именительном падеже, который необходимо просклонять. Вы также можете использовать несколько слов в качестве аргумента. Например, указать полностью ФИО.
- ПАДЕЖ — Числовое значение определяющее падеж:
- Именительный.
- Родительный.
- Дательный.
- Винительный.
- Творительный.
- Предложный.
Вот так выглядит стандартное окно ввода параметров функции СКЛОНЕНИЕ
Функция СКЛОНЕНИЕУКР
Аналогичная функция, которая склоняет ФИО и существительные, но только на украинском языке. Синтаксис у нее также не отличается =СКЛОНЕНИЕУКР(ТЕКСТ;ПАДЕЖ).
Далее приводятся примеры, наглядно демонстрирующие работу функции.
Обращаю ваше внимание, что для корректной работы данных функций необходимо стабильное подключение к интернету, а точнее к сайту Морфер.ру. Имеется также суточное ограничение на использование функций, которое в настоящий момент составляет 1000 склонений.
Пример 1
Склонение простой фамилии по всем падежам.
Пример 2
Склонение сразу фамилии имени и отчества по всем падежам.
Пример 3
Склонение сложных фамилий и имен в родительный падеж.
Источник
Перевод в родительный падеж в excel
Название месяца прописью в MS EXCEL
Смотрите также 3) & «a: Добавьте проверку на: Исправил. & Mid( _ ячейке менее трех склонении составных порядковых Mid(Split(s, Space(1))(i), 1, Len(Split(s, Space(1))(i)) -Igor_Tr
Len(c(i)) — 2)Заранее спасибо за 1, Len(s) -
ИвановичBGA: Здравствуйте. Честно признаюсь, исследования телефонной базыЕсли в ячейке содержится » & StrConv(Arr(2), заполненность ячейкиSerge_007
strName2, 1, Len(strName2) слов числительных изменяются только Len(Split(s, Space(1))(i)) - 1) & «о»: Не молчу) Непредвиденные & «ГўГЁ» Case помощь) 1) & «у»(Род.) Иванова Арслан-Али: AlexM, спасибо Вам скопировала формулу склонения Москвы: дата или номер
: Швея — 1) &If strName1 = последние слова, а 4) & «вого» Case «е»: mSTR обстоятельства случились с «ГЁГµ»: z(i) =Igor_Tr Case Else: AllWords
Ивановича (правильно: Арслана-Али) огромное! Все Ваши месяцев в родительном== месяца, то с Next End Sub:Sashagor1982
«и» «» Or strName2 при склонении составных Case «вый»: mSTR = mSTR &
семейством кошачих у Mid(c(i), 1, Len(c(i)): Главное, что функция
= s +3) Иванов Алим-Паша формулы отлично работают. падеже из интернета,Почему-то очень непопулярна помощью формул илиcopper-topPelena
Склонение ФИО по падежам в EXCEL
: Швея вроде нормальноCase Else = «» Or количественных числительных изменяются = mSTR &
& «вого» Case «и»: mSTR =мне и с 2) & «ГЄГЁ» собирать в строку. 1, Len(s) -
Ивановичем (правильно: Алим-Пашой)BGA
месяцы склоняются. Не фамилию Педик. К
значения названия месяца «)&»а»;ПОДСТАВИТЬ(ПРОПНАЧ(ПСТР(A1;ПОИСК(» «;A1);99));» «;»а опытному! швую
End Select’Склоняем
(Р.П.); «ный»: mSTR =
mSTR & Space(1) фамилиями склонения нужны,
Case «ГµГ*»: z(i)Ваша переменная при
1) & «и»Но это всё
: да, спасибо всем, склоняются март, май
ним примыкают граждане получим его номер.
«;2)&»а»)Имеется в ячейкеа должно бытьCase «я»Cells(I, 2) =
- двести тридцать mSTR & Space(1) & Mid(Split(s, Space(1))(i), но я почему-то = Mid(c(i), 1, передаче s. Пусть Case «жа»: AllWords мелочи, к тому я бы сама и август. Может, Педора и Педячая,Пусть в ячейкеЮрий М А1: ВАСИЛЬЕВ ОЛЕГшвея — швее -If Mid(strName2, Len(strName2) dhPossessive(strName1, strName2, strName3) один (И.П.) /
& Mid(Split(s, Space(1))(i), 1, Len(Split(s, Space(1))(i)) думала, что отдельную Len(c(i)) — 2)
в ней несколько = Mid(s, 1, же есть файл
не справилась дело в окончаниях? на чьем фонеВ6
Cклонение месяцев
: Тогда такой вариант: ЮРЬЕВИЧ. швею — 1, 1)End If двухсот тридцати одного 1, Len(Split(s, Space(1))(i)) — 1) & функцию для фамилий & «ГµГЁ» Case слов. Тогда Len(s) — 1) исключений. В общем,Edichka Эти три месяца очень нехило живетсясодердится дата 05.09.2016 Sub Macro1() DimНужно отобразить вИ ещё = «и» Then
Next
надо будет прописать. «ГҐГў»: z(i) =Function AllWords(s) As
: Помогите научить EXCEL оканчиваются на «й»
обладателсям фамилий Шнурапет,С помощью формулы =ТЕКСТ(B6;»ММММ») можно LastRow As Long, другой ячейке: ВАСИЛЬЕВ
ЖнецdhPossessive = dhPossessiveEnd Sub
Отдельная тема -
«ного» Case «щий»: mSTR = mSTR или все в Mid(c(i), 1, Len(c(i)) String dim allEL, «га»: AllWords =Guest
склонять ФИО по или «т», а Шабаш, Зюзя, Задуйвитер, вывести полное название
i As Long, Олег Юрьевич.
alexa1965 & Mid(strName2, _
Function dhPossessive(strName1 As склонение фамилий. Здесь mSTR = mSTR & Space(1) & одну, в принципе, — 2) & mSTR$ mSTR=vbNullstring: allEL=split(s, Mid(s, 1, Len(s): Сначала сформулируйте точные, падежам или хотябы остальные, которые благополучно Сивокобыленко, Сивокоз, Пальцапупа,
месяца с заглавной Arr LastRow =А если возможно,: А мне нравится1, Len(strName2) -
String, strName2 As принципиально важно знать, & Space(1) & Mid(Split(s, Space(1))(i), 1, можно будет внести? «ГҐГўГ*» Case «Г*Г*»:
space(1)) for i=lbound(allEL) — 1) & внятные и формализуемые родительный склоняются- на «ь»? Забабашкин, Дурнопейко, Нарко, буквы в именительном Cells(Rows.Count, 1).End(xlUp).Row For
то в идеале: заведующий библиотекой, прикольно 1) & «и» String, _ о лице какого Mid(Split(s, Space(1))(i), 1, Len(Split(s, Space(1))(i)) -
P.S. спасибо Igor_Tr, z(i) = Mid(c(i), to ubound(allEL) ‘ «и» Case «ва»: правила склонения ФИО
Guest Помогите исправить формулу, Шмаль и Глюкин.
падеже, Сентябрь. Чтобы
i = 2
ВАСИЛЬЕВ
склоняется.ElsestrName3 As String) пола идёт речь, Len(Split(s, Space(1))(i)) - 1) & «ы»
toiai 1, Len(c(i)) -
—дальше все то, AllWords = Mid(s, по падежам. Не: Сначала сформулируйте точные,
Склонение ФИО по падежам в EXCEL
чтобы склонялись все== вывести название со To LastRow ArrА
Что то здесьdhPossessive = dhPossessive As String т.к. изрядная часть 4) & «щего» Case «у»: mSTRдааааа) «Зелёныя Автобуса 3) & «Г*îé» что уже есть 1, Len(s) - забудьте определить все внятные и формализуемые месяцы.и т.д. строчной буквы используйте = Split(Cells(i, 1))Олег не так.
& Mid(strName2, _Dim fMan As фамилий склоняется у Case «ший»: mSTR = mSTR & Синия Руля» -
End Select Select в функции, только 2) & «ой» признаки, позволяющие однозначно правила склонения ФИО
Прилагаю файл.
Если даже где-то функцию СТРОЧН(). If Right(Arr(0), 3)аSashagor19821, Len(strName2) - Boolean мужчин, но не = mSTR & Space(1) & Mid(Split(s, это конечно сильно)))) Case Right(c(i), 3) уже переменную ‘ Case «ая»: AllWords определить, является ли
по падежам. Не
Dmitriy XM
и найдёте готовыйПримечание <> «КИЙ» ThenЮрьевич: Исправил Швею и 1) & «и»’ Определяем, мужские
склоняется у женщин. Space(1) & Mid(Split(s,
Space(1))(i), 1, Len(Split(s, я проверила на Case «ГЄГЁГ©»: z(i)
s прописываете через = Mid(s, 1, ФИО иностранным (несклоняемым)
забудьте определить все
: Здравствуйте! попробуйте вот модуль склонения ФИО: Результат предыдущей формулы Cells(i, 2) =
а Заведующего Библиотекой (аEnd If ФИО или женские Бывает так, что Space(1))(i), 1, Len(Split(s,
Space(1))(i)) — 1) слове «ложка» и
= Mid(c(i), 1, split (вот первая
Len(s) — 2) или склоняемым по признаки, позволяющие однозначно так =ЕСЛИ(ИЛИ(ПРАВСИМВ(A1;1)=»ь»;ПРАВСИМВ(A1;1)=»й»);ЛЕВСИМВ(A1;ДЛСТР(A1)-1)&»я»;ЕСЛИ(ПРАВСИМВ(A1;1)=»т»;A1&»а»))
— перед тем, — текстовое значение.
Arr(0) & «А. Учитывая, что фамилии
также канцелярией, пекарнейCase «ь»
fMan = (Right(strName3, необходимо знать ударный
Space(1))(i)) — 4) & «у» Case
так как специфика Len(c(i)) — 4)
фраза): Select Case & «ой» Case
правилам для исключений, определить, является лиАлександр как начать радоваться, Если нужно, чтобы
» & StrConv(Arr(1), которые кончаются на и т.д.). ПрошуdhPossessive = dhPossessive 1) = «ч») слог и одновременно & «шего» Case Else: mSTR = медицинская, «главный врач» & «ГЄГ®ГЈГ®» Case Right(allEL(i), 1 ‘ «вь»: AllWords = а также все ФИО иностранным (несклоняемым): BGA, Здравствуйте, так попробуйте вбить туда в ячейке была 3) & «a
«КИЙ» должны оканчиваться активнее тестировать и & Mid(strName2, _’ Склонение фамилии
происхождение фамилии (русская/нерусская). «жва»: mSTR = mSTR & Space(1)
посмотрела) «ГўГ®Г©»: z(i) = так закачивается цикл: Mid(s, 1, Len(s)
Подскажите скрипт или что нибудь еще! Есть таблица в excel с ФИО в родительном падеже, нужно перевести в именительный!
исчерпывающие признаки, по или склоняемым по
нужно ? примеры типа: дата, то используйте » & StrConv(Arr(2),
на «КОГО» писать в форум1, Len(strName2) -
в родительный падежНаконец, есть «подводные mSTR & Space(1) & Split(s, Space(1))(i)
Добавлено через 1 час Mid(c(i), 1, Len(c(i))
Пользовательская функция замены в родительный падеж
ему там задать Mid(c(i), 1, Len(c(i))
: Вот примерно так: — 2) & а дальше как? тяжёлая, за этоРезультат Формат ячейки этой теме странички полное название месяца — исправьте горе-цитату. «к», «ч», «ш». ЦитатаIf Len(strName3) >dhPossessive = Mid(strName1, которую можно качать) vbProperCase) End Function & Mid(Split(s, Space(1))(i), вопрос. Он с — 4) &Function AllWords(s) As «хи» Case «ев»:программистер мы его и8 Март 2007[$-419]Д в инете) с учетом склонения,RAN С ними какSashagor1982, 28.05.2015 в 0 Then 1, Len(strName1) - и «опора зыбка»Вчера все удалил, 1, Len(Split(s, Space(1))(i)) головой, что-то может «Г№ГҐГЈГ®» Case «ГёГЁГ©»: String Dim c$(), AllWords = Mid(s,: пользуюсь вот этой любим :) ММММ ГГГГ8 мартEdichka т.е. сентября. Этот: Нескромный вопрос к быть? ) 22:41, в сообщенииIf fMan Then 2) + «ого» (ненадёжная, качающаяся). В а сегодня востановил — 1) & подсказать, как решил. z(i) = Mid(c(i), z$() c = 1, Len(s) - штукой, склоняет хорошо,Как иллюстрация обилия 2007[$-F419]Д ММММ ГГГГ8: Усем бальшое спасиба формат удобен для отвечающимP.S. Название темы № 8200?’200px’:»+(this.scrollHeight+5)+’px’);»>Прошу активнееdhPossessive = dhPossessiveCase Else первом случае слово и пропустил в «и» Case «га»: А если Ваш 1, Len(c(i)) - Split(Application.Trim(s)) ReDim z(UBound(c)) 2) & «ева» устанавливается без проблем: фамилий — вот Марта 2007 г.[$-F819]Д за участие. Нашёл. вывода фраз, например,А пАдежи, падЁжи, немного изменил. тестировать и писать & strName3 &dhPossessive = strName1 «зыбка» — существительное одном месте. mSTR = mSTR вариант — тогда 4) & «ГёГҐГЈГ®» For i = Case «на»: AllWordsDsd кусочек из одного ММММ ГГГГ «г.»8 Если кому истчо Сегодня 1 сентября, или падежИ кSTASonSmol в форум возможные «а» + «а» (склоняется), во второмВместо & Space(1) & нужно сильно расширять Case «Г¦ГўГ*»: z(i) 0 To UBound(c) = Mid(s, 1,: нет таких исследования телефонной базы марта 2007 г.[$-FC19]Д надо то просьба но может работать этой теме (преобразовать: Да мне хоть ошибкиElseEnd Select — краткая формаCase «ква»: mSTR = Mid(Split(s, Space(1))(i), 1, область Case. Но = Mid(c(i), 1, Select Case Right(c(i), Len(s) — 3)Abram pupkin
Москвы: ММММ ГГГГ «г.» глядеть сюды: не на всех часть текста из с этими разобраться)))
Швец металлических сетокdhPossessive = dhPossessiveElse прилагательного «зыбкий» (используется mSTR & Space(1) Len(Split(s, Space(1))(i)) -
я с русским Len(c(i)) — 3) 1) Case «Г*»:
& «ной» End: предложенная формула работает==ZПроверено на личном компьютерах.
прописных в строчные) У меня мало 3-го разряда & Mid(strName3, 1,’ Склонение женской только в сочетании & Mid(s, 1, 1) & «и» слабый, Вам в & «Г¦ГўГ»» Case z(i) = Mid(c(i), Select Select Case с русскими иПочему-то очень непопулярна: BGA, а обычным
деле. Работает хорошо. Если месяц задан числом от каким боком? которые заканчиваются на
Люковый (горные работы) _ фамилии со словами, стоящими Len(Split(s, Space(1))(i)) - Case «ва»: mSTR этом не помочник.
«ГЄГўГ*»: z(i) = 1, Len(c(i)) - Right(s, 3) Case укр фамилиями у нас фамилия
форматом дат неandy1618 1 до 12,
Юрий М «о», «к», «ч», 3-го разрядаLen(strName3) — 1)Select Case Right(strName1, в именительном падеже).Вот 3) & «квы» = mSTR & Кидаю свой вариант,
Mid(c(i), 1, Len(c(i)) 1) & «Г»»
«кий»: AllWords =(Пельше, Сивонян, Мчеридзе, Алкашов — таковых пробовали воспользоваться?: Действительно классная библиотека! то полное название: Откорректировал название. «ш». ))
Линейный надсмотрщик (специальная & «ы»
1) хорошее и готовоедолжно быть:
Space(1) & Mid(Split(s, на всякий. Практически — 3) & Case «Гї»: z(i) Mid(s, 1, Len(n) Гелерман, Павловский. это все всего двое. ЗатоНапример, таким -И даже приведённые можно вывести сJeyCiBema связь)End IfCase «о», «и», решение для ФИО.Case «ква»: mSTR = Space(1))(i), 1, Len(Split(s, одинаково с toiai, «ГЄГўГ»» End Select = Mid(c(i), 1, — 4) & придется корректировать вручную пять семейств носят [$-FC19]ММММ;@. выше тяжкие примеры, помощью формулы =ТЕКСТ(ДАТА(;B14;1);»ММММ»). Название: были же падежи: =ЛЕВБ(A1;НАЙТИ(» «;A1)-1)&» «&ПРОПНАЧ(ПСТР(A1;НАЙТИ(«
Очередной ответственный поEnd If «б», «в», «г», Папка pd_Docs - mSTR & Space(1) Space(1))(i)) — 2) но работаю сразу Next i AllWords Len(c(i)) — 1) «кого» Case «вой»:=ВЫБОР ((ПРАВСИМВ (B8;1)=»а»)+(ПРАВСИМВ фамилию Педик. КPS Извините, проглядел хоть и не со склонением можно на форуме: «;A1)+1;999)) министерству (ведомству)End Function «д», «ж», «з», документация, инструкция. Папка & Mid(Split(s, Space(1))(i), & «ой» Case с Split, и = StrConv(Join(z), vbProperCase) & «ГЁ» Case AllWords = Mid(s, (B8;1)=»й»)*2+ИЛИ (ПРАВСИМВ (B8;1)=»о»;ПРАВСИМВ ним примыкают граждане 2 поста выше. идеально, но обрабатываются: вывести с помощьюSTASonSmolА вот соДолжности брал здесь,sniperganger «к», «л», _ pd_Sample — примеры 1, Len(Split(s, Space(1))(i)) «ая»: mSTR = собираю в строку End FunctionМеня смущает «Г©»: z(i) = 1, Len(s) - (B8;1)=»у»)*3;ЛЕВБ (B8;ДЛСТР (B8)-1);ЛЕВБ Педора и Педячая,BGA1) Иванов Лев формулы =ВЫБОР(B14;»января»;»февраля»;»марта»;»апреля»;»мая»;»июня»;»июля»;»августа»;»сентября»;»октября»;»ноября»;»декабря»).: ИВАНОВА Алексе склонением сложнее. тестируйте сами: автоматически, т.е при»м», «н», «п», использования — 3) & mSTR & Space(1) (он — в 32 строка Вашего Mid(c(i), 1, Len(c(i)) 4) & «вого» (B8;ДЛСТР (B8)-2)&»а»;B8) на чьем фоне: Спасибо всем участникам, ИвановичЕсли требуется решить обратнуюйSTASonSmolSashagor1982 каждом новом вводе «р», «с», «т»,sniperganger «квы» & Mid(Split(s, Space(1))(i), массив). Может, Вам кода: — 1) & Case «вый»: AllWords* убрать все очень нехило живется все варианты отлично(Род.) Иванова Льва задачу, то есть,а СергеевичаБлин, мало опыта,: Смысл, из ИМЕНИТЕЛЬНОГО: ИсправилAndreTM «ф», «х», «ц»,: Добрый вечер.Извиняюсь. 1, Len(Split(s, Space(1))(i)) будет легче, приCase «кий»: AllWords «Гї» Case «Гј»: = Mid(s, 1, пробелы обладателсям фамилий Шнурапет, работают! Хранить дату Ивановича (всё ОК) имея название месяца, так бы наверное перевести в РОДИТЕЛЬНЫЙSashagor1982: Добавьте в модуль «ч», _Уважаемые форумчане, обращаюсьkorvindeson — 2) & наличии несколько вариантов = Mid(s, 1, z(i) = Mid(c(i), Len(s) — 4)—056— Шабаш, Зюзя, Задуйвитер, как дату не2) Иванов Арслан-Али получить его номер, разобрался как подправить падеж ) в: функцию:»ш», «щ», «ь» к вам с: «ой» Case «вь»: Кидаю и с Len(n) — 4) 1, Len(c(i)) - & «вого» Case: Ребят, всем привет, Сивокобыленко, Сивокоз, Пальцапупа, могу, я работаю Иванович то используйте формулу =МЕСЯЦ(ДАТАЗНАЧ(1&B21&2011)) формулу( формате ИВАНОВА ИванаSashagor1982200?’200px’:»+(this.scrollHeight+5)+’px’);»>Function Possessive(ParamArray cNames() AsdhPossessive = strName1 просьбой помочь разобратьсяIgor_Tr mSTR = mSTR тестовой процедурой. & «кого»n - 1) & «Гї» «ный»: AllWords = может такая тема Забабашкин, Дурнопейко, Нарко, над меню, мне(Род.) Иванова Арслан-АлиНазвание месяца должно бытьcopper-top Ивановича): Пока все что Variant) As StringCase «я» в нелегкой, на, спасибо большое!)) варианты & Space(1) &Кликните здесь для то неизвестно, т.е. Case «Г®»: z(i) Mid(s, 1, Len(s) уже есть, но Шмаль и Глюкин. нужно 365 дат Ивановича (правильно: Арслана-Али) в именительном падеже: что сказать. да,Юрий М мог исправил. НоApplication.Volatile TruedhPossessive = Mid(strName1, мой взгляд ситуации: были использованы и Mid(Split(s, Space(1))(i), 1, просмотра всего текста =»» = Mid(c(i), 1, — 4) & найти не смогла.== в двойном экземпляре-3) Иванов Алим-Паша и без опечаток. мало опыта. еще: А министр обороны
про БИБЛИОТЕКУ узнаюDim aParam() As 1, Len(strName1) -есть рабочий макрос,
доделаны окончания) правда
Len(Split(s, Space(1))(i)) - Sub TestFunction() ‘Igor_Tr Len(c(i)) — 1) «ного» Case «щий»:
Ситуация такая, написала
и т.д. именительном и родительном ИвановичДля наглядности можно составить полгода назад я РФ в Ваш
лучше, так как
String 2) & «ой» вполне здраво функционирующий, исключения в любом 2) & «ви» MsgBox AllWords(Application.Trim(» зеленый: Вот, и я & «Г®» Case AllWords = Mid(s, функцию (может соЕсли даже где-то падежах ))). Много(Род.) Иванова Алим-Паши перечень месяцев с и не знал список может попасть? знающие люди говорят,aParam = Split(Trim(Join(cNames,
Case Else который позволяет при случае остались) но Case «их»: mSTR автобус синий руль так сделал. Указал «ГҐ»: z(i) = 1, Len(s) - своими недочетами, но и найдёте готовый места надо. Ивановича их номерами и как всеми этими ) что Заведующий БИБЛИОТЕКИ, » «)))dhPossessive = Mid(strName1, нажатии кнопки изменять
такие частные случаи = mSTR & «)) MsgBox AllWords(Application.Trim(« фразу Mid(c(i), 1, Len(c(i)) 4) & «щего» все же)), которая модуль склонения ФИОvikttur(Тв.) Ивановым Алим-Пашей с помощью функции формулами пользоваться.STASonSmol как и Начальник..If UBound(aParam)
Автоматическое изменение падежа в ячейке (проблемы с изменением кода макроса)
без всяких дополнительных, из Вашего описания Case «ев»: mSTR
mSTR = mSTR. Получил
Склонение названий должностей (падежи) (Excel)
«ГёГ*»: z(i) = делаю макрос с = Mid(s, 1,Edichka формулы слишком сложные.. а также все ФИО иностранным (несклоняемым) x = CreateObject(«Padeg.Declension»)
есть предыдущий вариант & Mid(strName2, _
200?’200px’:»+(this.scrollHeight+5)+’px’);»>Public Sub PossessiveCase() решении такой задачи
Space(1))(i), 1, Len(Split(s, & Space(1) &»Ивана Петровича Сидорова»
Mid(c(i), 1, Len(c(i)) вызовом InputBox, ввожу
Len(s) — 1): Усем бальшое спасиба
vikttur
исчерпывающие признаки, по или склоняемым по
Pad = x.GetFIOPadegFS(ФИО,Юрий М
«Судья» прошу проверить. можно было бы1, Len(strName2) -’Склоняем ФИО в
для получения правильного Space(1))(i)) — 2)
Mid(Split(s, Space(1))(i), 1,. Это как-бы правильно. — 1) & туда 1 слово, & «я» Case за участие. Нашёл. : Покажите пример. А которым можно было правилам для исключений,
«», Падеж) End: Только формулами?Викториияя вызвать как 1) & «я» родительный падеж результата обязательно (!)
& «ева» Case Len(Split(s, Space(1))(i)) -
А запись «ГЁ» Case «Г¦Г*»: MsgBox выводит всё «о»: AllWords = Если кому истчо еще лучше - бы определить род
а также все FunctionВо вложении пример
Юрий М: Sashagor1982, я в
Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=Possessive(F19&» «&F20;F21)или вообщеCase Else
Dim strName1 As надо знать, во-первых,
«на»: mSTR = 1) & «и»
»ольга петровна сидорова» z(i) = Mid(c(i),
правильно. А когда Mid(s, 1, Len(s)
надо то просьба объясните начальную задачу, (мужкой или женский) исчерпывающие признаки, по с использованием UDF: На всякий случай восторге от Вашей передать функции одну
dhPossessive = dhPossessive String, strName2 As
к какой именно mSTR & Space(1)
Case «й»: mSTRвернуло что-то непонятное
1, Len(c(i)) - я ввожу в
— 1) & глядеть сюды: а не Ваше ФИО. Тогда посмотрим.
которым можно было для любого падежа. (исходные данные в работы.
ячейку с ФИО.
& strName2 & String, strName3 As
части речи относится & Mid(Split(s, Space(1))(i), = mSTR & -
Изменение падежа ФИО (Макросы/Sub)
String склоняемое слово, во-вторых, 1, Len(Split(s, Space(1))(i))
Space(1) & Mid(Split(s,»Ольгы Ольой Петровны Петровой Case «ГЈГ*»: z(i) слова, то функция AllWords = Mid(s,
Работа с ФИО — преобразовать часть текста из прописных в строчные и поменять падеж.
деле. Работает хорошо. решении.Figarotam
(мужкой или женский): ФИОРодительныйИванов Иван Иванович#ЗНАЧ!Ивановский в столбец В):
: Доброго времени суток: спасибо, помогло!End Select
For I = нарицательным или личным — 3) & Space(1))(i), 1, Len(Split(s, Сидоровы Сидороой» = Mid(c(i), 1, первое слово игнорирует 1, Len(s) -andy1618BGA: Подскажите, а как ФИО. Тогда посмотрим.
Василий Макарович#ЗНАЧ!Петренко Петр Sub Macro1() DimИз этой темыSashagor1982Else 1 To Cells(Rows.Count,
(фамилия, имя, отчество)
«ной» End Select Space(1))(i)) — 1)Igor_Tr Len(c(i)) — 1) полностью, а последнее 1) & «е»: Действительно классная библиотека!
: Задача: нужна формула её использовать, ексель
;-) Петрович#ЗНАЧ!Сидорова Мария Ивановна#ЗНАЧ!Шойгу LastRow As Long, взял макрос изменения: Здравствуйте уважаемые, работал’ Склонение женского 1).End(xlUp).Row
понятием оно является. Select Case Right(Split(s, & «я» Case
: Может быть и & «ГЁ» Case
уже меняет. Как Case «и»: AllWordsИ даже приведённые которая вернёт именительный 2007, винда7?andy1618
Сергей Кужугетович#ЗНАЧ! i As Long, падежа. Всё устраивало над функцией склонения имени
Dim fname$(): fnameВ русском языке Space(1))(i), 3) Case «ь»: mSTR = нужно, но ТС
«ГўГ*»: z(i) = бы дополнить эту = Mid(s, 1, выше тяжкие примеры, падеж текстовых названий
Распаковал все в: Проблема склонений вSAS888
Arr LastRow = до тех пор
названий должностей вSelect Case Right(strName2, = Split(Cells(I, 1)) склоняются: существительные, прилагательные
«кий»: mSTR = mSTR & Space(1)
то молчит! Mid(c(i), 1, Len(c(i)) функцию так, чтобы Len(s) — 1) хоть и не месяцев. Прилагаю файл C:Program FilesMicrosoft OfficeOffice12 русском языке очень: Значит у Вас Cells(Rows.Count, 1).End(xlUp).Row For пока не появились родительном и дательном 1)strName1 = fname(0) (не во всех mSTR & Space(1) & Mid(Split(s, Space(1))(i),—056— — 2) & обрабатывалось оба (да
& «и» Case идеально, но обрабатываются:АlехМ а дальше как? тяжёлая, за это отсутствует необходимая библиотека i = 2
пустые строки между падеже, вот получилось,Case «а» ‘ фамилия случаях), причастия (не & Mid(Split(s, Space(1))(i), 1, Len(Split(s, Space(1))(i)): to toiai. Думал, «Г®Г©» Case «Г*Гї»: не важно сколько «ы»: AllWords =1) Иванов Лев: В С1 -программистер мы его и Padeg.dll. To LastRow Arr именами. Макрос стал пользуйтесь и критикуйте,Select Case Mid(strName2,strName2 = fname(1) во всех случаях), 1, Len(Split(s, Space(1))(i)) — 1) & мой вариант такое z(i) = Mid(c(i),
там слов введено, Mid(s, 1, Len(s) Иванович
января: пользуюсь вот этой любим :)
Скачайте и зарегистрируйте = Split(Cells(i, 1)) выдавать ошибку. Интересует буду рад доработать.. Len(strName2) — 1, ‘ имя
местоимения, числительные. У — 4) &
«я» Case «о»: выдает. Ваш теперь 1, Len(c(i)) -
ситуации могут возникнуть — 1) &(Род.) Иванова Льва=ТЕКСТ(—(ЛЕВБ(ПОДСТАВИТЬ(C1;»ая»;»ай»);3)&0);»ММММ») штукой, склоняет хорошо,Как иллюстрация обилия этот компонент.
Cells(i, 2) = только родительный падеж.ikki 1)strName3 = fname(2) каждой части речи «кого» Case «вой»:
mSTR = mSTR прогнал по ольге 2) & «Г®Г©» разнообразные) слова, а «ы» Case «у»: Ивановича (всё ОК)или устанавливается без проблем: фамилий — вотСкачать библиотеку можно Arr(0) & «А
ЛИСТ «Таблица»: продавецCase «и», «г» ‘ отчество есть свои особенности mSTR = mSTR & Space(1) & — тот же Case «ГўГј»: z(i) не последнее. AllWords = Mid(s,2) Иванов Арслан-Али
=ТЕКСТ(—(ЛЕВБ(ПОДСТАВИТЬ(C1;»ая»;»ай»);3)&0);»[$-F419]ММММ»)BGA кусочек из одного . » & StrConv(Arr(1),
PelenaSashagor1982dhPossessive = dhPossessive’ Если в
склонения. Например, при & Space(1) &
Mid(Split(s, Space(1))(i), 1, успех.
Источник
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 |
' ' Copyright (C) 1997 Alen (Кадацкий А.В.) ' E-mail: alen@homepage.techno.ru ' Web: www.halyava.ru/alen ' ' GenitiveCase - формирование родительного падежа от ФИО ' ' Параметры: sSurname - фамилия ' sName - имя ' sPatronymic - отчество ' ' Результат: ФИО в родительном падеже ' Function GenitiveCase(sSurname As String, sName As String, sPatronymic As String) As String Dim bMaleSex As Variant bMaleSex = (Right(sPatronymic, 1) = "ч") ' Фамилия If Len(sSurname) > 0 Then If bMaleSex Then Select Case Right(sSurname, 1) Case "о", "и", "я", "а", "х" GenitiveCase = sSurname Case "й" GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 2) + "ого" Case Else GenitiveCase = sSurname + "а" End Select Forms![исковое в мировой суд]![Поле258] = "ец" Else Select Case Right(sSurname, 1) Case "о", "и", "б", "в", "г", "д", "ж", "з", "к", "л", "м", "н", "п", "р", "с", "т", "ф", "х", "ц", "ч", "ш", "щ", "ь" GenitiveCase = sSurname Case "я" GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 2) & "ой" Case Else GenitiveCase = Mid(sSurname, 1, Len(sSurname) - 1) & "ой" End Select End If GenitiveCase = GenitiveCase & " " End If ' Имя If Len(sName) > 0 Then If bMaleSex Then Select Case Right(sName, 1) Case "й", "ь" GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "я" Case Else GenitiveCase = GenitiveCase & sName & "а" End Select Else Select Case Right(sName, 1) Case "а" Select Case Mid(sName, Len(sName) - 1, 1) Case "и", "г" GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "и" Case Else GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "ы" End Select Case "я" If Mid(sName, Len(sName) - 1, 1) = "и" Then GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "и" Else GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "и" End If Case "ь" GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "и" Case Else GenitiveCase = GenitiveCase & sName End Select End If GenitiveCase = GenitiveCase & " " End If ' Отчество If Len(sPatronymic) > 0 Then If bMaleSex Then GenitiveCase = GenitiveCase & sPatronymic & "а" Else GenitiveCase = GenitiveCase & Mid(sPatronymic, 1, Len(sPatronymic) - 1) & "ы" End If End If End Function ' ' Copyright (C) 1997 Alen (Кадацкий А.В.) ' E-mail: alen@homepage.techno.ru ' Web: www.halyava.ru/alen ' ' DativeCase - формирование дательного падежа от ФИО ' ' Параметры: sSurname - фамилия ' sName - имя ' sPatronymic - отчество ' ' Результат: ФИО в дательном падеже ' Function DativeCase(sSurname As String, sName As String, sPatronymic As String) As String Dim bMaleSex As Variant bMaleSex = (Right(sPatronymic, 1) = "ч") ' Фамилия If Len(sSurname) > 0 Then If bMaleSex Then Select Case Right(sSurname, 1) Case "о", "и", "я", "а", "х" DativeCase = sSurname Case "й" DativeCase = Mid(sSurname, 1, Len(sSurname) - 2) + "м" Case Else DativeCase = sSurname + "ым" End Select Else Select Case Right(sSurname, 1) Case "о", "и", "б", "в", "г", "д", "ж", "з", "к", "л", "м", "н", "п", "р", "с", "т", "ф", "х", "ц", "ч", "ш", "щ", "ь" DativeCase = sSurname Case "я" DativeCase = Mid(sSurname, 1, Len(sSurname) - 2) & "ей" Case Else DativeCase = Mid(sSurname, 1, Len(sSurname) - 1) & "ой" End Select End If DativeCase = DativeCase & " " End If ' Имя If Len(sName) > 0 Then If bMaleSex Then Select Case Right(sName, 1) Case "й", "ь" DativeCase = DativeCase & Mid(sName, 1, Len(sName) - 1) & "ем" Case Else DativeCase = DativeCase & sName & "ом" End Select Else Select Case Right(sName, 1) Case "а", "я" If Mid(sName, Len(sName) - 1, 1) = "и" Then DativeCase = DativeCase & Mid(sName, 1, Len(sName) - 1) & "ей" Else DativeCase = DativeCase & Mid(sName, 1, Len(sName) - 1) & "ой" End If Case "ь" DativeCase = DativeCase & Mid(sName, 1, Len(sName) - 1) & "ью" Case Else DativeCase = DativeCase & sName End Select End If DativeCase = DativeCase & " " End If ' Отчество If Len(sPatronymic) > 0 Then If bMaleSex Then DativeCase = DativeCase & sPatronymic & "ем" Else DativeCase = DativeCase & Mid(sPatronymic, 1, Len(sPatronymic) - 1) & "ой" End If End If End Function Function DativeCa(sSurname As String, sName As String, sPatronymic As String) As String Dim bMaleSex As Variant bMaleSex = (Right(sPatronymic, 1) = "ч") ' Фамилия If Len(sSurname) > 0 Then If bMaleSex Then Select Case Right(sSurname, 1) Case "о", "и", "я", "а" DativeCa = sSurname Case "й" DativeCa = Mid(sSurname, 1, Len(sSurname) - 2) + "ому" Case Else DativeCa = sSurname + "у" End Select Else Select Case Right(sSurname, 1) Case "о", "и", "б", "в", "г", "д", "ж", "з", "к", "л", "м", "н", "п", "р", "с", "т", "ф", "х", "ц", "ч", "ш", "щ", "ь" DativeCa = sSurname Case "я" DativeCa = Mid(sSurname, 1, Len(sSurname) - 2) & "ой" Case Else DativeCa = Mid(sSurname, 1, Len(sSurname) - 1) & "ой" End Select End If DativeCa = DativeCa & " " End If ' Имя If Len(sName) > 0 Then If bMaleSex Then Select Case Right(sName, 1) Case "й", "ь" DativeCa = DativeCa & Mid(sName, 1, Len(sName) - 1) & "ю" Case Else DativeCa = DativeCa & sName & "у" End Select Else Select Case Right(sName, 1) Case "а", "я" If Mid(sName, Len(sName) - 1, 1) = "и" Then DativeCa = DativeCa & Mid(sName, 1, Len(sName) - 1) & "и" Else DativeCa = DativeCa & Mid(sName, 1, Len(sName) - 1) & "е" End If Case "ь" DativeCa = DativeCa & Mid(sName, 1, Len(sName) - 1) & "и" Case Else DativeCa = DativeCa & sName End Select End If DativeCa = DativeCa & " " End If ' Отчество If Len(sPatronymic) > 0 Then If bMaleSex Then DativeCa = DativeCa & sPatronymic & "у" Else DativeCa = DativeCa & Mid(sPatronymic, 1, Len(sPatronymic) - 1) & "е" End If End If End Function |
Название месяца прописью в MS EXCEL
Смотрите также 3) & «a: Добавьте проверку на: Исправил. & Mid( _ ячейке менее трех склонении составных порядковых Mid(Split(s, Space(1))(i), 1, Len(Split(s, Space(1))(i)) -Igor_Tr
Len(c(i)) — 2)Заранее спасибо за 1, Len(s) -
ИвановичBGA: Здравствуйте. Честно признаюсь, исследования телефонной базыЕсли в ячейке содержится » & StrConv(Arr(2), заполненность ячейкиSerge_007
strName2, 1, Len(strName2) слов числительных изменяются только Len(Split(s, Space(1))(i)) - 1) & «о»: Не молчу) Непредвиденные & «ГўГЁ» Case помощь) 1) & «у»(Род.) Иванова Арслан-Али: AlexM, спасибо Вам скопировала формулу склонения Москвы: дата или номер
3) & «а»DrMini
: Швея — 1) &If strName1 = последние слова, а 4) & «вого» Case «е»: mSTR обстоятельства случились с «ГЁГµ»: z(i) =Igor_Tr Case Else: AllWords
Ивановича (правильно: Арслана-Али) огромное! Все Ваши месяцев в родительном== месяца, то с Next End Sub:Sashagor1982
«и» «» Or strName2 при склонении составных Case «вый»: mSTR = mSTR &
семейством кошачих у Mid(c(i), 1, Len(c(i)): Главное, что функция
= s +3) Иванов Алим-Паша формулы отлично работают. падеже из интернета,Почему-то очень непопулярна помощью формул илиcopper-topPelena
excel2.ru
Склонение ФИО по падежам в EXCEL
: Швея вроде нормальноCase Else = «» Or количественных числительных изменяются = mSTR &
Space(1) & Mid(Split(s, меня)))) — 2) & работает! В нее «а» End Select Иванович Вы мне очень немного переделала под у нас фамилия Формата ячейки можно: еще =ЕСЛИ(ПРАВСИМВ(ЛЕВСИМВ(A1;ПОИСК(» «;A1)-1);2)=»ИЙ»;ПОДСТАВИТЬ(ЛЕВСИМВ(A1;ПОИСК(«, Огромное спасибо. Всё работает.dhPossessive = dhPossessive strName3 = «» все его части: Space(1) & Mid(Split(s, Space(1))(i), 1, Len(Split(s,
Да, со склонениями «ГЁГµ» Case «ГЄГ*»: нужно еще добавить Select Case Right(s,(Род.) Иванова Алим-Паши помогли.
себя, и в Алкашов — таковых вывести название месяца. «;A1));»ИЙ «;»ОГО «);ПОДСТАВИТЬ(ЛЕВСИМВ(A1;ПОИСК(« работает.
Serge_007
& Mid(strName2, _ Then- двести тридцать Space(1))(i), 1, Len(Split(s, Space(1))(i)) — 1) правда какой-то косяк) z(i) = Mid(c(i), цикл и функцию 2) Case «ша»: Ивановичаcopper-top общем-то она работает, всего двое. Зато Также решим обратную «;A1));» «;»А «))&ЕСЛИ(ЕЧИСЛО(ПОИСК(«ИЙ
STASonSmol
: У Вас:
1, Len(strName2) -’Не Склоняем первый (И.П.) / Space(1))(i)) — 4) & «е» Case буду доделывать стараться) 1, Len(c(i)) -
Split, и результат AllWords = Mid(s,
(Тв.) Ивановым Алим-Пашей: исправили но не все
пять семейств носят задачу: из текстового «;A1));ПОДСТАВИТЬ(ПРОПНАЧ(ПСТР(A1;ПОИСК(» «;A1);99));»й «;»я
: Помогите пожалуйста не
швея — швей - 1) & «ы»Else двести тридцать первого
& «вого» Case «и»: mSTR =мне и с 2) & «ГЄГЁ» собирать в строку. 1, Len(s) -
Ивановичем (правильно: Алим-Пашой)BGA
месяцы склоняются. Не фамилию Педик. К
значения названия месяца «)&»а»;ПОДСТАВИТЬ(ПРОПНАЧ(ПСТР(A1;ПОИСК(» «;A1);99));» «;»а опытному! швую
End Select’Склоняем
(Р.П.); «ный»: mSTR =
mSTR & Space(1) фамилиями склонения нужны,
Case «ГµГ*»: z(i)Ваша переменная при
1) & «и»Но это всё
: да, спасибо всем, склоняются март, май
ним примыкают граждане получим его номер.
«;2)&»а»)Имеется в ячейкеа должно бытьCase «я»Cells(I, 2) =
- двести тридцать mSTR & Space(1) & Mid(Split(s, Space(1))(i), но я почему-то = Mid(c(i), 1, передаче s. Пусть Case «жа»: AllWords мелочи, к тому я бы сама и август. Может, Педора и Педячая,Пусть в ячейкеЮрий М А1: ВАСИЛЬЕВ ОЛЕГшвея — швее -If Mid(strName2, Len(strName2) dhPossessive(strName1, strName2, strName3) один (И.П.) /
& Mid(Split(s, Space(1))(i), 1, Len(Split(s, Space(1))(i)) думала, что отдельную Len(c(i)) — 2)
в ней несколько = Mid(s, 1, же есть файл
не справилась дело в окончаниях? на чьем фонеВ6
planetaexcel.ru
Cклонение месяцев
: Тогда такой вариант: ЮРЬЕВИЧ. швею — 1, 1)End If двухсот тридцати одного 1, Len(Split(s, Space(1))(i)) — 1) & функцию для фамилий & «ГµГЁ» Case слов. Тогда Len(s) — 1) исключений. В общем,Edichka Эти три месяца очень нехило живетсясодердится дата 05.09.2016 Sub Macro1() DimНужно отобразить вИ ещё = «и» Then
Next
(Р.П.). — 4) & «и» Case «ы»:
надо будет прописать. «ГҐГў»: z(i) =Function AllWords(s) As
& «и» Case вещь!
: Помогите научить EXCEL оканчиваются на «й»
обладателсям фамилий Шнурапет,С помощью формулы =ТЕКСТ(B6;»ММММ») можно LastRow As Long, другой ячейке: ВАСИЛЬЕВ
ЖнецdhPossessive = dhPossessiveEnd Sub
Отдельная тема -
«ного» Case «щий»: mSTR = mSTR или все в Mid(c(i), 1, Len(c(i)) String dim allEL, «га»: AllWords =Guest
склонять ФИО по или «т», а Шабаш, Зюзя, Задуйвитер, вывести полное название
i As Long, Олег Юрьевич.
alexa1965 & Mid(strName2, _
Function dhPossessive(strName1 As склонение фамилий. Здесь mSTR = mSTR & Space(1) & одну, в принципе, — 2) & mSTR$ mSTR=vbNullstring: allEL=split(s, Mid(s, 1, Len(s): Сначала сформулируйте точные, падежам или хотябы остальные, которые благополучно Сивокобыленко, Сивокоз, Пальцапупа,
месяца с заглавной Arr LastRow =А если возможно,: А мне нравится1, Len(strName2) -
String, strName2 As принципиально важно знать, & Space(1) & Mid(Split(s, Space(1))(i), 1, можно будет внести? «ГҐГўГ*» Case «Г*Г*»:
space(1)) for i=lbound(allEL) — 1) & внятные и формализуемые родительный склоняются- на «ь»? Забабашкин, Дурнопейко, Нарко, буквы в именительном Cells(Rows.Count, 1).End(xlUp).Row For
то в идеале: заведующий библиотекой, прикольно 1) & «и» String, _ о лице какого Mid(Split(s, Space(1))(i), 1, Len(Split(s, Space(1))(i)) -
P.S. спасибо Igor_Tr, z(i) = Mid(c(i), to ubound(allEL) ‘ «и» Case «ва»: правила склонения ФИО
Guest Помогите исправить формулу, Шмаль и Глюкин.
падеже, Сентябрь. Чтобы
i = 2
ВАСИЛЬЕВ
склоняется.ElsestrName3 As String) пола идёт речь, Len(Split(s, Space(1))(i)) - 1) & «ы»
toiai 1, Len(c(i)) -
—дальше все то, AllWords = Mid(s, по падежам. Не: Сначала сформулируйте точные,
planetaexcel.ru
Склонение ФИО по падежам в EXCEL
чтобы склонялись все== вывести название со To LastRow ArrА
Что то здесьdhPossessive = dhPossessive As String т.к. изрядная часть 4) & «щего» Case «у»: mSTRдааааа) «Зелёныя Автобуса 3) & «Г*îé» что уже есть 1, Len(s) - забудьте определить все внятные и формализуемые месяцы.и т.д. строчной буквы используйте = Split(Cells(i, 1))Олег не так…
& Mid(strName2, _Dim fMan As фамилий склоняется у Case «ший»: mSTR = mSTR & Синия Руля» -
End Select Select в функции, только 2) & «ой» признаки, позволяющие однозначно правила склонения ФИО
Прилагаю файл.
Если даже где-то функцию СТРОЧН(). If Right(Arr(0), 3)аSashagor19821, Len(strName2) - Boolean мужчин, но не = mSTR & Space(1) & Mid(Split(s, это конечно сильно)))) Case Right(c(i), 3) уже переменную ‘ Case «ая»: AllWords определить, является ли
по падежам. Не
Dmitriy XM
и найдёте готовыйПримечание <> «КИЙ» ThenЮрьевич: Исправил Швею и 1) & «и»’ Определяем, мужские
склоняется у женщин. Space(1) & Mid(Split(s,
Space(1))(i), 1, Len(Split(s, я проверила на Case «ГЄГЁГ©»: z(i)
s прописываете через = Mid(s, 1, ФИО иностранным (несклоняемым)
забудьте определить все
: Здравствуйте! попробуйте вот модуль склонения ФИО: Результат предыдущей формулы Cells(i, 2) =
а Заведующего Библиотекой (аEnd If ФИО или женские Бывает так, что Space(1))(i), 1, Len(Split(s,
Space(1))(i)) — 1) слове «ложка» и
= Mid(c(i), 1, split (вот первая
Len(s) — 2) или склоняемым по признаки, позволяющие однозначно так =ЕСЛИ(ИЛИ(ПРАВСИМВ(A1;1)=»ь»;ПРАВСИМВ(A1;1)=»й»);ЛЕВСИМВ(A1;ДЛСТР(A1)-1)&»я»;ЕСЛИ(ПРАВСИМВ(A1;1)=»т»;A1&»а»))
— перед тем, — текстовое значение.
Arr(0) & «А. Учитывая, что фамилии
также канцелярией, пекарнейCase «ь»
fMan = (Right(strName3, необходимо знать ударный
Space(1))(i)) — 4) & «у» Case
так как специфика Len(c(i)) — 4)
фраза): Select Case & «ой» Case
правилам для исключений, определить, является лиАлександр как начать радоваться, Если нужно, чтобы
» & StrConv(Arr(1), которые кончаются на и т.д.). ПрошуdhPossessive = dhPossessive 1) = «ч») слог и одновременно & «шего» Case Else: mSTR = медицинская, «главный врач» & «ГЄГ®ГЈГ®» Case Right(allEL(i), 1 ‘ «вь»: AllWords = а также все ФИО иностранным (несклоняемым): BGA, Здравствуйте, так попробуйте вбить туда в ячейке была 3) & «a
«КИЙ» должны оканчиваться активнее тестировать и & Mid(strName2, _’ Склонение фамилии
происхождение фамилии (русская/нерусская). «жва»: mSTR = mSTR & Space(1)
посмотрела) «ГўГ®Г©»: z(i) = так закачивается цикл: Mid(s, 1, Len(s)
planetaexcel.ru
Подскажите скрипт или что нибудь еще! Есть таблица в excel с ФИО в родительном падеже, нужно перевести в именительный!
исчерпывающие признаки, по или склоняемым по
нужно ? примеры типа: дата, то используйте » & StrConv(Arr(2),
на «КОГО» писать в форум1, Len(strName2) -
в родительный падежНаконец, есть «подводные mSTR & Space(1) & Split(s, Space(1))(i)
Добавлено через 1 час Mid(c(i), 1, Len(c(i))
Пользовательская функция замены в родительный падеж
mStr=mSTR & Space(1) — 2) & которым можно было правилам для исключений,АlехМ
Лев -> Льва Формат ячеек (нажмите 3) & «а»Дело в том, возможные ошибки, буду 1) & «и»
If Len(strName1) > камни» (о них & Mid(Split(s, Space(1))(i), & «а» End 8 минут — 4) & & allEL(i) next «ви» Case «их»: бы определить род а также все: =ТЕКСТ(—(1&A1);»[$-FC19]ММММ») (беглая гласная) сочетание клавиш Else Cells(i, 2) что большой список исправлять…Case Else 0 Then обычно не помнят 1, Len(Split(s, Space(1))(i)) Select Select Caseамммм…. а у «ГўГ®ГЈГ®» Case «ГўГ»Г©»: ‘i AllWords=Application.Trim(StrConv(mstr)) End AllWords = Mid(s, (мужкой или женский) исчерпывающие признаки, поІгор ГончаренкоАрслан-Али -> Арслана-АлиCTRL+1 = Replace(Arr(0), «КИЙ», ФИО в такомSashagor1982dhPossessive = dhPossessiveIf fMan Then или даже не — 3) & Right(Split(s, Space(1))(i), 2) меня зеленый автобус z(i) = Mid(c(i), FunctionМожно не вводить 1, Len(s) - ФИО… Тогда посмотрим… которым можно было: не нужно формул. (изменяется первая часть). О форматах даты «КОГО «) & формате. И нужно: Есть еще ошибки & strName2’ Склонение мужской имеют представления), называемые «жвы» Case «ква»: Case «ша»: mSTR верно меняет падеж 1, Len(c(i)) - переменную allEL, но 2) & «их» ;-){/post}{/quote} бы определить родхраните дату как имени) подробнее можно прочитать StrConv(Arr(1), 3) & изменить. А в в различных видахEnd Select фамилии омоформами. Это слова, mSTR = mSTR = mSTR &Dmitrii 4) & «ГўГ®ГЈГ®» не хочу Вас Case «ка»: AllWordsFigarotam (мужкой или женский) дату (всегда ееАлим-Паша -> Алим-Паши в статье Пользовательский формат «a » & ручную долго. написания слов исключенийEnd IfSelect Case Right(strName1, являющиеся разными частями & Space(1) & Space(1) & Mid(Split(s,: Посмотрите по ссылке Case «Г*ûé»: z(i) путать. Пробуйте. = Mid(s, 1,: Подскажите, а как ФИО… Тогда посмотрим… сможете обработать в (изменяется вторая часть ДАТЫ и ВРЕМЕНИ StrConv(Arr(2), 3) &Заранее спасибо) (Швеях всяких, аdhPossessive = dhPossessive 1) речи, имеющие совпадения Mid(s, 1, Len(Split(s, Space(1))(i), 1, Len(Split(s, от Toiai. Там = Mid(c(i), 1,Если не получится Len(s) — 2) её использовать, ексель ;-) последующем как дату) имени) в MS EXCEL «а» End IfЮрий М так же жнецах) & » «Case «о», «и», в написании некоторых Space(1))(i)) — 3) Space(1))(i)) — 1) IvanOK имел такие Len(c(i)) — 4) — дайте образец & «ки» Case 2007, винда7?andy1618достаточно применить формат:)Формула =ТЕКСТ(B6;»МММ») выведет сокращенное название месяца Next End Sub: А ведь ещё буду исправлять.End If «я», «а»
форм. Скажем, «красивая & «квы» End
& «и» Case же проблемы и & «Г*îãî» Case фразы. Доделаю. «ха»: AllWords =Распаковал все в: Проблема склонений в
к ячейке с(примеры взяты с (3 буквы).И вернитесь в
есть фамилии, которыеSerge_007’ Склонение отчестваdhPossessive = strName1 зыбка» (подвесная или Select Next ‘i «жа»: mSTR = вроде порешал. Можете «Г№ГЁГ©»: z(i) =Igor_Tr Mid(s, 1, Len(s) C:Program FilesMicrosoft OfficeOffice12 русском языке очень датой: первой попавшейся поОсобый формат =ТЕКСТ(B6;»[$-FC19] ММММ») выведет своё сообщение #12 заканчиватся на «о»,: Заведующий аттракциона в родительный падежCase «й»
напольная детская кроватка, AllWords = StrConv(Application.Trim(mSTR), mSTR & Space(1)
ему там задать Mid(c(i), 1, Len(c(i))
: Вот примерно так: — 2) & а дальше как? тяжёлая, за этоРезультат Формат ячейки этой теме странички полное название месяца — исправьте горе-цитату. «к», «ч», «ш»…ЦитатаIf Len(strName3) >dhPossessive = Mid(strName1, которую можно качать) vbProperCase) End Function & Mid(Split(s, Space(1))(i), вопрос. Он с — 4) &Function AllWords(s) As «хи» Case «ев»:программистер мы его и8 Март 2007[$-419]Д в инете) с учетом склонения,RAN С ними какSashagor1982, 28.05.2015 в 0 Then 1, Len(strName1) - и «опора зыбка»Вчера все удалил, 1, Len(Split(s, Space(1))(i)) головой, что-то может «Г№ГҐГЈГ®» Case «ГёГЁГ©»: String Dim c$(), AllWords = Mid(s,: пользуюсь вот этой любим :) ММММ ГГГГ8 мартEdichka т.е. сентября. Этот: Нескромный вопрос к быть? ) 22:41, в сообщенииIf fMan Then 2) + «ого» (ненадёжная, качающаяся). В а сегодня востановил — 1) & подсказать, как решил. z(i) = Mid(c(i), z$() c = 1, Len(s) - штукой, склоняет хорошо,Как иллюстрация обилия 2007[$-F419]Д ММММ ГГГГ8: Усем бальшое спасиба формат удобен для отвечающимP.S. Название темы № 8200?’200px’:»+(this.scrollHeight+5)+’px’);»>Прошу активнееdhPossessive = dhPossessiveCase Else первом случае слово и пропустил в «и» Case «га»: А если Ваш 1, Len(c(i)) - Split(Application.Trim(s)) ReDim z(UBound(c)) 2) & «ева» устанавливается без проблем: фамилий — вот Марта 2007 г.[$-F819]Д за участие… Нашёл… вывода фраз, например,А пАдежи, падЁжи, немного изменил. тестировать и писать & strName3 &dhPossessive = strName1 «зыбка» — существительное одном месте. mSTR = mSTR вариант — тогда 4) & «ГёГҐГЈГ®» For i = Case «на»: AllWordsDsd кусочек из одного ММММ ГГГГ «г.»8 Если кому истчо Сегодня 1 сентября, или падежИ кSTASonSmol в форум возможные «а» + «а» (склоняется), во второмВместо & Space(1) & нужно сильно расширять Case «Г¦ГўГ*»: z(i) 0 To UBound(c) = Mid(s, 1,: нет таких исследования телефонной базы марта 2007 г.[$-FC19]Д надо то просьба но может работать этой теме (преобразовать: Да мне хоть ошибкиElseEnd Select — краткая формаCase «ква»: mSTR = Mid(Split(s, Space(1))(i), 1, область Case. Но = Mid(c(i), 1, Select Case Right(c(i), Len(s) — 3)Abram pupkin
Москвы: ММММ ГГГГ «г.» глядеть сюды: не на всех часть текста из с этими разобраться)))
Швец металлических сетокdhPossessive = dhPossessiveElse прилагательного «зыбкий» (используется mSTR & Space(1) Len(Split(s, Space(1))(i)) -
я с русским Len(c(i)) — 3) 1) Case «Г*»:
& «ной» End: предложенная формула работает==ZПроверено на личном компьютерах.
прописных в строчные) У меня мало 3-го разряда & Mid(strName3, 1,’ Склонение женской только в сочетании & Mid(s, 1, 1) & «и» слабый, Вам в & «Г¦ГўГ»» Case z(i) = Mid(c(i), Select Select Case с русскими иПочему-то очень непопулярна: BGA, а обычным
деле… Работает хорошо…Если месяц задан числом от каким боком? которые заканчиваются на
Люковый (горные работы) _ фамилии со словами, стоящими Len(Split(s, Space(1))(i)) - Case «ва»: mSTR этом не помочник.
«ГЄГўГ*»: z(i) = 1, Len(c(i)) - Right(s, 3) Case укр фамилиями у нас фамилия
форматом дат неandy1618 1 до 12,
Юрий М «о», «к», «ч», 3-го разрядаLen(strName3) — 1)Select Case Right(strName1, в именительном падеже).Вот 3) & «квы» = mSTR & Кидаю свой вариант,
Mid(c(i), 1, Len(c(i)) 1) & «Г»»
«кий»: AllWords =(Пельше, Сивонян, Мчеридзе, Алкашов — таковых пробовали воспользоваться?: Действительно классная библиотека! то полное название: Откорректировал название. «ш»…))
Линейный надсмотрщик (специальная & «ы»
1) хорошее и готовоедолжно быть:
Space(1) & Mid(Split(s, на всякий. Практически — 3) & Case «Гї»: z(i) Mid(s, 1, Len(n) Гелерман, Павловский…это все всего двое. ЗатоНапример, таким -И даже приведённые можно вывести сJeyCiBema связь)End IfCase «о», «и», решение для ФИО.Case «ква»: mSTR = Space(1))(i), 1, Len(Split(s, одинаково с toiai, «ГЄГўГ»» End Select = Mid(c(i), 1, — 4) & придется корректировать вручную пять семейств носят [$-FC19]ММММ;@?!. выше тяжкие примеры, помощью формулы =ТЕКСТ(ДАТА(;B14;1);»ММММ»). Название: были же падежи: =ЛЕВБ(A1;НАЙТИ(» «;A1)-1)&» «&ПРОПНАЧ(ПСТР(A1;НАЙТИ(«
Очередной ответственный поEnd If «б», «в», «г», Папка pd_Docs - mSTR & Space(1) Space(1))(i)) — 2) но работаю сразу Next i AllWords Len(c(i)) — 1) «кого» Case «вой»:=ВЫБОР ((ПРАВСИМВ (B8;1)=»а»)+(ПРАВСИМВ фамилию Педик. КPS Извините, проглядел хоть и не со склонением можно на форуме: «;A1)+1;999)) министерству (ведомству)End Function «д», «ж», «з», документация, инструкция. Папка & Mid(Split(s, Space(1))(i), & «ой» Case с Split, и = StrConv(Join(z), vbProperCase) & «ГЁ» Case AllWords = Mid(s, (B8;1)=»й»)*2+ИЛИ (ПРАВСИМВ (B8;1)=»о»;ПРАВСИМВ ним примыкают граждане 2 поста выше. идеально, но обрабатываются: вывести с помощьюSTASonSmolА вот соДолжности брал здесь,sniperganger «к», «л», _ pd_Sample — примеры 1, Len(Split(s, Space(1))(i)) «ая»: mSTR = собираю в строку End FunctionМеня смущает «Г©»: z(i) = 1, Len(s) - (B8;1)=»у»)*3;ЛЕВБ (B8;ДЛСТР (B8)-1);ЛЕВБ Педора и Педячая,BGA1) Иванов Лев формулы =ВЫБОР(B14;»января»;»февраля»;»марта»;»апреля»;»мая»;»июня»;»июля»;»августа»;»сентября»;»октября»;»ноября»;»декабря»).: ИВАНОВА Алексе склонением сложнее. тестируйте сами: автоматически, т.е при»м», «н», «п», использования — 3) & mSTR & Space(1) (он — в 32 строка Вашего Mid(c(i), 1, Len(c(i)) 4) & «вого» (B8;ДЛСТР (B8)-2)&»а»;B8) на чьем фоне: Спасибо всем участникам, ИвановичЕсли требуется решить обратнуюйSTASonSmolSashagor1982 каждом новом вводе «р», «с», «т»,sniperganger «квы» & Mid(Split(s, Space(1))(i), массив). Может, Вам кода: — 1) & Case «вый»: AllWords* убрать все очень нехило живется все варианты отлично(Род.) Иванова Льва задачу, то есть,а СергеевичаБлин, мало опыта,: Смысл, из ИМЕНИТЕЛЬНОГО: ИсправилAndreTM «ф», «х», «ц»,: Добрый вечер.Извиняюсь. 1, Len(Split(s, Space(1))(i)) будет легче, приCase «кий»: AllWords «Гї» Case «Гј»: = Mid(s, 1, пробелы обладателсям фамилий Шнурапет, работают! Хранить дату Ивановича (всё ОК) имея название месяца, так бы наверное перевести в РОДИТЕЛЬНЫЙSashagor1982: Добавьте в модуль «ч», _Уважаемые форумчане, обращаюсьkorvindeson — 2) & наличии несколько вариантов = Mid(s, 1, z(i) = Mid(c(i), Len(s) — 4)—056— Шабаш, Зюзя, Задуйвитер, как дату не2) Иванов Арслан-Али получить его номер, разобрался как подправить падеж ) в: функцию:»ш», «щ», «ь» к вам с: «ой» Case «вь»: Кидаю и с Len(n) — 4) 1, Len(c(i)) - & «вого» Case: Ребят, всем привет, Сивокобыленко, Сивокоз, Пальцапупа, могу, я работаю Иванович то используйте формулу =МЕСЯЦ(ДАТАЗНАЧ(1&B21&2011)) формулу( формате ИВАНОВА ИванаSashagor1982200?’200px’:»+(this.scrollHeight+5)+’px’);»>Function Possessive(ParamArray cNames() AsdhPossessive = strName1 просьбой помочь разобратьсяIgor_Tr mSTR = mSTR тестовой процедурой. & «кого»n - 1) & «Гї» «ный»: AllWords = может такая тема Забабашкин, Дурнопейко, Нарко, над меню, мне(Род.) Иванова Арслан-АлиНазвание месяца должно бытьcopper-top Ивановича): Пока все что Variant) As StringCase «я» в нелегкой, на, спасибо большое!)) варианты & Space(1) &Кликните здесь для то неизвестно, т.е. Case «Г®»: z(i) Mid(s, 1, Len(s) уже есть, но Шмаль и Глюкин. нужно 365 дат Ивановича (правильно: Арслана-Али) в именительном падеже: что сказать… да,Юрий М мог исправил. НоApplication.Volatile TruedhPossessive = Mid(strName1, мой взгляд ситуации: были использованы и Mid(Split(s, Space(1))(i), 1, просмотра всего текста =»» = Mid(c(i), 1, — 4) & найти не смогла.== в двойном экземпляре-3) Иванов Алим-Паша и без опечаток. мало опыта. еще: А министр обороны
про БИБЛИОТЕКУ узнаюDim aParam() As 1, Len(strName1) -есть рабочий макрос,
доделаны окончания) правда
Len(Split(s, Space(1))(i)) - Sub TestFunction() ‘Igor_Tr Len(c(i)) — 1) «ного» Case «щий»:
Ситуация такая, написала
и т.д. именительном и родительном ИвановичДля наглядности можно составить полгода назад я РФ в Ваш
лучше, так как
String 2) & «ой» вполне здраво функционирующий, исключения в любом 2) & «ви» MsgBox AllWords(Application.Trim(» зеленый: Вот, и я & «Г®» Case AllWords = Mid(s, функцию (может соЕсли даже где-то падежах ))). Много(Род.) Иванова Алим-Паши перечень месяцев с и не знал список может попасть? знающие люди говорят,aParam = Split(Trim(Join(cNames,
Case Else который позволяет при случае остались) но Case «их»: mSTR автобус синий руль так сделал. Указал «ГҐ»: z(i) = 1, Len(s) - своими недочетами, но и найдёте готовый места надо… Ивановича их номерами и как всеми этими ) что Заведующий БИБЛИОТЕКИ, » «)))dhPossessive = Mid(strName1, нажатии кнопки изменять
такие частные случаи = mSTR & «)) MsgBox AllWords(Application.Trim(« фразу Mid(c(i), 1, Len(c(i)) 4) & «щего» все же)), которая модуль склонения ФИОvikttur(Тв.) Ивановым Алим-Пашей с помощью функции формулами пользоваться.STASonSmol как и Начальник..If UBound(aParam) <
1, Len(strName1) - падеж фамилии, имени, можно и руками Space(1) & Mid(Split(s,
ольга петровна сидорова»))»зеленый автобус синий руль» — 1) & Case «ший»: AllWords
меняет именительный падеж — перед тем,: Поделитесь, как Вы Ивановичем (правильно: Алим-Пашой) ВПР() выбирать названиенапишите самые популярные: Спасибо. Так прощеPelena 2 Then 1) & «ой» и отчества из в тексте подправить Space(1))(i), 1, Len(Split(s,
‘ MsgBox AllWords(Application.Trim(«- получил «ГҐ» Case «ГЁ»: = Mid(s, 1, на родительный. как начать радоваться, в одном экземпляреНо это всё месяца по его окончания в фамилиях поменять окончания, чем: http://www.gramota.ru/spravka/trudnosti/36_32Possessive = «»End Select именительного падежа в если что)))) сделала Space(1))(i)) — 2) иван петрович сидоров»Зеленыя Автобуса Синия Руля» z(i) = Mid(c(i), Len(s) — 4)PureBasic Function AllWords(s) попробуйте вбить туда храните два падежа? мелочи, к тому номеру (см. файл и именах. я полностью Имя иSashagor1982
CyberForum.ru
Автоматическое изменение падежа в ячейке (проблемы с изменением кода макроса)
ElseEnd If
родительный, но вот еще по функции & «их» Case «)) End SubЭто что то
1, Len(c(i)) - & «шего» Case As String Select примеры типа: ) же есть файл примера). уже разобрался как Отчество переписывать: ИсправилPossessive = dhPossessive(aParam(0),dhPossessive = dhPossessive незадача, данный процесс для фамилий, имен «ка»: mSTR = Function AllWords(s) As так должно быть? 1) & «ГЁ» «жва»: AllWords = Case Right(s, 1)Лев -> ЛьваBGA
исключений. В общем,
Edichka подправить и попробую
STASonSmolStasON aParam(1), aParam(2)) & " "
нужно автоматизировать, т.е. и отчеств. вроде mSTR & Space(1)
String Dim mSTR$,Igor_Tr
Case "Г»": z(i) Mid(s, 1, Len(s)
Case "а": AllWords (беглая гласная)
: неее, была речь вещь!
: Помогите научить EXCEL подогнать. не обещаю.: Я не против.
: Здравствуйте.End IfEnd If чтобы данные брались то, что надо)
& Mid(Split(s, Space(1))(i),
i& For i
: Если необходимо склонение
= Mid(c(i), 1, - 3) &
= Mid(s, 1,
Арслан-Али -> Арслана-Али
о двойном экземпляре
Guest склонять ФИО по =ЕСЛИ(ПРАВСИМВ(ЛЕВСИМВ(A1;ПОИСК(" ";A1)-1);2)="ИЙ";ПОДСТАВИТЬ(ЛЕВСИМВ(A1;ПОИСК(" ";A1));"ИЙ
Спасибо)) Видимо такА женские ФИО
End Function' Склонение имени
не из первого чтобы я без
1, Len(Split(s, Space(1))(i)) = LBound(Split(s, Space(1)))
ФИО,то посмотри здесь Len(c(i)) - 1)
"жвы" Case "ква": Len(s) - 1)
(изменяется первая часть
каждой даты в: Сначала сформулируйте точные,
падежам или хотябы ";"ОГО ");ПОДСТАВИТЬ(ЛЕВСИМВ(A1;ПОИСК(" ";A1));"
понятнее для любителей пока не склоняются?
И используйте её
в родительный падеж
столбца как там Вас делала) - 2) &
To UBound(Split(s, Space(1)))
Склонение фамилий, имен & "Г»" Case
AllWords = Mid(s,
& "ы" Case
имени) году. Это как
внятные и формализуемые родительный
";"А "))&ЕСЛИ(ЕЧИСЛО(ПОИСК("Й ";A1));ПОДСТАВИТЬ(ПРОПНАЧ(ПСТР(A1;ПОИСК(" excel))китин в ячейке. Например,
If Len(strName2) > в коде аМы не причем. "ки" Case "ха":
Select Case Right(Split(s,
и отчеств по
"Гі": z(i) =
1, Len(s) - "я": AllWords =Алим-Паша -> Алим-Паши
я поняла)).
правила склонения ФИОGuest ";A1);99));"й ";"я ")&"а";ПОДСТАВИТЬ(ПРОПНАЧ(ПСТР(A1;ПОИСК("
Bema
:
в той же 0 Then
из ячеек f19
Сами бы не mSTR = mSTR
Space(1))(i), 1) Case падежам
Mid(c(i), 1, Len(c(i))
3) & "квы" Mid(s, 1, Len(s)
(изменяется вторая частьА можно по
по падежам. Не
: Сначала сформулируйте точные, ";A1);99));" ";"а ";2)&"а")
: Можно так, ноStasON
F13:
If fMan Then фамилия f20 имя хотели - ничего
& Space(1) &
"а": mSTR =
--056-- - 1) &
End Select AllWords - 1) &
имени)
той же теме забудьте определить все внятные и формализуемые
SAS888
это очень топорно:, тут почитайте
Код200?'200px':''+(this.scrollHeight+5)+'px');">=Possessive(F19;F20;F21)' Склонение мужского f21 отчество и
бы и не
Mid(Split(s, Space(1))(i), 1, mSTR & Space(1)
: Да, там с "Гі" Case Else:
= StrConv(AllWords, vbProperCase)
"и" Case "й":
:) - наоборот, если признаки, позволяющие однозначно
правила склонения ФИО: Можно использовать Padeg.Declension.
=ЛЕВБ(A1;НАЙТИ(" ";A1)-1)&"А "&ПОДСТАВИТЬ(ПРОПНАЧ(ПСТР(A1;НАЙТИ("Rioran
В качестве параметров
имени автоматически сами вставлялись
было. Удачи. Len(Split(s, Space(1))(i)) -
& Mid(Split(s, Space(1))(i),
функцией нужно еще
z(i) = c(i) End FunctionВот текст
AllWords = Mid(s,(примеры взяты с
нужно из родительного
определить, является ли по падежам. Не
Например, так: Function
";A1)+1;999));" ";"а ")&"а"
: можно указывать от
Select Case Right(strName2,
уже в родительном--056--
2) & "хи" 1, Len(Split(s, Space(1))(i))
работать. Если ФИО,
+ "Г*" End функции. Проблема состоит 1, Len(s) -
первой попавшейся по
падежа месяц в ФИО иностранным (несклоняемым) забудьте определить все
Pad(ФИО As Range,copper-top
Sashagor1982
одной до нескольких
1)
без всяких дополнительных, из Вашего описания Case «ев»: mSTR
— 1) & тогда записал Select Select Case
в том, что 1) & "я"
»иван петрович сидоров» Right(c(i), 2) Case когда я например Case «ь»: AllWords
этой теме странички
именительный перевести? Пытаюсь или склоняемым по
признаки, позволяющие однозначно Падеж As Integer)
: . =ПОДСТАВИТЬ(ЛЕВСИМВ(A1;ПОИСК(" ";A1));", здравствуйте!
ссылок на ячейки
Case "й", "ь"
нажатий в ячейку непонятно, что требуется
= mSTR &
"ы" Case "я":
в инете)
сама переделать, но правилам для исключений, определить, является ли As String Set «;»А «)&ПОДСТАВИТЬ(ПРОПНАЧ(ПСТР(A1;ПОИСК(» «;A1);99));»Восхитительная работа. Плюсую. или переменных/констант. ТоdhPossessive = dhPossessive
f13 все вместе. склонять. Однако при Space(1) & Mid(Split(s,
mSTR = mSTR. Получил
excelworld.ru
Склонение названий должностей (падежи) (Excel)
«ГёГ*»: z(i) = делаю макрос с = Mid(s, 1,Edichka формулы слишком сложные.. а также все ФИО иностранным (несклоняемым) x = CreateObject(«Padeg.Declension»)
«;»а «;2)&»а»А вот слово
есть предыдущий вариант & Mid(strName2, _
200?’200px’:»+(this.scrollHeight+5)+’px’);»>Public Sub PossessiveCase() решении такой задачи
Space(1))(i), 1, Len(Split(s, & Space(1) &»Ивана Петровича Сидорова»
Mid(c(i), 1, Len(c(i)) вызовом InputBox, ввожу
Len(s) — 1): Усем бальшое спасиба
vikttur
исчерпывающие признаки, по или склоняемым по
Pad = x.GetFIOPadegFS(ФИО,Юрий М
«Судья» прошу проверить. можно было бы1, Len(strName2) -’Склоняем ФИО в
для получения правильного Space(1))(i)) — 2)
Mid(Split(s, Space(1))(i), 1,. Это как-бы правильно. — 1) & туда 1 слово, & «я» Case за участие… Нашёл…: Покажите пример. А которым можно было правилам для исключений,
«», Падеж) End: Только формулами?Викториияя вызвать как 1) & «я» родительный падеж результата обязательно (!)
& «ева» Case Len(Split(s, Space(1))(i)) -
А запись «ГЁ» Case «Г¦Г*»: MsgBox выводит всё «о»: AllWords = Если кому истчо еще лучше - бы определить род
а также все FunctionВо вложении пример
Юрий М: Sashagor1982, я в
Код200?’200px’:»+(this.scrollHeight+5)+’px’);»>=Possessive(F19&» «&F20;F21)или вообщеCase Else
Dim strName1 As надо знать, во-первых,
«на»: mSTR = 1) & «и»
»ольга петровна сидорова» z(i) = Mid(c(i),
правильно. А когда Mid(s, 1, Len(s)
надо то просьба объясните начальную задачу, (мужкой или женский) исчерпывающие признаки, по с использованием UDF: На всякий случай восторге от Вашей передать функции одну
dhPossessive = dhPossessive String, strName2 As
к какой именно mSTR & Space(1)
Case «й»: mSTRвернуло что-то непонятное
1, Len(c(i)) - я ввожу в
— 1) & глядеть сюды: а не Ваше ФИО… Тогда посмотрим…
которым можно было для любого падежа. (исходные данные в работы.
ячейку с ФИО.
& strName2 & String, strName3 As
части речи относится & Mid(Split(s, Space(1))(i), = mSTR & -
excelworld.ru
Изменение падежа ФИО (Макросы/Sub)
1) & «ГЁ» InputBox уже 2
«о» Case «е»:Проверено на личном представление о ее ;-){/post}{/quote} бы определить родSTASonSmol столбце А, результатDrMinisniperganger «а»
String склоняемое слово, во-вторых, 1, Len(Split(s, Space(1))(i))
Space(1) & Mid(Split(s,»Ольгы Ольой Петровны Петровой Case «ГЈГ*»: z(i) слова, то функция AllWords = Mid(s,
excelworld.ru
Работа с ФИО — преобразовать часть текста из прописных в строчные и поменять падеж.
деле… Работает хорошо… решении.Figarotam
(мужкой или женский): ФИОРодительныйИванов Иван Иванович#ЗНАЧ!Ивановский в столбец В):
: Доброго времени суток: спасибо, помогло!End Select
For I = нарицательным или личным — 3) & Space(1))(i), 1, Len(Split(s, Сидоровы Сидороой» = Mid(c(i), 1, первое слово игнорирует 1, Len(s) -andy1618BGA: Подскажите, а как ФИО… Тогда посмотрим…
Василий Макарович#ЗНАЧ!Петренко Петр Sub Macro1() DimИз этой темыSashagor1982Else 1 To Cells(Rows.Count,
(фамилия, имя, отчество)
«ной» End Select Space(1))(i)) — 1)Igor_Tr Len(c(i)) — 1) полностью, а последнее 1) & «е»: Действительно классная библиотека!
: Задача: нужна формула её использовать, ексель
;-) Петрович#ЗНАЧ!Сидорова Мария Ивановна#ЗНАЧ!Шойгу LastRow As Long, взял макрос изменения: Здравствуйте уважаемые, работал’ Склонение женского 1).End(xlUp).Row
понятием оно является. Select Case Right(Split(s, & «я» Case
: Может быть и & «ГЁ» Case
уже меняет. Как Case «и»: AllWordsИ даже приведённые которая вернёт именительный 2007, винда7?andy1618
Сергей Кужугетович#ЗНАЧ! i As Long, падежа. Всё устраивало над функцией склонения имени
Dim fname$(): fnameВ русском языке Space(1))(i), 3) Case «ь»: mSTR = нужно, но ТС
«ГўГ*»: z(i) = бы дополнить эту = Mid(s, 1, выше тяжкие примеры, падеж текстовых названий
Распаковал все в: Проблема склонений вSAS888
Arr LastRow = до тех пор
названий должностей вSelect Case Right(strName2, = Split(Cells(I, 1)) склоняются: существительные, прилагательные
«кий»: mSTR = mSTR & Space(1)
то молчит! Mid(c(i), 1, Len(c(i)) функцию так, чтобы Len(s) — 1) хоть и не месяцев. Прилагаю файл C:Program FilesMicrosoft OfficeOffice12 русском языке очень: Значит у Вас Cells(Rows.Count, 1).End(xlUp).Row For пока не появились родительном и дательном 1)strName1 = fname(0) (не во всех mSTR & Space(1) & Mid(Split(s, Space(1))(i),—056— — 2) & обрабатывалось оба (да
& «и» Case идеально, но обрабатываются:АlехМ а дальше как? тяжёлая, за это отсутствует необходимая библиотека i = 2
пустые строки между падеже, вот получилось,Case «а» ‘ фамилия случаях), причастия (не & Mid(Split(s, Space(1))(i), 1, Len(Split(s, Space(1))(i)): to toiai. Думал, «Г®Г©» Case «Г*Гї»: не важно сколько «ы»: AllWords =1) Иванов Лев: В С1 -программистер мы его и Padeg.dll. To LastRow Arr именами. Макрос стал пользуйтесь и критикуйте,Select Case Mid(strName2,strName2 = fname(1) во всех случаях), 1, Len(Split(s, Space(1))(i)) — 1) & мой вариант такое z(i) = Mid(c(i),
там слов введено, Mid(s, 1, Len(s) Иванович
января: пользуюсь вот этой любим :)
Скачайте и зарегистрируйте = Split(Cells(i, 1)) выдавать ошибку. Интересует буду рад доработать.. Len(strName2) — 1, ‘ имя
местоимения, числительные. У — 4) &
«я» Case «о»: выдает. Ваш теперь 1, Len(c(i)) -
ситуации могут возникнуть — 1) &(Род.) Иванова Льва=ТЕКСТ(—(ЛЕВБ(ПОДСТАВИТЬ(C1;»ая»;»ай»);3)&0);»ММММ») штукой, склоняет хорошо,Как иллюстрация обилия этот компонент.
Cells(i, 2) = только родительный падеж.ikki 1)strName3 = fname(2) каждой части речи «кого» Case «вой»:
mSTR = mSTR прогнал по ольге 2) & «Г®Г©» разнообразные) слова, а «ы» Case «у»: Ивановича (всё ОК)или устанавливается без проблем: фамилий — вотСкачать библиотеку можно Arr(0) & «А
ЛИСТ «Таблица»: продавецCase «и», «г» ‘ отчество есть свои особенности mSTR = mSTR & Space(1) & — тот же Case «ГўГј»: z(i) не последнее. AllWords = Mid(s,2) Иванов Арслан-Али
=ТЕКСТ(—(ЛЕВБ(ПОДСТАВИТЬ(C1;»ая»;»ай»);3)&0);»[$-F419]ММММ»)BGA кусочек из одного . » & StrConv(Arr(1),
PelenaSashagor1982dhPossessive = dhPossessive’ Если в
склонения. Например, при & Space(1) &
Mid(Split(s, Space(1))(i), 1, успех.
planetaexcel.ru
= Mid(c(i), 1,
ТРЕНИНГИ
Быстрый старт
Расширенный Excel
Мастер Формул
Прогнозирование
Визуализация
Макросы на VBA
КНИГИ
Готовые решения
Мастер Формул
Скульптор данных
ВИДЕОУРОКИ
Бизнес-анализ
Выпадающие списки
Даты и время
Диаграммы
Диапазоны
Дубликаты
Защита данных
Интернет, email
Книги, листы
Макросы
Сводные таблицы
Текст
Форматирование
Функции
Всякое
Коротко
Подробно
Версии
Вопрос-Ответ
Скачать
Купить
ПРОЕКТЫ
ОНЛАЙН-КУРСЫ
ФОРУМ
Excel
Работа
PLEX
© Николай Павлов, Planetaexcel, 2006-2022
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
Техническая поддержка сайта
ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |