Перейти к содержимому

Как перевести фио в дательный падеж excel

  • автор:

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

Странно, что в составе штатных формул Excel отсутствует такая полезная функция как СКЛОНЕНИЕ. Очень часто приходится склонять фамилии, например, при подготовке договора.

Функция СКЛОНЕНИЕ

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

Подчеркну слово практически, так как имеются фамилии, которые без программы то сложно просклонять, но в 90% случаев макрос отрабатывает достойно. Проверяйте сложные или необычные фамилии дополнительно.

Формула имеет всего 2 аргумента:

Диалоговое окно функции СКЛОНЕНИЕ

  • ТЕКСТ — Существительное, имя, фамилия или отчество в именительном падеже, который необходимо просклонять. Вы также можете использовать несколько слов в качестве аргумента. Например, указать полностью ФИО.
  • ПАДЕЖ — Числовое значение определяющее падеж:
  1. Именительный.
  2. Родительный.
  3. Дательный.
  4. Винительный.
  5. Творительный.
  6. Предложный.

Вот так выглядит стандартное окно ввода параметров функции СКЛОНЕНИЕ

Функция СКЛОНЕНИЕУКР

Аналогичная функция, которая склоняет ФИО и существительные, но только на украинском языке. Синтаксис у нее также не отличается =СКЛОНЕНИЕУКР(ТЕКСТ;ПАДЕЖ).

Далее приводятся примеры, наглядно демонстрирующие работу функции.

Обращаю ваше внимание, что для корректной работы данных функций необходимо стабильное подключение к интернету, а точнее к сайту Морфер.ру. Имеется также суточное ограничение на использование функций, которое в настоящий момент составляет 1000 склонений.

Пример 1

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

Пример 1 работы функции СКЛОНЕНИЕ в Excel

Пример 2

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

Пример 2 работы функции СКЛОНЕНИЕ в Excel

Пример 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

Функция FIO

Эта функция выполняет 3 основные операции:

  • Выстраивает ФИО в правильном порядке, если в исходных данных они стоят неправильно.
  • Склоняет ФИО в родительном и дательном падежах.
  • Выводит, при необходимости, сокращенную форму (Фамилия И.О.)
Синтаксис

=FIO( NameAsText ; NameCase ; ShortForm )

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

В самом простом варианте эту функцию можно использовать для выстраивания ФИО в правильном порядке:

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

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

Различные формы ФИО

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Школа онлайн с государственным аттестатом