Склонение по падежам в Excel
Странно, что в составе штатных формул Excel отсутствует такая полезная функция как СКЛОНЕНИЕ. Очень часто приходится склонять фамилии, например, при подготовке договора.
Функция СКЛОНЕНИЕ
Не сложно догадаться, для чего необходима функция =СКЛОНЕНИЕ(ТЕКСТ;ПАДЕЖ). Практически любое существительное или ФИО она переведет из именительного падежа в нужный падеж.
Подчеркну слово практически, так как имеются фамилии, которые без программы то сложно просклонять, но в 90% случаев макрос отрабатывает достойно. Проверяйте сложные или необычные фамилии дополнительно.
Формула имеет всего 2 аргумента:

- ТЕКСТ — Существительное, имя, фамилия или отчество в именительном падеже, который необходимо просклонять. Вы также можете использовать несколько слов в качестве аргумента. Например, указать полностью ФИО.
- ПАДЕЖ — Числовое значение определяющее падеж:
- Именительный.
- Родительный.
- Дательный.
- Винительный.
- Творительный.
- Предложный.
Вот так выглядит стандартное окно ввода параметров функции СКЛОНЕНИЕ
Функция СКЛОНЕНИЕУКР
Аналогичная функция, которая склоняет ФИО и существительные, но только на украинском языке. Синтаксис у нее также не отличается =СКЛОНЕНИЕУКР(ТЕКСТ;ПАДЕЖ).
Далее приводятся примеры, наглядно демонстрирующие работу функции.
Обращаю ваше внимание, что для корректной работы данных функций необходимо стабильное подключение к интернету, а точнее к сайту Морфер.ру. Имеется также суточное ограничение на использование функций, которое в настоящий момент составляет 1000 склонений.
Пример 1
Склонение простой фамилии по всем падежам.

Пример 2
Склонение сразу фамилии имени и отчества по всем падежам.

Пример 3
Склонение сложных фамилий и имен в родительный падеж.

Пример 4
Склонение существительных по падежам.


Надстройка
VBA-Excel
Надстройка для Excel содержит большой набор полезных функций, с помощью которых вы значительно сократите время и увеличите скорость работы с программой.
Как перевести фио в дательный падеж excel
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
| ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Склонение фамилии, имени и отчества
Трюк, который мы рассмотрим в данном разделе, удобно применять при работе со списками ФИО. С его помощью можно быстро переводить требуемые ФИО в родительный или дательный падеж. Чтобы достичь подобного эффекта, следует воспользоваться макросом, код которого приведен в листинге 3.82 (данный код записывается в стандартном модуле).
Листинг 3.82. Склонение ФИО
Public Sub PossessiveCase()
‘ Склоняем ФИО в родительный падеж
Dim strName1 As String, strName2 As String, strName3 As
strName1 = dhGetName(ActiveCell, 1) ‘ Выделяем имя
strName2 = dhGetName(ActiveCell, 2) ‘ Выделяем фамилию
strName3 = dhGetName(ActiveCell, 3) ‘ Выделяем отчество
‘ Если в ячейке менее трех слов – закрытие процедуры
If strName1 = «» Or strName2 = «» Or strName3 = «» Then Exit
Cells(ActiveCell.Row, ActiveCell.Column) = dhPossessive( _
strName1, strName2, strName3)
Public Sub DativeCase()
Dim strName1 As String, strName2 As String, strName3 As
strName1 = dhGetName(ActiveCell, 1)
strName2 = dhGetName(ActiveCell, 2)
strName3 = dhGetName(ActiveCell, 3)
‘ Если в ячейке менее трех слов – закрытие процедуры
If Len(strName1) = 0 Or Len(strName2) = 0 Or Len(strName3) = 0 _
Cells(ActiveCell.Row, ActiveCell.Column) = dhDative( _
strName1, strName2, strName3)
Function dhPossessive(strName1 As String, strName2 As String, _
strName3 As String) As String
Dim fMan As Boolean
‘ Определяем, мужские ФИО или женские
fMan = (Right(strName3, 1) = «ч»)
‘ Склонение фамилии в родительный падеж
If Len(strName1) > 0 Then
‘ Склонение мужской фамилии
Select Case Right(strName1, 1)
dhPossess ive = strName1
dhPossessive = Mid(strName1, 1, Len(strName1) – 2) + «ого»
dhPossessive = strName1 + «а»
‘ Склонение женской фамилии
Select Case Right(strName1, 1)
Case «о», «и», «б», «в», «г», «д», «ж», «з», «к», «л», _
dhPossessive = Mid(strName1, 1, Len(strName1) – 2) & «ой»
dhPossessive = Mid(strName1, 1, Len(strName1) – 1) & «ой»
‘ Склонение имени в родительный падеж
If Len(strName2) > 0 Then
‘ Склонение мужского имени
Select Case Right(strName2, 1)
dhPossessive = dhPossessive & Mid(strName2, _
1, Len(strName2) – 1) & «я»
dhPossessive = dhPossessive & strName2 & «а»
‘ Склонение женского имени
Select Case Right(strName2, 1)
Select Case Mid(strName2, Len(strName2) – 1, 1)
dhPossessive = dhPossessive & Mid( _
strName2, 1, Len(strName2) – 1) & «и»
dhPossessive = dhPossessive & Mid(strName2, _
1, Len(strName2) – 1) & «ы»
If Mid(strName2, Len(strName2) – 1, 1) = «и» Then
dhPossessive = dhPossessive & Mid(strName2, _
1, Len(strName2) – 1) & «и»
dhPossessive = dhPossessive & Mid(strName2, _
1, Len(strName2) – 1) & «и»
dhPossessive = dhPossessive & Mid(strName2, _
1, Len(strName2) – 1) & «и»
dhPossessive = dhPossessive & strName2
‘ Склонение отчества в родительный падеж
If Len(strName3) > 0 Then
dhPossessive = dhPossessive & strName3 & «а»
dhPossessive = dhPossessive & Mid(strName3, 1, _
Len(strName3) – 1) & «ы»
Function dhDative(strName1 As String, strName2 As String, _
strName3 As String) As String
Dim fMan As Boolean
‘ Определяем, мужские ФИО или женские
fMan = (Right(strName3, 1) = «ч»)
‘ Склонение фамилии в дательный падеж
If Len(strName1) > 0 Then
‘ Склонение мужской фамилии
Select Case Right(strName1, 1)
dhDative = Mid(strName1, 1, Len(strName1) – 2) + «ому»
dhDative = strName1 + «у»
‘ Склонение женской фамилии
Select Case Right(strName1, 1)
dhDative = Mid(strName1, 1, Len(strName1) – 2)
dhDative = Mid(strName1, 1, Len(strName1) – 1)
‘ Склонение имени в дательный падеж
If Len(strName2) > 0 Then
‘Склонение мужского имени
Select Case Right(strName2, 1)
dhDative = dhDative & Mid(strName2, 1, _
Len(strName2) – 1) & «ю»
dhDative = dhDative & strName2 & «у»
‘ Склонение женского имени
Select Case Right(strName2, 1)
If Mid(strName2, Len(strName2) – 1, 1) = «и» Then
dhDative = dhDative & Mid(strName2, 1, _
Len(strName2) – 1) & «и»
dhDative = dhDative & Mid(strName2, 1, _
Len(strName2) – 1) & «е»
dhDative = dhDative & Mid(strName2, 1, _
Len(strName2) – 1) & «и»
dhDative = dhDative & strName2
‘ Склонение отчества в дательный падеж
If Len(strName3) > 0 Then
dhDative = dhDative & strName3 & «у»
dhDative = dhDative & Mid(strName3, 1, Len(strName3)
Function dhGetName(strString As String, intNum As Integer)
‘ Функция возвращает слово с номером intNum во входной строке _
Dim strTemp As String
Dim intWord As Integer
Dim intSpace As Integer
‘ Удаление пробелов по краям строки
‘ Просмотр строки (до слова с нужным номером)
For intWord = 1 To intNum – 1
‘ Поиск следующего пробела
If intSpace = 0 Then
‘ Строка strTemp теперь начинается со слова с номером
strTemp = Trim(Right(strTemp, Len(strTemp) – intSpace))
‘ Выделение нужного слова (по пробелу после него)
If intSpace = 0 Then
dhGetName = Trim(Left(strTemp, intSpace))
Чтобы ФИО отобразились в родительном падеже, следует установить курсор в ячейку с этими ФИО и запустить макрос PossessiveCase; в дательном падеже – макрос DativeCase (после написания кода эти макросы будут доступны в окне выбора макросов).
Внимание!
Для реализации трюка необходимо соблюдать условие – ячейка должна содержать не менее трех слов. В противном случае операция выполнена не будет.
Следует учитывать, что в ячейке сначала должна следовать фамилия, за ней – имя, и затем – отчество.
Данный макрос не всегда способен корректно обрабатывать сложные имена и фамилии.
Как перевести фио в дательный падеж excel

Эта функция выполняет 3 основные операции:
- Выстраивает ФИО в правильном порядке, если в исходных данных они стоят неправильно.
- Склоняет ФИО в родительном и дательном падежах.
- Выводит, при необходимости, сокращенную форму (Фамилия И.О.)
Синтаксис
=FIO( NameAsText ; NameCase ; ShortForm )
- NameAsText – ячейка с исходным ФИО (полным или без отчества)
- NameCase – символьный код падежа («Д» или «D» – дательный; «Р» или «R» – родительный). По умолчанию – без преобразования.
- ShortForm – числовое значение, задающее сокращенную форму. По умолчанию, принимается за 0 (без преобразования).
В самом простом варианте эту функцию можно использовать для выстраивания ФИО в правильном порядке:

Со вторым аргументом можно преобразовать ФИО в требуемый падеж:

Третий (необязательный) аргумент позволит выводить ФИО в нужном падеже и, дополнительно, в сокращенной форме:
Безусловно, найдутся зубодробительные ФИО, где эта функция сработает некорректно, ибо русский язык велик и могуч. Однако, с 99,9% процентами типичных российских имен все работает вполне успешно (тестировал на 5000+ ФИО реальных людей).