Формула склонения в excel
Формула склонения в excel
Функция позволяет выводить фамилию, имя и отчество, заданные в именительном падеже, в форме любого другого падежа.
Область применения:
Функцию удобно использовать для автоматизации формирования документов в MS Excel (или облегчения создания их вручную), где ФИО необходимо указывать не в именительном падеже: различного рода договоры, кассовые ордера, квитанции, акты сверок, приказы, протоколы, доверенности и т.д.
Функция также незаменима, если средствами автоматизации реализовано формирование перечисленных выше документов в приложении MS Word на основании данных, находящихся в таблицах MS Excel.
Примеры использования:
- в договоре: «в лице руководителя Баранова Петра Вячеславовича«
- в кассовых ордерах: «выдано Гнатюку Павлу Васильевичу«, «получено от Гриценко Ирины Сергеевны«
- в доверенности: «доверяю управление траспортным средством Смирницкому Виталию Валерьевичу«
- в приказе: «назначить на должность Степашову Ольгу Николаевну«
- в протоколе: «доклад подготовлен Дворжецким Никитой Ивановичем«
Что реализовано:
- корректно склоняются фамилии со всеми распространенными на территории стран СНГ окончаниями «-ов», «-ев», «-ин», «-ян(ц)», «-ский(-цкий)», «-ской(-цкой)», «-ый», «-ых», «-их», «-ец», «-нко», «-ук», «-юк», «-ич», «-ия» и др.: Павлов, Зиновьев, Гагарин, Петросян, Высоцкий, Трубецкой, Цой, Задорожный, Садовничий, Седых, Долгих, Сосковец, Нестеренко, Гончарук, Данилюк, Рабинович, Данелия, Кваша, Врубель, Козак, Казачок и т.д., а также соответствующие женские фамилии
- учитываются отличия в склонении мужских и женских фамилий: Ткачу Виктору и Ткач Светлане, Козовцу Антону и Козовец Екатерине
- корректно обрабатываются составные фамилии: например, Мамин-Сибиряк, Салтыков-Щедрин, Немирович-Данченко, Лебедев-Кумач
- не склоняются иноязычные фамилии: Галуа, Моруа, Дефо, Дали, Безе, Верди, Гарсиа, Хэмингуэй и пр.
- успешно обрабатываются отчества с частицами «-оглы», «-кызы», «ибн»: Мамедов Полад Муртуза оглы -> Мамедовым Поладом Муртуза оглы, Гассан Абдурахман ибн Хаттаб -> Гассаном Абдурахманом ибн Хаттабом, Абу Али ибн Сина -> Абу Али ибн Синой
- автоматически по отчеству определяется пол (мужской/женский) и исходя из этого выбираются соответствующие правила склонения
- для ситуаций, когда пол автоматически определить затруднительно (отчество иностранное или отсутствует), можно указать пол в качестве параметра функции
- возможен вывод в сокращенном виде «фамилия + инициалы»: Полозову Н. А., Васильевой А. К., Дворжецкому Е. Е.
- возможность использования как в виде надстройки (можно использовать во всех файлах на данном рабочем месте), так и в виде кода, внедренного в файл (функция будет работать в данном файле на любом рабочем месте — удобно, если файл, например, отправляется контрагенту)
- открытый программный код — при желании можно изучать алгоритм либо модифицировать
Как подключить?
Программа представляет собой один файл с названием bdgFIOPropisyu.bas. Для того, чтобы использовать ее в том или ином файле, функцию нужно импортировать в этот файл. Для этого необходимо:
- открыть файл MS Excel, в котором требуется использовать функцию
- войти в редактор VBA по нажатию горячей клавиши «Alt + F11» или через меню:
- в MS Excel 2007 — через пункт ленты «Разработчик»:
- в MS Excel 2003 — через пункт главного меню «Сервис -> Макрос -> Редактор Visual Basic»:
- в MS Excel 2007 — через пункт ленты «Разработчик»:
- в главном меню редактора VBA выбрать пункт «File» -> «Import file. «:
- в появившемся окне выбора файла выбрать файл bdgFIOPropisyu.bas и нажать кнопку «Открыть»:
В результате этих действий в проводнике проекта в левой части экрана появится ветвь «Modules» (если ее еще не было), раскрыв которою можно увидеть строку bdgFIOPropisyu. А дважды кликнув по этой строке справа можно увидеть текст самой функции ФИОВПадеже:
Все, программный код импортирован и его можно использовать.
Как использовать?
- выделите курсором ячейку, в которой хотите поместить результат функции
- нажмите на пиктограмму «Вставить функцию» на панели формул:
- в появившемся окне Мастера функций выберите категорию «Определенные пользователем», затем в списке выделите название функции «ФИОВПадеже» и нажмите кнопку «ОК»:
- и далее в окне Аргументы функций заполните поля: в полях Фамилия, Имя и Отчество укажите ссылки на ячейки с соответствующими значениями, а в поле Падеж укажите число от 1 до 6 (номер падежа от именительного до предложного) и нажмите кнопку «ОК»:
В результате в выделенной ячейке отобразится результат вычисления функции.
Вот еще несколько примеров ее использования:
Ситуации, когда работа функции может быть некорректной:
Несмотря на то, что ситуаций, когда работа функции может быть неудовлетворительной, ниже перечислено немало, вероятность столкновения с таким ФИО в практической работе достаточно мала, т.к. в 99,9% случаев фамилии, встречающиеся на территории России, склоняются по общим правилам.
Кроме того, следует заметить, что другие алгоритмы и программы также не могут гарантировать корректность результата в 100% случаев — русский язык слишком велик и могуч, чтобы быть описанным набором логических правил (смотрите ниже про влияние положения ударения в слове, происхождения фамилии, про зависимость написания женской формы фамилии от написания мужской формы и т.д.).
- По правилам русского языка склонение мужских и женских иноязычных фамилий, оканчивающихся на «-а» и «-я», зависит от места ударения в слове и происхождения фамилии.
Все фамилии, кончающиеся на неударное «-а» после согласных, склоняются: Сенека -> Сенеки, Петрарка -> Петрарки, Сметана -> Сметаны, Куросава -> Куросавы, Глинка -> Глинки, Окуджава -> Окуджавы и др. Склонение фамилий с ударным «-а» на конце зависит от ее происхождения: не склоняются фамилии французского происхождения: Дюмá, Дегá, Фермá, Петипá и т.д., фамилии иного происхождения (из славянских и восточных языков) склоняются: Митта -> Митты, Кваша -> Кваши, Сковорода -> Сковороды, Кочерга -> Кочерги, Хамза -> Хамзы и др.
Аналогично, французские по происхождению фамилии с ударным «-я» на конце несклоняемы: Золя, Труайя . Все прочие фамилии на «-я» склоняемы: Головня -> Головни, Данелия -> Данилии, Берия -> Берии, Гойя -> Гойи .
Поскольку программно определить положения ударения и происхождение фамилии невозможно, в алгоритме программы принято допущение, что все подобные фамилии склоняются по общим правилам. Поэтому французские фамилии с ударением на окончании обрабатываются программой некорректно: Дюма -> Дюмы, Золя -> Золи, Петипа -> Петипы . - Мужские фамилии, оканчивающиеся на «-ий», «-ый», «-ой», склоняются как прилагательные Горький -> Горького, Блаженный -> Блаженного, Броневой -> Броневого . Исключения составляют случаи, когда фамилия с таким окончанием — нарицательное существительное ( Козодой, Водопой, Гений, Сценарий ) либо иноязычна по происхождению ( Цой, Цхой, Чой ). Так как программно не определить, является ли фамилия подобным исключением, условно принято, что все фамилии с окончаниями «-ий», «-ый», «-ой» склоняются как прилагательные. В подавляющем большинстве случаяв это верно, однако в исключительных случаях с фамилиями-существительными результат функции будет ошибочным: Козодой Яков -> Козодого Якова, Гений Стефан -> Генего Стефана .
Однако, в виде исключения в алгоритме учтено склонение фамилий с данными окончаниями и длиной менее 5 букв (преимущественно корейских по происхождению): Цой Виктор -> Цоя Виктора . - В ряде случаев корректное склонение женской фамилии, оканчивающейся на «-ина», «-ова», возможно только, если известно склонение соответствующей ей мужской фамилии: Жемчужина Людмила, Малина Светлана могут склоняться как в обычной форме: Жемчужина Людмила -> Жемчужиной Людмилы, Малина Светлана -> Малиной Светланы (если соответствующими мужскими фамилиями являются, например, Жемчужин Борис и Малин Олег), так и в форме существительного: Жемчужина Людмила -> Жемчужины Людмилы, Малина Светлана -> Малины Светланы (если мужские формы фамилии, например, Жемчужина Борис и Малина Олег).
Учесть подобные нюансы в алгоритме невозможно, поэтому все женские фамилии функцией обрабатываются по единым правилам (как прилагательные), что в отдельных случаях может приводить к неверным результатам. - Похожая ситуация обстоит с мужскими и женскими фамилиями, оканчивающимися на «-ов(а)», «-ев(а)», «-ин(а)», которые омонимичны нарицательным существительным: Боров, Лев, Филин, Барин, Корова, Сова, Картина, Перина, Старина и т.д. ). Ни по каким формальным признакам программно установить идентичность фамилии и существительного нет возможности, поэтому склонение подобных фамилии по единым общим правилам приводит к некорректным результатам вида: Лев Павел -> Левым Павлом, Филин Сергей -> Филиным Сергеем, Корова Ксения -> Коровой Ксении, Сова Ольга -> Совой Ольги, Картина Алла -> Картиной Аллы .
- Мужские фамилии, оканчивающиеся на мягкий знак, склоняются: Врубель Михаил -> Врубеля Михаила, Гоголь Николай -> Гоголя Николая и т.д. Однако при склонении окончания таких фамилий зависят от того, существительными какого рода — мужского, женского или среднего — они являются.
Алгоритмически определить род существительного не представляется возможным, поэтому в тех случаях, когда мужская фамилия является существительным женского или среднего рода, функция будет работать некорректно: Сталь Иван -> Сталя Ивана, Полынь Виктор -> Полыня Виктора . - Образование творительного падежа фамилий, оканчивающихся на «-жа», «-ца», «-ча», «-ша», «-ща», зависит от ударения в слове: если это окончание является безударным, то при склонении оно меняется на «-ей»: Капица Петр -> Капицей Петром, Туча Федор -> Тучей Федором ; если же окончание удареное, оно заменяется на «-ой»: Кваша Игорь -> Квашой Игорем, Свеча Иван -> Свечой Иваном . Аналогичная ситуация с фамилиями, оканчивающимися на «-ец»: без ударения окончание меняется на «-ем»: Палец Виктор -> Пальцем Виктором ; под ударением — на «-ом»: Сосковец Олег -> Сосковцом Олегом .
Как было сказано выше, определить положения ударения в слове программно нельзя, поэтому в алгоритме программы принято допущение, что в словах, оканчивающихся на «-жа», «-ца», «-ча», «-ша», «-ща», окончание безударное (таких слов больше), то есть творительный падеж всегда образуется окончанием «-ей». Напротив, в словах, оканчивающихся на «ец», принято, что окончание находится под ударением, то есть склонение будет с окончанием «-ом». Соответственно, в остальных случаях будут наблюдаться ошибки вида: Квашей Игорем, Свечей Иваном, Пальцом Виктором . - Согласно правилам русского языка первая часть двойной русской фамилии склоняется, если она сама по себе может употребляться как фамилия: творчество Мамина-Сибиряка, рассказ Салтыкова-Щедрина, опера Римского-Корсакова и т.д. В противном случае она не изменяется: картина Ван-Дейка, похождения Дон-Жуана, оруженосец Дон-Кихота и др. Так, например, в фамилии Семёнов-Тян-Шанский склоняется первая часть, но не вторая: труды Семёнова-Тян-Шанского .
Опять же, определить, является ли составная часть фамилии самостоятельной, алгоритмически возможности нет, поэтому для работы принято допущение, что все части составной фамилии следует склонять (в большинстве случаев это так), что в ряде ситуаций приводит к ошибкам: Вана-Дейка, Дона-Кихота, Семёнова-Тяна-Шанского . - Иностранные фамилии, оканчивающиеся на «-ов» и «-ин» в творительном падеже меняют окончание на «-ом»: Бенджамином Франклином, Чарльзом Дарвином, Чарли Чаплином, Александром Грином . «Русские» же фамилии с аналогичными окончаниями заканчиваются на «-ым»: Ивановым, Гагариным, Фонвизиным и т.д. Несмотря на то, что перечисленные выше фамилии ( Франклин, Дарвин, Чаплин, Грин ) в виде исключений учтены в алгоритме, есть небольшая вероятность, что встретится какая-либо другая аналогичная иностранная фамилия — в таком случае результат функции будет некорректен.
Правила склонения фамилий и имен использованы в соответствии с разделами 13.1 и 13.2 работы Н. А. Еськовой «Трудности словоизменения существительных. Учебно-методические материалы к практическим занятиям по курсу «Язык современной печати» (Госкомитет печати СССР. Всесоюзный институт повышения квалификации работников печати. М., 1990).
Склонение по падежам — формулы и макросы
Перевод в именительный падеж в Excel
Важно: процесс перевода слов из родительного, дательного и т.д. падежей в Excel в именительный — лемматизация. Лемматизация в Excel тоже поддерживается надстройкой !SEMTools, но здесь речь не о ней, а об обратном процессе — склонении начальной формы в остальные.
Вас также может заинтересовать склонение ФИО в Excel.
Перевод из начальной формы в остальные
Периодически специалистам, чья деятельность связана с написанием большого количества текстов — SEO/PPC специалистам, контент-менеджерам, администраторам баз данных и каталогов, копирайтерам и т.д. — бывает нужна возможность просклонять слова по падежам.
Мечта каждого — сделать это прямо в Excel с помощью простых функций.
Морфология в Excel — !SEMTools
Надстройка !SEMTools дает такую возможность! Причем как платная, так и бесплатная версия.
Пример файла с функциями
По ссылке можно скачать файл-пример, в котором использованы все функции склонения по падежам — для существительных, прилагательных и числительных. Функции будут работать автоматически у любого, кто скачал и установил надстройку !SEMTools. Надстройка совместима с Excel 2010, 2013, 2016, 2019 и Excel 365 для ОС Windows.
Отличие бесплатной версии — в ней это возможно сделать только вышеуказанными формулами.
Макросы (ниже) в бесплатной версии применить тоже получится, но присутствует ограничение — обрабатываются только часть исходных данных, треть данных заменяется дисклеймером «Доступно в полной версии».
Макросы склонения по падежам в Excel
Активированная версия надстройки поддерживает и формулы, и макросы. Макросы можно вызывать с помощью меню «Слова» в группе «ИЗМЕНИТЬ«.
Меню склонения по падежам в !SEMTools
Как и большинство остальных макросов надстройки, макросы склонения работают «на месте», поэтому строго рекомендуется производить операции на копии столбца с исходными данными. Для корректной работы слова должны быть в начальной форме — именительном падеже.
ВАЖНО: как функции, так и макросы склонения не знают, какие части речи им дали на вход, и смотрят только на окончания, склоняя все слова в ячейке как существительные или прилагательные.
Склонение существительных
Число | Доступные словоформы для склонения |
---|---|
Единственное | Единственное число: родительный, дательный, винительный, творительный, предложный Множественное число: именительный, родительный, дательный, винительный, творительный, предложный |
Множественное | Родительный, дательный, винительный, творительный, предложный — любой вариант |
Объяснение к таблице ниже: если исходная словоформа в именительном падеже множественного числа, из нее можно произвести только падежи множественного. Чтобы получить словоформы единственного числа, потребуется сначала преобразовать слова в их леммы (именительный падеж единственного числа) с помощью процедуры лемматизации. И уже после этого склонять в любые другие.
Очень хочется довести функционал до совершенства, но склонение существительных практически не поддается простой алгоритмизации — есть десятки правил и сотни исключений из них.
Склонение прилагательных
Аналогично склонению существительных, надстройка может генерировать любые словоформы для леммы
Форма | Отвечает на вопрос | Доступные словоформы для склонения |
---|---|---|
Лемма (единственное число, именительный падеж, мужской род) | Какой? | Все остальные из 36 словоформ, кроме исходной: 3 рода (мужской, женский, средний) * 2 числа (единственное, множественное) * 6 падежей (именительный, родительный, дательный, винительный, творительный, предложный) |
Именительный падеж, женский род | Какая? | 11 падежей женского рода: Единственное число: родительный, дательный, винительный, творительный, предложный Множественное число: именительный, родительный, дательный, винительный, творительный, предложный |
Именительный падеж, средний род | Какое? | 11 падежей среднего рода: Единственное число: родительный, дательный, винительный, творительный, предложный Множественное число: именительный, родительный, дательный, винительный, творительный, предложный |
Склонение чисел (имен числительных)
Числительные при склонении меняют не только окончания, но и меняются в середине. Алгоритм разработки решения, которое учитывало бы все вариации, довольно сложен и пестрит множеством условий. Надстройка решает и эту задачу. Особенно здорово функции выглядят в сочетании с функционалом число прописью, смотрите пример:
На примере ниже показано склонение обычных числительных. Используется макрос склонения существительных в единственном числе. При этом, если числительные созвучны с прилагательными (например, «тридцать четвертая«), нужно использовать макросы склонения прилагательных.
Склонение числительных в Excel
Склонение ФИО в Excel
Склонение ФИО отличается от обычного склонения слов по падежам и имеет ряд особенностей:
- Склонение фамилий зависит от рода имени-отчества — армянские фамилии и фамилии, созвучные с нарицательными существительными, не склоняются для женщин (Абрамян Аревик Альбертовны)
- При этом они склоняются для мужчин (Хачатуряна Артура Сергеевича)
- Фамилии склоняются как прилагательные, но в некоторых падежах — иначе
- Есть ряд исключений в склонении женских имен, например, Любовь — Любови (а не Любви).
- Есть огромное количество несклоняемых мужских и женских имен, заканчивающихся на те же сочетания букв, что и склоняемые (Эрик склоняется, Аревик — нет)
- И даже есть имена (например, Адель), являющиеся одновременно и мужскими и женскими, и склоняющиеся по-разному в зависимости от этого.
Реализовать функцию или макрос, которые бы идеально обрабатывали эти кейсы, невероятно сложно. Но все эти проблемы были решены при разработке специальных макросов склонения фамилий-имен-отчеств в !SEMTools.
Корректность работы была проверена на базе в 350.000 ФИО. Для корректной работы список ФИО должен содержать как фамилии, так имена и отчества в их полных формах в именительном падеже. Ниже примеры использования:
Перевод ФИО из именительного в родительный падеж
Когда нужно написать в шапке документа, от кого он, когда известна только начальная форма. Пример ниже:
Склонение ФИО в родительном падеже
Перевод ФИО из именительного в дательный падеж
Частая история, когда нужно кому-нибудь что-нибудь выплатить. Полезная сопутствующая функция — сумма прописью с копейками в Excel.
Склонение ФИО в дательном падеже
Перевод ФИО из именительного в винительный падеж
Данная функция понадобится, когда нужно кого-нибудь наградить, перевести в другой отдел или назначить на новую должность.
Склонение ФИО в винительном падеже
Остальные падежи
Перевод ФИО из именительного в творительный и предложный падежи происходят абсолютно по тому же сценарию:
- выделяем список,
- выбираем нужный падеж,
- получаем результат. Просто и быстро.