Транслитерация в excel — другими словами, русские буквы превратить в английские или латинские — довольно распространенная задача.
Часто неопытные пользователи делают транслитерацию в excel вручную, а более опытные используют многоэтажные формулы с подстановкой значений.
В этой статье мы научимся создавать небольшую пользовательскую функцию, которая умеет делать транслитерацию в Excel. В данном случае не нужно знать VBA, поскольку текст функции есть в статье, его можно просто скопировать.
Видео для тех, кто не любит читать
Итак, у нас есть таблица с ФИО сотрудников. Нужно сделать транслитерацию этих данных.
1. Нажмем клавиши Alt + F11, чтобы перейти в редактор Visual Basic.
2. В окне редактора Visual Basic перейдем в меню Insert — Module
3. Выделите следующий текст функции, скопируйте его (Ctrl + C) и вставьте в пустое окно модуля (Ctrl + V)
Function Translit(Txt As String) As String
Dim Rus As Variant
Rus = Array(«а», «б», «в», «г», «д», «е», «ё», «ж», «з», «и», «й», «к», _
«л», «м», «н», «о», «п», «р», «с», «т», «у», «ф», «х», «ц», «ч», «ш», _
«щ», «ъ», «ы», «ь», «э», «ю», «я», «А», «Б», «В», «Г», «Д», «Е», _
«Ё», «Ж», «З», «И», «Й», «К», «Л», «М», «Н», «О», «П», «Р», _
«С», «Т», «У», «Ф», «Х», «Ц», «Ч», «Ш», «Щ», «Ъ», «Ы», «Ь», «Э», «Ю», «Я»)
Dim Eng As Variant
Eng = Array(«a», «b», «v», «g», «d», «e», «jo», «zh», «z», «i», «j», _
«k», «l», «m», «n», «o», «p», «r», «s», «t», «u», «f», «kh», «ts», «ch», _
«sh», «sch», «»», «y», «‘», «e», «yu», «ya», «A», «B», «V», «G», «D», _
«E», «JO», «ZH», «Z», «I», «J», «K», «L», «M», «N», «O», «P», «R», _
«S», «T», «U», «F», «KH», «TS», «CH», «SH», «SCH», «»», «Y», «‘», «E», «YU», «YA»)
For I = 1 To Len(Txt)
с = Mid(Txt, I, 1)
flag = 0
For J = 0 To 65
If Rus(J) = с Then
outchr = Eng(J)
flag = 1
Exit For
End If
Next J
If flag Then outstr = outstr & outchr Else outstr = outstr & с
Next I
Translit = outstr
End Function
Обратите внимание, что в этом макросе знаки русского алфавита заменяются латиницей согласно ГОСТу. Если вам нужно, чтобы буквы заменялись иначе, измените их внутри макроса.
4. Закройте редактор Visual Basic. Данные сохранятся в нем автоматически.
5. Теперь установите курсор в первую ячейку, в которой нужно сделать транслитерацию.
6. Перейдите на вкладку меню Формулы — Вставить функцию.
7. В выпадающем списке Категория выберите Определенные пользователем.
8. Созданная для транслитерации функция называется Translit. Выделите ее и нажмите Ок.
9. Установив курсор в поле Txt, щелкните по первой ячейке, для которой нужно сделать транслитерацию. Нажмите Ок.
10. Скопируйте формулу до конца списка, потянув за нижний правый уголок выделенной ячейки. Транслитерация в Excel готова.
Теперь транслитерация ячеек excel будет производиться макросом автоматически, достаточно указать или вызвать формулу =Translit(). Это удобно, если у вас большой список слов для транслитерации и вручную сделать это сложно.