Перевод в родительный падеж в excel

Перевод имени в родительный падеж

Всем привет.
Не могу в просторах интернета найти решения для своей задачи.
На форме заполняется Фамилия, Имя и Отчество.
Далее печатается заявление и в шапке от кого нужно мое фио перевести в родительный падеж.
Типа:
Дано:

Баев
Виктор
Вячеславович

Результат:
Баева
Виктора Вячеславовича

04.07.2019, 08:15

Склонение фамилий в родительный падеж
Всем привет, есть ли готовые макросы для Word которые будут склонять фамилии в род.падеж?

Пользовательская функция замены в родительный падеж
Ребят, всем привет, может такая тема уже есть, но найти не смогла. Ситуация такая, написала.

Склонение слова в предложный падеж
Здравствуйте, вот снова обращаюсь к Вам за помощью. Нужно склонить слово по предложному падежу.

Родительный падеж
Здравствуйте. Столкнулся с проблемой падежей при выводе: названия регионов хранятся в базе.

04.07.2019, 08:40 2
Visual Basic
04.07.2019, 08:41 [ТС] 3

tabbols95, А если
Баева Ольга Владимировна?

Тут что то по серьезней надо

04.07.2019, 08:42 4
04.07.2019, 08:43 [ТС] 5
04.07.2019, 08:43 6
04.07.2019, 08:45 [ТС] 7

Я и спрашиваю может у кого то есть уже рабочий и который он использует

Добавлено через 56 секунд
Я много перерыл в инете.
Пару для access нашел, но не корректно работает. Остальные для Excel

04.07.2019, 08:56 8

сколько раз попадались примеры все они были в виде функций
(т.е. написаны на чистом языке без привязки к программе)

а вот 100% корректности вы никогда не получите

04.07.2019, 08:58 [ТС] 9
04.07.2019, 09:11 10
04.07.2019, 09:21 [ТС] 11
04.07.2019, 09:57 12

А всего-то делов в поиске набрать название вашей темы

04.07.2019, 09:59 [ТС] 13
04.07.2019, 12:48 14

vb001, собираем из базы ACCESS фамилию имя отчество, запускаем макрос, думаю, что и в ACCESS он будет работать, и после склонения снова все заносим в базу. Или я что-то не понимаю? Думаю, что и с полями ACCESS можно будет работать напрямую, если немного адаптировать.

Добавлено через 9 минут
прочитал внимательнее ссылку сам, да это похоже на онлайн. Думаю, где-нибудь есть и макрос ВБА, а они будут работато во всём офисе

Источник: www.cyberforum.ru

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

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

Новые версии функций (изменения от 2019 года) доступны в надстройке FIO + Propis

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

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

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

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

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

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

Код функции 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) 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

‘ не склоняются мужские и женские фамилии, оканчивающиеся на -о, -е, -э, -и, -ы, -у, -ю,
‘ а также на -а с предшествующей гласной
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

Источник: excelvba.ru

Склонение по падежам — формулы и макросы

Перевод в именительный падеж в 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.

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

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

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

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

Остальные падежи

Перевод ФИО из именительного в творительный и предложный падежи происходят абсолютно по тому же сценарию:

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

Источник: semtools.guru

Перевод в родительный падеж в excel

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

Сообщение отредактировал максимка – Вторник, 28 Марта 2006, 15:16

Группа: Участник
Сообщений: 34
Регистрация: 08.09.2004
Пользователь №: 7317
Конфигурация

Такой формулы нет. Нужно писать макрос.
Можно за пределами области печати сделать ячейку с выбором окончаний
непример: В ячейке N5 выбор “ву”;”ов”;”ва”
и в основной ячейке записать формулу вида : =”Иван”&N5
И ручками выбирать.

Что касается автонумерации, то в A1 поставь 1 в B1 поставь формулу =A1+1, будет автонумерация.
глянь примеры здесь: http://gb.by/node.phtml?index=4&id=&key=

Группа: Гость форума
Сообщений: 1
Регистрация: 03.04.2006
Пользователь №: 11063
Конфигурация

Вот функции (необходимо проверить)
‘Для Имен
Function Rod_Imya(LName As String) As String
Dim FromSuffix As Variant
Dim ToRodSuffix As Variant
Dim ln As Integer, suff As String, i As Integer

FromSuffix = Array(“ей”, “ил”, “тр”, “ис”, “ег”, “ай”, “ор”, “ий”, “др”, “ел”, “ир”, “ин”, “он”, “ан”, “на”, “га”, “ия”, “ла”, “са”, “ся”, “ль”, “фа”, “да”, “ья”)
ToRodSuffix = Array(“ея”, “ила”, “тра”, “иса”, “ега”, “ая”, “ора”, “ия”, “дра”, “ла”, “ира”, “ина”, “она”, “ана”, “ны”, “ги”, “ии”, “лы”, “сы”, “си”, “ль”, “фы”, “ды”, “ьи”)

Rod_Imya = LName
If LName = “” Then Exit Function
ln = Len(LName)
suff = Mid(LName, ln – 1, 2)
For i = 0 To UBound(FromSuffix)
If FromSuffix(i) = suff Then
Rod_Imya = Mid(LName, 1, ln – 2) & ToRodSuffix(i)
Exit Function
End If
Next

‘Для Отчества
Function Rod_Otchestvo(LName As String) As String
Dim ln As Integer, suff As String

Rod_Otchestvo = LName
If LName = “” Then Exit Function
ln = Len(LName)
suff = Mid(LName, ln, 1)
If suff = “ч” Then
Rod_Otchestvo = LName & “а”
ElseIf suff = “а” Then
Rod_Otchestvo = Mid(LName, 1, ln – 1) & “ы”
End If

‘Для Фамилии
Function Rod_Familia(LName As String) As String
Dim FromSuffix As Variant
Dim ToRodSuffix As Variant
Dim ln As Integer, suff As String, i As Integer

FromSuffix = Array(“ов”, “ев”, “ин”, “он”, “ий”, “ко”, “ян”, “ич”, “ль”, “юк”, “ец”, “ух”, “ва”, “на”, “ая”)
ToRodSuffix = Array(“ова”, “ева”, “ина”, “она”, “ого”, “ко”, “яна”, “ича”, “ля”, “юка”, “еца”, “уха”, “вой”, “ной”, “ой”)

Rod_Familia = LName
If LName = “” Then Exit Function
ln = Len(LName)
suff = Mid(LName, ln – 1, 2)
For i = 0 To UBound(FromSuffix)
If FromSuffix(i) = suff Then
Rod_Familia = Mid(LName, 1, ln – 2) & ToRodSuffix(i)
Exit Function
End If
Next

« Предыдущая тема · Microsoft/Office Excel · Следующая тема »
1 чел. читают эту тему (1 Гостей и 0 Скрытых Пользователей) 0 Пользователей:

Скрыть опции темы
Подписаться на тему
Уведомление на e-mail об ответах в тему, во время Вашего отсутствия на форуме.

Подписка на этот форум
Уведомление на e-mail о новых темах в этом форуме, во время Вашего отсутствия на форуме.

Источник: www.wincity.ru

Склонение ФИО по падежам. Пользовательская функция для MS Excel

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

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

Область применения:

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

Функция также если, незаменима средствами автоматизации реализовано формирование выше перечисленных документов в приложении MS Word на основании находящихся, данных в таблицах MS Excel.

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

  • в лице: “в договоре руководителя Баранова Петра Вячеславовича
  • в ордерах кассовых: “выдано Гнатюку Павлу Васильевичу“, “Гриценко от получено Ирины Сергеевны
  • в доверенности: “доверяю траспортным управление средством Смирницкому Виталию Валерьевичу
  • в назначить: “приказе на должность Степашову Ольгу Николаевну
  • в доклад: “протоколе подготовлен Дворжецким Никитой Ивановичем

реализовано Что:

  • корректно склоняются фамилии со всеми территории на распространенными стран СНГ окончаниями “-ов”, “-ев”, “-ин”, “-ян(ц)”, “-ский(-ской)”, “-цкий(-цкой)”, “-ый”, “-ых”, “-их”, “-ец”, “-нко”, “-ук”, “-юк”, “-ич”, “-ия” и др.: Павлов, Зиновьев, Петросян, Гагарин, Высоцкий, Трубецкой, Цой, Задорожный, Седых, Садовничий, Долгих, Сосковец, Нестеренко, Гончарук, Рабинович, Данилюк, Данелия, Кваша, Врубель, Козак, также и т.д., а Казачок соответствующие женские фамилии
  • учитываются склонении в отличия мужских и женских фамилий: Ткачу Ткач и Виктору Светлане, Козовцу Антону и Козовец корректно
  • Екатерине обрабатываются составные фамилии: например, Сибиряк-Мамин, Салтыков-Щедрин, Немирович-Данченко, Кумач-Лебедев
  • не склоняются иноязычные фамилии: Галуа, Дефо, Моруа, Дали, Безе, Верди, Гарсиа, успешно и пр.
  • Хэмингуэй обрабатываются отчества с частицами “-оглы”, “-ибн”, “кызы”: Мамедов Полад Муртуза оглы -> Поладом Мамедовым Муртуза оглы, Гассан Абдурахман Хаттаб ибн -> Гассаном Абдурахманом ибн Хаттабом, Али Абу ибн Сина -> Абу Али Синой ибн
  • автоматически по отчеству определяется пол (женский/мужской) и исходя из этого выбираются соответствующие склонения правила
  • для ситуаций, когда пол определить автоматически затруднительно (отчество иностранное или можно), отсутствует указать пол в качестве параметра возможен
  • функции вывод в сокращенном виде “фамилия + Полозову”: инициалы Н. А., Васильевой А. К., Дворжецкому Е. Е.
  • возможность использования виде в как надстройки (можно использовать во всех данном на файлах рабочем месте), так и в виде внедренного, кода в файл (функция будет работать в файле данном на любом рабочем месте – удобно, файл если, например, отправляется контрагенту)
  • открытый код программный – при желании можно изучать либо алгоритм модифицировать

Как подключить?

Программа собой представляет один файл с названием bdgFIOPropisyu.Для. bas того, чтобы использовать ее в том ином или файле, функцию нужно импортировать в файл этот. Для этого необходимо:

  1. открыть Excel MS файл, в котором требуется использовать функцию
  2. редактор в войти VBA по нажатию горячей клавиши “F11 + Alt” или через меню:
    • в MS Excel через – 2007 пункт ленты “Разработчик”:
    • в MS Excel через – 2003 пункт главного меню “Сервис -> Редактор -> Макрос Visual Basic”:
  3. в главном меню VBA редактора выбрать пункт “File” -> “Import появившемся. “:
  4. в file окне выбора файла выбрать bdgFIOPropisyu файл.bas и нажать кнопку “Открыть”:

В этих результате действий в проводнике проекта в левой экрана части появится ветвь “Modules” (если ее было не еще), раскрыв которою можно увидеть bdgFIOPropisyu строку. А дважды кликнув по этой строке можно справа увидеть текст самой функции Все:

ФИОВПадеже, программный код импортирован и его использовать можно.

Как использовать?

  1. выделите курсором которой, в ячейку хотите поместить результат функции
  2. пиктограмму на нажмите “Вставить функцию” на панели формул:
  3. в окне появившемся Мастера функций выберите категорию “пользователем Определенные”, затем в списке выделите название ФИОВПадеже “функции” и нажмите кнопку “ОК”:
  4. и далее в окне функций Аргументы заполните поля: в полях Фамилия, Отчество и Имя укажите ссылки на ячейки с соответствующими поле, а в значениями Падеж укажите число от 1 до 6 (номер именительного от падежа до предложного) и нажмите кнопку “ОК”:

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

еще Вот несколько примеров ее использования:

Ситуации, работа когда функции может быть некорректной:

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

  • По русского правилам языка склонение мужских и женских фамилий иноязычных, оканчивающихся на “-а” и “-я”, зависит от места ударения в происхождения и слове фамилии.
    Все фамилии, кончающиеся на после “-а” неударное согласных, склоняются: Сенека -> Сенеки, Петрарки -> Петрарка, Сметана -> Сметаны, Куросава -> Куросавы, Глинки -> Глинка, Окуджава -> Окуджавы и др. Склонение фамилий с конце “-а” на ударным зависит от ее происхождения: не склоняются фамилии происхождения французского: Дюмa, Дегa, Фермa, Петипa и т.д., иного фамилии происхождения (из славянских и восточных языков) Митта: склоняются -> Митты, Кваша -> Кваши, Сковорода -> Кочерга, Сковороды -> Кочерги, Хамза -> Хамзы и др.
    Аналогично, происхождению по французские фамилии с ударным “-я” на конце несклоняемы: Труайя, Золя. Все прочие фамилии на “-я” склоняемы: Головни -> Головня, Данелия -> Данилии, Берия -> Берии, Гойи -> Гойя.
    Поскольку программно определить положения происхождение и ударения фамилии невозможно, в алгоритме программы допущение принято, что все подобные фамилии общим по склоняются правилам. Поэтому французские фамилии с окончании на ударением обрабатываются программой некорректно: Дюма -> Золя, Дюмы -> Золи, Петипа -> Петипы.
  • Мужские оканчивающиеся, фамилии на “-ий”, “-ый”, “-ой”, склоняются как прилагательные Горький -> Блаженный, Горького -> Блаженного, Броневой -> Броневого. Исключения случаи составляют, когда фамилия с таким окончанием – существительное нарицательное (Козодой, Водопой, Гений, Сценарий) иноязычна либо по происхождению (Цой, Цхой, Чой). как Так программно не определить, является ли фамилия исключением подобным, условно принято, что все окончаниями с фамилии “-ий”, “-ый”, “-ой” склоняются как прилагательные. В подавляющем случаяв большинстве это верно, однако в исключительных фамилиями с случаях-существительными результат функции будет Козодой: ошибочным Яков -> Козодого Якова, Гений Генего -> Стефан Стефана.

склонения Правила фамилий и имен использованы в соответствии с работы 13.1 и 13.2 разделами Н. А. Еськовой «Трудности словоизменения существительных. методические-Учебно материалы к практическим занятиям по курсу «современной Язык печати» (Госкомитет печати СССР. институт Всесоюзный повышения квалификации работников печати. М., Источник).

Источник: one_vision.jofo.me

Автоматический перевод слова в нужный падеж

Введение

Тебе приходилось, %username%, видеть на многих проектах надписи:

  • «Подружиться с Дмитрий»
  • «Опубликован Артем» (подразумевалось кем-то)
  • Etc.

Или как, например, сделал ВКонтакте:

  • «Подружиться с Андреем»
  • «Отправить Ярославу подарок»

Сегодня я расскажу, как сделать такую штуку, как «автоматический перевод слова в нужный падеж».

Из курса начальной школы мы все знаем, что существует 6 падежей:

  • Именительный (Кто? Что?)
  • Родительный (Кого? Чего?)
  • Дательный (Кому? Чему?)
  • Винительный (Кого? Что?)
  • Творительный (Кем? Чем?)
  • Предложный (О ком? О чём?)

Все мы понимаем, что без «пинка» в нужное место, слова не будут переводиться в нужный падеж, для этого я и реализовал функцию toCase():

toCase( String str, String case );

Р.: Мамы
Д.: Хабру
В.: Поросёнка
Т.: Ночью
П.: Отце

Развитие событий

Предлагаю сами внутренности функции:

В объекте с правилами (strPub) знак процента (%) принимает 2 вида, в зависимости от:

  • если в правиле имеются скобки, то знак (%) будет равен их содержимому;
  • иначе будет равен всем символам правил

Конечно, идея и реализация далеко не идеальны, поэтому буду рад вашим фидбэкам.

Всех с наступившими новогодними праздниками!

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.

  • 25 ноября 2019 в 15:24 Быстрее ли JavaScript, чем Python?
  • 18 декабря 2019 в 15:21 Устройство движка JavaScript
  • 21 января 2020 в 11:41 Бессмысленность JavaScript
  • 10 марта 2020 в 12:48 Чему меня научил мой коммит в Angular
  • 12 марта 2020 в 09:26 Асинхронный forEach

Ой, у вас баннер убежал!

Это «Песочница» — раздел, в который попадают дебютные посты пользователей, желающих стать полноправными участниками сообщества.

Если у вас есть приглашение, отправьте его автору понравившейся публикации — тогда её смогут прочитать и обсудить все остальные пользователи Хабра.

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

Не надо пропускать:

  • рекламные и PR-публикации
  • вопросы и просьбы (для них есть Хабр Q&A);
  • вакансии (используйте Хабр Карьеру)
  • статьи, ранее опубликованные на других сайтах;
  • статьи без правильно расставленных знаков препинания, со смайликами, с обилием восклицательных знаков, неоправданным выделением слов и предложений и другим неуместным форматированием текста;
  • жалобы на компании и предоставляемые услуги;
  • низкокачественные переводы;
  • куски программного кода без пояснений;
  • односложные статьи;
  • статьи, слабо относящиеся к или не относящиеся к ней вовсе.

Источник: habr.com

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

Adblock
detector