Родительный падеж фио – как писать имя и фамилию в родительном падеже

Мужской родЖенский родМножественной число
Фамилии на -ов/ев, -ин/ын, -ский/ской, -цкий/цкойПетрова, Пшеницына, Чацкого, БоровскогоПетровой, Пшеницыной, Чацкой, БоровскойПетровых, Пшеницыных, Чацких, Боровских
Фамилии, созвучные прилагательнымЧерного, Крымского, Толстого, ЛихогоЧерной, Крымской, Толстой, ЛихойЧерных, Крымских, Толстых, Лихих
Фамилии, созвучные существительным (в том числе иноязычные без ударения на последний слог)

 

Мельника, Короля, Ворон
а

(созвучные существительным мужского рода 2 склонения)

Мельник, Король, ВоронМельник, Король, Ворон
Пятницы, Кафки, Земли

(созвучные существительным женского рода 1 склонения)

Пятницы, Кафки, Земли

 

Пятница, Кафка, Земля

 

Фамилии с беглыми гласнымиЛьва, ЗайцаЛев, ЗаяцЛев, Заяц
Двойные фамилии

 

Соловьева-Седого, Ткач-ПреображенскогоСоловьевой-Седой, Ткач-ПреображенскойСоловьевых-Седых Ткач-Преображенских

obrazovaka.ru

Дательный падеж ФИО - Rus-learn.com

Особенности склонения ФИО в дательном падеже

Форму дательного падежа в русском языке имеют фамилии, имена и отчества, конечные элементы которых поддаются русскому словоизменению (то есть, склоняемые собственные существительные):

  • Фамилии, созвучные нарицательным существительным мужского рода (Мельник, Блок). Однако такие женские фамилии в дательном падеже не склоняются (Ветер Екатерине Сергеевне).
  • Фамилии, созвучные существительным женского рода (Суббота, Щерба).
  • Фамилии на -ов/ев, -ин/ын, -ский/ской, -цкий/цкой (Воробьев, Молодецкий).
  • Фамилии, созвучные с прилагательными (Черный, Толстой).
  • Имена с окончанием -а (-я), а также с основой на согласный и нулевым окончанием (Зинаида, Петр, Любовь).
  • Отчества на -ович (-овна), -евич (-евна), -ич (-ична) (Иванович, Саввична).

Несклоняемые фамилии и имена в дательном падеже имеют форму, омонимичную их начальной форме (отдать книгу Франсуа Монтре).

Дательный падеж ФИО в примерах: обратиться к Чайке Василисе Георгиевне, подарить Суворову Никите БорисовичуШацкому Матвею Сергеевичу не работается, письмо 

Дюма Александру Павловичу, поручить Городецкой Анетт Жоржевне.

Окончания ФИО в дательном падеже

Единственное числоМножественное число
Мужской родГромову Эдуарду СергеевичуМедведю Федору Петровичу

Савицкому ЕвгениюАлександровичу

Лихому Виктору Никитичу

Россини Джоаккино Анатольевичу

Громовым Эдуардам СергеевичамМедведь Федорам Петровичам

Савицким Евгениям Александровичам

Лихим Викторам Никитичам

Россини Джоаккино Анатольевичам

Женский родГромовой Людмил
е
 СергеевнеМедведь Наталье Петровне

Савицкой Екатерине Александровне

Лихой Милене Никитичне

Россини Софи Анатольевне

Громовым Людмилам СергеевнамМедведь Натальям Петровнам

Савицким Екатеринам Александровнам

Лихим Миленам Никитичнам

Россини Софи Анатольевнам

Раздел: Падежи Метки: падежи

rus-learn.com

Функция перевода ФИО в дательный падеж

Пользовательская функция (UDF) для перевода ФИО (фамилии, имя, отчества) в дательный падеж.

 

Эту функцию можно использовать как в коде программы, так и как формулу в ячейках листа Excel
(см. пример в прикреплённом файле)

PS: Функцию написал не я - нашел на просторах интернета несколько примеров кода, и переработал код для уменьшения количества ошибок при склонении.
Тестировал склонение на списке разнообразных ФИО (см. первый столбец в прикреплённом файле), и заведомо корректных результатах склонения (третий столбец)

Конечно, код не идеальный, - всегда можно найти ФИО, которые будут склоняться неверно.
Но, в целом, удалось добиться весьма неплохого результата (по сравнению с прежней версией кода, и другими аналогичными функциями)

Если вы используете функции склонения для формирования документов,
обратите внимание на специализированную надстройку FillDocuments,

которая позволит вам одним нажатием кнопки создать документы Word и Excel по шаблонам, а также выполнить рассылку писем.

В указанную надстройку включены самые последние версии функций склонения.

Пример использования:

Sub ПереводФИОвДательныйПадеж()
    ' если фамилия, имя и отчество - в одной переменной (или ячейке)
    FIO$ = "Сидоров Иван Скотиныч"
    ДательныйПадеж$ = DativeCase(FIO$)
    Debug.Print ДательныйПадеж$    ' результат: Сидорову Ивану Скотинычу

    ' если фамилия, имя и отчество - в разных переменных (или ячейках)
    Кому$ = DativeCase("Андреева", "Ольга", "Федоровна")
    Debug.Print Кому$    ' результат: Андреевой Ольге Федоровне
End Sub

Код функции DativeCase (новая версия, от 29 января 2013 года):

Option Compare Text    ' эта строка нужна обязательно! (сравнение без учёта регистра)

Function DativeCase(sSurname$, Optional sName$, Optional sPatronymic$) As String
    ' Функция формирует дательный падеж из ФИО
    ' Параметры: sSurname - фамилия, sName - имя, sPatronymic - отчество
    ' © 2013 EducatedFool

    Application.Volatile True    ' автопересчёт формулы на листе
    sSurname$ = Replace(sSurname$, " - ", "-"): sSurname$ = Replace(Replace(sSurname$, " -", "-"), "- ", "-")
 
    On Error Resume Next
    If sName$ = "" And sPatronymic$ = "" Then
        arr = Split(Application.Trim(sSurname$))
        sSurname$ = arr(0): sName$ = arr(1): sPatronymic$ = Replace(arr(2), ".", "")
    End If
 
    ' пол теперь определяется иначе:   что заканчивается на "вна" или "кызы" - то женщины, остальные - мужчины.
    Dim bMaleSex As Boolean:    ' bMaleSex = (Right(sPatronymic, 1) = "ч" Or Right(sPatronymic, 4) = "оглы")
    bMaleSex = Not (Right(sPatronymic, 2) = "на" Or Right(sPatronymic, 4) = "кызы")
 
    If Len(sSurname) > 0 Then    '   Фамилия
        arrSurname = Split(sSurname, "-")
        For i = LBound(arrSurname) To UBound(arrSurname)    ' перебираем все части фамилий, содержащих дефис
            sRes = "": sSurnamePart = arrSurname(i)
 
            If bMaleSex Then    ' мужские фамилии
                Select Case Right(sSurnamePart, 1)
                    Case "о", "и", "ы", "у", "э", "е", "ю": sRes = sSurnamePart
                    Case "ь", "й": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 1) & "ю"
                    Case "я", "а": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 1) & "е"
                        If UBound(arrSurname) > 0 And i = 0 Then sRes = sSurnamePart
                    Case Else: sRes = sSurnamePart & "у"
                End Select
 
                Select Case Right(sSurnamePart, 2)    ' добавлено, для редких фамилий
                    Case "ец": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "цу"
                        If LCase(sSurnamePart) Like "*[уеыаоэяиюё]ец" Then sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 1) & "цу"
                        If LCase(sSurnamePart) Like "*[!уеыаоэяиюё][!уеыаоэяиюё]ец" Then sRes = sSurnamePart & "у"
                    Case "зе", "их", "ых": sRes = sSurnamePart
                    Case "ый": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "ому"
                    Case "ий", "ой": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "ому"
                        If Len(sSurnamePart) <= 4 Then sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 1) & "ю"
                        If Right(sSurnamePart, 3) = "чий" Then sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "ему"
                    Case "уй": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "ую"
                End Select
 
            Else    ' женские фамилии
                Select Case Right(sSurnamePart, 1)
                    Case "о", "е", "э", "и", "ы", "у", "ю", "б", "в", "г", "д", "ж", "з", "к", "л", "м", "н", "п", _
                         "р", "с", "т", "ф", "х", "ц", "ч", "ш", "щ", "ь", "й": sRes = sSurnamePart
                    Case "я": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "ой"
                    Case Else: sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 1) & "ой"
                End Select
 
                Select Case Right(sSurnamePart, 2)    ' добавлено, для редких фамилий
                    Case "ха", "ла", "ее": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 1) & "е"
                End Select
 
            End If
 
            ' не склоняются мужские и женские фамилии, оканчивающиеся на -о, -е, -э, -и, -ы, -у, -ю,
            ' а также на -а с предшествующей гласной
            If LCase(sSurnamePart) Like "*[уеыаоэяиюё]а" Then sRes = sSurnamePart
 
            arrSurname(i) = sRes
        Next
        DativeCase = Join(arrSurname, "-") & " "    ' соединяем части склоняемой фамилии обратно в одну строку
    End If
 
    If Len(sName) > 0 Then    '   Имя
        NameException$ = GetDativeException(sName)
        If Len(NameException$) Then    ' для имен-исключений
            DativeCase = DativeCase & NameException$
        Else    ' имя не найдено в списке исключений
            If bMaleSex Then
                Select Case Right(sName, 1)
                    Case "й", "ь": DativeCase = DativeCase & Mid(sName, 1, Len(sName) - 1) & "ю"
                    Case "я", "а": DativeCase = DativeCase & Mid(sName, 1, Len(sName) - 1) & "е"
                    Case "о": DativeCase = DativeCase & sName
                    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
        End If
        DativeCase = DativeCase & " "
    End If
 
    If Len(sPatronymic) > 0 Then    '   Отчество
        If Right(sPatronymic, 4) = "оглы" Or Right(sPatronymic, 4) = "кызы" Then
            DativeCase = DativeCase & sPatronymic
        Else
            If bMaleSex Then
                DativeCase = DativeCase & sPatronymic & "у"
            Else
                DativeCase = DativeCase & Mid(sPatronymic, 1, Len(sPatronymic) - 1) & "е"
            End If
        End If
    End If
    DativeCase = Replace(DativeCase, "-", "- ")
    DativeCase = StrConv(DativeCase, vbProperCase)
    DativeCase = Replace(DativeCase, "- ", "-")
End Function
Function GetDativeException(ByVal txt$) As String    ' склонение имён-исключений
    Select Case txt$
        Case "Павел": GetDativeException = "Павлу"
        Case "Лев": GetDativeException = "Льву"
        Case "Пётр": GetDativeException = "Петру"
 
            ' без изменения (не склоняются) - перечисляем через запятую
        Case "Али", "Бали": GetDativeException = txt$
    End Select
End Function
ВложениеРазмерЗагрузкиПоследняя загрузка
Dative_and_Genitive_Case.zip - склонение в родительный и дательный падеж на VBA72.28 КБ94 года 32 недели назад
Dative_and_Genitive_Case.xls — версия от 30 октября 2014 года (с поддержкой разных алфавитов в ФИО)259.5 КБ0Ещё не загружался
  • 70040 просмотров

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.

excelvba.ru

Склонение мужских и женских фамилий по падежам

Большинство русских фамилий склоняется по падежам согласно правилам русского языка. Однако есть много фамилий иностранного происхождения, окончания которых отличаются от типичных окончаний русских фамилий. Возникают два вопроса: склонять их или нет, как склонять? Рассмотрим разные случаи склонения фамилий:

  1. Фамилии на -ов/ев, -ин/ын, -ский/ской, -цкий/цкой
  2. Фамилии, созвучные прилагательным
  3. Фамилии, созвучные существительным
  4. Фамилии с беглыми гласными
  5. Фамилии на -ко, -е, -и, -у, -ю и среднего рода на -о
  6. Фамилии без грамматического рода на -во, -их/ых
  7. Двойные фамилии

1. Фамилии, оканчивающиеся на -ов/ев, -ин/ын, -ский/ской, -цкий/цкой, составляют основную часть русских фамилий. Их склонение обычно не вызывает вопросов и происходит с добавлением окончаний по следующим правилам:

Таблица 1. Фамилии на -ов/-ова
ПадежВопрос падежаМужская фамилияЖенская фамилияМножественное число
И.п.кто?ИвановИвановаИвановы
Р.п.кого?ИвановаИвановойИвановых
Д.п.кому?ИвановуИвановойИвановым
В.п.кого?ИвановаИвановуИвановых
Т.п.кем?ИвановымИвановойИвановыми
П.п.о ком?об Ивановеоб Ивановойоб Ивановых
Таблица 2. Фамилии на -ский/-ская
ПадежВопрос падежаМужская фамилияЖенская фамилияМножественное число
И.п.кто?АхтырскийАхтырскаяАхтырские
Р.п.кого?АхтырскогоАхтырскойАхтырских
Д.п.кому?АхтырскомуАхтырскойАхтырским
В.п.кого?АхтырскогоАхтырскуюАхтырских
Т.п.кем?АхтырскимАхтырскойАхтырскими
П.п.о ком?об Ахтырскомоб Ахтырскойоб Ахтырских

2. Фамилии, созвучные прилагательным, склоняются в соответствии со склонением прилагательных в мужском и женском роде и в множественном числе: Лихой, Толстая, Белый, Великий.

Таблица 3. Фамилии, созвучные прилагательным
ПадежВопрос падежаМужская фамилияЖенская фамилияМножественное число
И.п.кто? какой/какая?ЛихойЛихаяЛихие
Р.п.кого? какого/какой?ЛихогоЛихойЛихих
Д.п.кому? какому/какой?ЛихомуЛихойЛихим
В.п.кого? какого/какую?ЛихогоЛихуюЛихих
Т.п.кем? каким/какой?ЛихимЛихойЛихими
П.п.о ком? о каком/о какой?о Лихомо Лихойо Лихих

3. Фамилии, созвучные существительным, склоняются в соответствии с полом, грамматический род не влияет на склонение. В том числе иноязычные без ударения на последний слог. Примеры фамилий: Мельник, Гитара, Бык, Ворона, Черноус, Щерба, Кафка. Фамилии мужского рода (Мельник, Трус) склоняются у мужчин по правилу склонения существительных мужского рода, у женщин и во множественном числе не склоняются. Фамилии женского рода (Гитара, Пятница) у мужчин и женщин склоняются по правилам склонения существительных женского рода, во множественном числе фамилия имеет форму именительного падежа у мужчин и не склоняется по падежам.

Таблица 4. Фамилии, созвучные существительным в мужском роде
ПадежВопрос падежаМужская фамилияЖенская фамилияМножественное число
И.п.кто?МельникМельникМельник
Р.п.кого?Мельника
Д.п.кому?Мельнику
В.п.кого?Мельника
Т.п.кем?Мельником
П.п.о ком?о Мельнике
Таблица 5. Фамилии, созвучные существительным в женском роде
ПадежВопрос падежаМужская фамилияЖенская фамилияМножественное число
И.п.кто?ГитараГитараГитара
Р.п.кого?ГитарыГитары
Д.п.кому?ГитареГитаре
В.п.кого?ГитаруГитару
Т.п.кем?ГитаройГитарой
П.п.о ком?о ГитареГитаре

Примечание 1. Стоит уточнять ударение в фамилиях, оканчивающихся на -а, так как от этого зависит окончание творительного падежа. Сравните: Лéвша — Левшей, Левшá — Левшой.
Примечание 2. Французские фамилии с ударным окончанием -а,-я, не склоняются: Эмилю Золя, Пьером Брока, об Александре Дюма.

4. Фамилии, совпадающие с существительными с беглой гласной, склоняются также с выпадением гласной. Примеры: Заяц — Зайца, Лоб — Лба, Лев - Льва. Однако семейные традиции могут диктовать исключение, гласная буква не выпадает. Например: Лапоть — Лапотя (вместо Лаптя).

Таблица 6. Фамилии, созвучные существительным в женском роде
ПадежВопрос падежаМужская фамилияЖенская фамилияМножественное число
И.п.кто?Песец, ЛапотьПесец, ЛапотьПесец, Лапоть
Р.п.кого?Песца, Лаптя или Лапотя
Д.п.кому?Песцу, Лаптю или Лапотю
В.п.кого?Песца, Лаптя или Лапотя
Т.п.кем?Песцом, Лаптем или Лапотем
П.п.о ком?о Песце, о Лапте или о Лапоте

5. Русские фамилии среднего рода, оканчивающиеся на -о, украинские фамилии на –ко, а также иноязычные фамилии на -о, -е, -и, -у, -ю не склоняются. Примеры: Болото, Золото, Петренко, Тимошенко, Живаго, Дали, Орджоникидзе, Ганди.

Таблица 7. Фамилии среднего рода и на -ко
ПадежВопрос падежаМужская фамилияЖенская фамилияМножественное число
И.п.кто?Золото, Петренко, ДалиЗолото, Петренко, ДалиЗолото, Петренко, Дали
Р.п.кого?
Д.п.кому?
В.п.кого?
Т.п.кем?
П.п.о ком?

6. Фамилии, образованные от родительного падежа личного имени, прозвища или семейства, не склоняются. Их род не определен. Они оканчиваются на -во, -их/ых. Примеры: Хитрово, Седых, Малых.

Таблица 8. Фамилии без грамматичесого рода
ПадежВопрос падежаМужская фамилияЖенская фамилияМножественное число
И.п.кто?МалыхМалыхМалых
Р.п.кого?
Д.п.кому?
В.п.кого?
Т.п.кем?
П.п.о ком?

7. В двойных фамилиях каждая часть склоняется по падежам отдельно в соответствии с описанными выше правилами.

Таблица 9. Двойные фамилии
ПадежВопрос падежаМужская фамилияЖенская фамилия
И.п.кто?Григорьев-АпполоновТкач-Преображенская
Р.п.кого?Григорьева-АпполоноваТкач-Преображенской
Д.п.кому?Григорьеву-АпполоновуТкач-Преображенской
В.п.кого?Григорьева-АпполоноваТкач-Преображенскую
Т.п.кем?Григорьевым-АпполоновымТкач-Преображенской
П.п.о ком?о Григорьеве-Апполоновео Ткач-Преображенской

Примечание. Если первая часть двойной фамилии не может употребляться отдельно, то она не склоняется: Бонч-Бруевич — Бонч-Бруевича — Бонч-Бруевичем.


Комментарии посетителей


Страницы: [1] | [2] | [3] | [4] [Следующая] | [Последняя] Идёт загрузка...

surnameonline.ru

Родительный падеж ФИО - Rus-learn.com

Особенности склонения ФИО в родительном падеже

В русском языке ФИО в родительном падеже изменяются преимущественно так же, как и другие собственные существительные – в зависимости от склонения, к которому они относятся.

Примеры фамилий имен отчеств в родительном падеже: книга Ивановой Елены Сергеевны, труды Льва Николаевича Толстого, квартира Черных Марьям Александровны.

Склонение фамилий в родительном падеже

Основные склоняемые типы и примеры фамилий в родительном падеже представлены в таблице:

Мужской родЖенский родМножественной число
Фамилии на -ов/ев, -ин/ын, -ский/ской, -цкий/цкойПетрова, Пшеницына, Чацкого, БоровскогоПетровой, Пшеницыной, Чацкой, БоровскойПетровых, Пшеницыных, Чацких, Боровских
Фамилии, созвучные прилагательнымЧерного, Крымского, Толстого, ЛихогоЧерной, Крымской, Толстой, ЛихойЧерных, Крымских, Толстых, Лихих
Фамилии, созвучные существительным (в том числе иноязычные без ударения на последний слог) Мельника, Короля, Ворона(созвучные существительным мужского рода 2 склонения)Мельник, Король, ВоронМельник, Король, Ворон
Пятницы, Кафки, Земли(созвучные существительным женского рода 1 склонения)Пятницы, Кафки, Земли Пятница, Кафка, Земля 
Фамилии с беглыми гласнымиЛьва, ЗайцаЛев, ЗаяцЛев, Заяц
Двойные фамилии Соловьева-Седого, Ткач-ПреображенскогоСоловьевой-Седой, Ткач-ПреображенскойСоловьевых-СедыхТкач-Преображенских

Склонение имен в родительном падеже

Примеры склонения имен в родительном падеже:

Мужские имена с основой на согласный или на -йМаксима, Петра, Льва, Андрея, Наиля, Сергея
Женские и мужские имена с окончанием -а (-я)Веры, Никиты, Айры, Екатерины, Даши, Жени 
Имена, которые в начальной форме имеют окончание -ия, -ьяИльи, Дарьи, Марии
Женские имена с окончанием на мягкую согласнуюНинели, Любови, Руфи, Юдифи

Обратите внимание: в имени Любовь в родительном падеже не происходит выпадение корневого гласного «о».

Склонение отчеств в родительном падеже

В родительном падеже отчества склоняются следующим образом:

Мужской родЖенский род
Ед. числоМн. числоЕд. числоМн. число
Александровича,Петровича,

Валериевича,

Ильича

Александровичей,Петровичей,

Валериевичей,

Ильичей

Александровны,Петровны,

Валериевны,

Ильиничны

Александровн,Петровн,

Валериевн,

Ильиничн

Исключения

Несклоняемые существительные, обозначающие фамилии и имена, в родительном падеже употребляются в форме, омонимичной их начальной (в И. п. единственного числа). К таким существительным относятся:

  • Французские фамилии с ударным окончанием -а (-я) (Золя, Дюма);
  • Фамилии с основой на -ко, -е, -и, -у, -ю и созвучные со средним родом на -о (Овчаренко, Петренко, Полено, Ганди, Бакидзе);
  • Фамилии без грамматического рода с основой на -их/ых (Черных, Седых, Глухих);
  • Нерусские женские имена с основой на твердую согласную и на  (Розмари, Гульжихан, Кэйт);
  • Имена с окончаниями -о, -у, -ю, -е, -ы, (Руссо, Ромео, Бабу).
Раздел: Падежи Метки: падежи

rus-learn.com

Перевести ФИО в родительный падеж

Пользовательская функция (UDF) для перевода ФИО (фамилии, имя, отчества) в родительный падеж.

 

Эту функцию можно использовать как в коде программы, так и как формулу в ячейках листа Excel
(см. пример в прикреплённом файле)

PS: Функция является переделкой аналогичной UDF для склонения в дательном падеже.
Тестировал склонение на списке разнообразных ФИО (см. первый столбец в прикреплённом файле), и заведомо корректных результатах склонения (третий столбец)

Конечно, код не идеальный, - всегда можно найти ФИО, которые будут склоняться неверно.
Но, в целом, удалось добиться весьма неплохого результата (по сравнению с прежней версией кода, и другими аналогичными функциями)

Если вы используете функции склонения для формирования документов,
обратите внимание на специализированную надстройку FillDocuments,

которая позволит вам одним нажатием кнопки создать документы Word и Excel по шаблонам, а также выполнить рассылку писем.

В указанную надстройку включены самые последние версии функций склонения.

Пример использования:

Sub ПереводФИОвРодительныйПадеж()
    ' если фамилия, имя и отчество - в одной переменной (или ячейке)
    FIO$ = "Сидоров Иван Скотиныч"
    РодительныйПадеж$ = GenitiveCase(FIO$)
    Debug.Print РодительныйПадеж$    ' результат: Сидорова Ивана Скотиныча

    ' если фамилия, имя и отчество - в разных переменных (или ячейках)
    НетКого$ = GenitiveCase("Андреева", "Ольга", "Федоровна")
    Debug.Print НетКого$    ' результат: Андреевой Ольги Федоровны
End Sub

Код функции GenitiveCase (версия от 29 января 2013 года):

Option Compare Text    ' эта строка нужна обязательно! (сравнение без учёта регистра)

Function GenitiveCase(sSurname$, Optional sName$, Optional sPatronymic$) As String
    ' Функция формирует родительный падеж из ФИО
    ' Параметры: sSurname - фамилия, sName - имя, sPatronymic - отчество
    ' © 2013 EducatedFool

    Application.Volatile True    ' автопересчёт формулы на листе
    sSurname$ = Replace(sSurname$, " - ", "-"): sSurname$ = Replace(Replace(sSurname$, " -", "-"), "- ", "-")
 
    On Error Resume Next
    If sName$ = "" And sPatronymic$ = "" Then
        arr = Split(Application.Trim(sSurname$))
        sSurname$ = arr(0): sName$ = arr(1): sPatronymic$ = Replace(arr(2), ".", "")
    End If
 
    ' пол теперь определяется иначе:   что заканчивается на "вна" или "кызы" - то женщины, остальные - мужчины.
    Dim bMaleSex As Boolean:    ' bMaleSex = (Right(sPatronymic, 1) = "ч" Or Right(sPatronymic, 4) = "оглы")
    bMaleSex = Not (Right(sPatronymic, 2) = "на" Or Right(sPatronymic, 4) = "кызы")
    If Len(sSurname) > 0 Then    '   Фамилия
        arrSurname = Split(sSurname, "-")
        For i = LBound(arrSurname) To UBound(arrSurname)    ' перебираем все части фамилий, содержащих дефис
            sRes = "": sSurnamePart = arrSurname(i)
 
            If bMaleSex Then    ' мужские фамилии
                Select Case Right(sSurnamePart, 1)
                    Case "о", "и", "ы", "у", "э", "е", "ю": sRes = sSurnamePart
                    Case "й": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "ого"
                    Case "ь": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 1) & "я"
                    Case "я": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 1) & "и"
                    Case "а": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 1) & "ы"
                        If UBound(arrSurname) > 0 And i = 0 Then sRes = sSurnamePart
                    Case Else: sRes = sSurnamePart & "а"
                End Select
 
                Select Case Right(sSurnamePart, 2)    ' добавлено, для редких фамилий
                    Case "ец":  sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "ца"
                        If LCase(sSurnamePart) Like "*[уеыаоэяиюё]ец" Then sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 1) & "ца"
                        If LCase(sSurnamePart) Like "*[!уеыаоэяиюё][!уеыаоэяиюё]ец" Then sRes = sSurnamePart & "а"
                    Case "зе", "их", "ых": sRes = sSurnamePart
                    Case "ий", "ой": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "ого"
                        If Len(sSurnamePart) <= 4 Then sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 1) & "я"
                        If Right(sSurnamePart, 3) = "чий" Then sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "его"
                    Case "уй": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "уя"
                End Select
            Else    ' женские фамилии
                Select Case Right(sSurnamePart, 1)
                    Case "о", "е", "э", "и", "ы", "у", "ю", "б", "в", "г", "д", "ж", "з", "к", "л", "м", "н", "п", _
                         "р", "с", "т", "ф", "х", "ц", "ч", "ш", "щ", "ь", "й": sRes = sSurnamePart
                    Case "а": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 1) & "ой"
                    Case "я": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "ю"
                    Case Else: sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 1) & "у"
                End Select
 
                Select Case Right(sSurnamePart, 2)    ' добавлено, для редких фамилий
                    Case "ха": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "хи"
                    Case "ла": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "лы"
                    Case "ая": sRes = Mid(sSurnamePart, 1, Len(sSurnamePart) - 2) & "ой"
                End Select
 
            End If
 
            ' не склоняются мужские и женские фамилии, оканчивающиеся на -о, -е, -э, -и, -ы, -у, -ю,
            ' а также на -а с предшествующей гласной
            If LCase(sSurnamePart) Like "*[уеыаоэяиюё]а" Then sRes = sSurnamePart
 
            arrSurname(i) = sRes
        Next
        GenitiveCase = Join(arrSurname, "-") & " "    ' соединяем части склоняемой фамилии обратно в одну строку
    End If
    If Len(sName) > 0 Then    '   Имя
        NameException$ = GetGenitiveException(sName)
        If Len(NameException$) Then    ' для имен-исключений
            GenitiveCase = GenitiveCase & NameException$
        Else    ' имя не найдено в списке исключений
            If bMaleSex Then
                Select Case Right(sName, 1)
                    Case "й", "ь": GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "я"
                    Case "а": GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "ы"
                    Case "я": GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "и"
                    Case "о": GenitiveCase = GenitiveCase & sName
                    Case Else: GenitiveCase = GenitiveCase & sName & "а"
                End Select
            Else
                Select Case Right(sName, 1)
                    Case "а": GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "ы"
                    Case "я": GenitiveCase = GenitiveCase & Mid(sName, 1, Len(sName) - 1) & "и"
                    Case Else: GenitiveCase = GenitiveCase & sName
                End Select
            End If
        End If
        GenitiveCase = GenitiveCase & " "
    End If
    If Len(sPatronymic) > 0 Then    '   Отчество
        If Right(sPatronymic, 4) = "оглы" Or Right(sPatronymic, 4) = "кызы" Then
            GenitiveCase = GenitiveCase & sPatronymic
        Else
            If bMaleSex Then
                GenitiveCase = GenitiveCase & sPatronymic & "а"
            Else
                GenitiveCase = GenitiveCase & Mid(sPatronymic, 1, Len(sPatronymic) - 1) & "ы"
            End If
        End If
    End If
    GenitiveCase = Replace(GenitiveCase, "-", "- "):    GenitiveCase = StrConv(GenitiveCase, vbProperCase):    GenitiveCase = Replace(GenitiveCase, "- ", "-")
End Function

Function GetGenitiveException(ByVal txt$) As String    ' склонение имён-исключений
    Select Case txt$
        Case "Павел": GetGenitiveException = "Павла"
        Case "Лев": GetGenitiveException = "Льва"
        Case "Пётр": GetGenitiveException = "Петра"
        Case "Любовь": GetGenitiveException = "Любови"
 
            ' без изменения (не склоняются) - перечисляем через запятую
        Case "Али", "Бали": GetGenitiveException = txt$
    End Select
End Function
ВложениеРазмерЗагрузкиПоследняя загрузка
Dative_and_Genitive_Case.zip - склонение в родительный и дательный падеж на VBA72.28 КБ74 года 33 недели назад

Не получается применить макрос? Не удаётся изменить код под свои нужды?

Оформите заказ у нас на сайте, не забыв прикрепить примеры файлов, и описать, что и как должно работать.

excelvba.ru

Склонение имен по падежам

Русские имена бывают мужские и женские. Не бывает имен среднего и общего рода в отличие от фамилий. Имена склоняются в соответствии с правилами русского языка и определяются буквой, на которую оканчиваются, и склонением. Рассмотрим случаи.

1. Мужские имена, оканчивающиеся на согласный и на –й, склоняются, как существительный мужского рода:

ПадежВопрос падежаМужское имя
И.п.кто?Алесей, Михаил
Р.п.кого?Алексея, Михаила
Д.п.кому?Алексею, Михаилу
В.п.кого?Алексея, Михаила
Т.п.кем?Алексеем, Михаилом
П.п.о ком?об Алексее, о Михаиле

В иноязычных именах, пишущихся через дефис, склоняется последняя часть: Хорун-оол — Хорун-оолу; Шой-Сюрюн — Шой-Сюрюна.

2. Мужские и женские имена, оканчивающиеся на –а:

ПадежВопрос падежаМужское имяЖенское имя
И.п.кто?НикитаМарина
Р.п.кого?НикитыМарины
Д.п.кому?НикитеМарине
В.п.кого?НикитуМарину
Т.п.кем?НикитойМариной
П.п.о ком?о Никитео Марине

3. Мужские и женские имена, оканчивающиеся иа -я, -ья, -ия, -ея:

ПадежВопрос падежаМужское имяЖенское имя
И.п.кто?ИльяНаталья, Мария
Р.п.кого?ИльиНатальи, Марии
Д.п.кому?ИльеНаталье, Марии
В.п.кого?ИльюНаталью, Марию
Т.п.кем?ИльёйНатальей, Марией
П.п.о ком?об Ильео Наталье, о Марии

Примечание. Имена на -ия в родительном, дательном и предложном падежах имеют окончание -ии, имена на -ья в родительном падеже имеют окончание -ьи, в дательном и предложном падежах — окончание -ье.

4. Женские имена в 3-м склонении (оканчивающиеся на -ь): Любовь, Адель, Жизель и др.:

ПадежВопрос падежаЖенское имя
И.п.кто?Любовь, Жизель
Р.п.кого?Любови, Жизели
Д.п.кому?Любови, Жизели
В.п.кого?Любовь, Жизель
Т.п.кем?Любовью, Жизелью
П.п.о ком?о Любови, о Жизели

Примечание 1. В литературе, СМИ отдельные женские имена имеют вариативное склонение, то есть их могут как склоняться, так и не склонять: Ассоль и Ассоли, Айгюль и Айгули.
Примечание 2. Некоторые женские имена фигурируют в качестве мужского: Мишель.

5. Женские имена, оканчивающиеся на твердую согласную, как правило, не склоняются: Катрин, Марьям, Элизабет, Ирен.

6. Многие заимствованные мужские и женские имена, оканчивающиеся на -о, -е, -и и другие, не склоняются: Ромео, Рене, Луи, Бруно, Лео, Пьеро, Гиви и др.

7. В заимствованных именах, пишущихся через дефис, склоняется вторая часть: Алим-Паша — Алим-Пашу, Очир-Гаря — Очир-Гарю.

Если у вас есть замечания или вы хотите что-то добавить к тексту, оставьте, пожалуйста, комментарий ниже. Для просмотра списка имен и их склонений воспользуйтесь алфавитным указателем в правом меню сайта.


Комментарии посетителей

Идёт загрузка...

surnameonline.ru

Отправить ответ

avatar
  Подписаться  
Уведомление о