Как заменить русские буквы на английские в excel
Перейти к содержимому

Как заменить русские буквы на английские в excel

  • автор:

Как заменить русские буквы на английские в excel

Argument ‘Topic id’ is null or empty

Сейчас на форуме

© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru

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

ООО «Планета Эксел»
ИНН 7735603520
ОГРН 1147746834949
ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРНИП 310633031600071

Заменить русские буквы на английские в Excel

Часто бывает, что в тексте вместо английских букв (A, B, C, E, K, M, H, O, P, T) случайно введены буквы на русской раскладке. В результате слова, например, тable содержат ошибку. А если все буквы прописные (TABLE), то ошибку вовсе не заменить.

Такие ошибки накладывают ограничения на сортировку и поиск нужных данных. Для удаления этих ошибок служит функция =УБРАТЬСЛУЧКИРИЛ(ТЕКСТ), которая позволит заменить русские буквы на латинские.

Внимание! Не путайте ее с функцией транслитерации. Так как она не переводит б в b, п в p. Функция именно исправляет «Опечатки», т.е в переводится в b, т в t и так далее.

Функция имеет один аргумент

  • ТЕКСТ — строка в которой необходимо заменить случайно введенные русские буквы на английские.

Ниже приведен пример работы данной формулы.

Пример замены русских букв на английские

Код на VBA

Функция входит в состав надстройки VBA-Excel. Ниже привожу код для изучения.

Public Function УБРАТЬСЛУЧКИРИЛЛ(ТЕКСТ As String) As String Dim Rus As Variant Dim Eng As Variant Dim i As Double Dim j As Double Dim simb As String Dim FindLatin As Boolean Dim simbtrans As String Dim MergeText As String Eng = Array("a", "b", "c", "e", "k", "m", "n", "h", "o", "p", "t", "u", "y", "A", "B", "E", "K", "M", "O", "P", "C", "T", "H", "Y") Rus = Array("а", "в", "с", "е", "к", "м", "н", "н", "о", "р", "т", "и", "у", "А", "В", "Е", "К", "М", "О", "Р", "С", "Т", "Н", "У") For i = 1 To Len(ТЕКСТ) simb = Mid(ТЕКСТ, i, 1) FindLatin = False For j = 0 To 21 If Rus(j) = simb Then simbtrans = Eng(j) FindLatin = True Exit For End If Next If FindLatin Then MergeText = MergeText & simbtrans Else MergeText = MergeText & simb Next УБРАТЬСЛУЧКИРИЛЛ = MergeText End Function

Надстройка
VBA-Excel

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

Функция транслитерации в Excel

Следующий пример демонстрирует работу данной функции:

Код на VBA

Public Function ТРАНСЛИТ(ТЕКСТ As String) As String Dim Rus As Variant, Eng As Variant Dim i As Long, j As Integer Dim simb As String Dim FindRus As Boolean Dim simbtrans As String Dim MergeText As String Rus = Array("а", "б", "в", "г", "д", "е", "ё", "ж", "з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы", "ь", "э", "ю", "я", "А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж", "З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ы", "Ь", "Э", "Ю", "Я") 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(ТЕКСТ) simb = Mid(ТЕКСТ, i, 1) FindRus = False For j = 0 To 65 If Rus(j) = simb Then simbtrans = Eng(j) FindRus = True Exit For End If Next If FindRus Then MergeText = MergeText & simbtrans Else MergeText = MergeText & simb Next ТРАНСЛИТ = MergeText End Function

Надстройка
VBA-Excel

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

Как правильно в Excel переводить русские буквы в транслит

Если вам часто приходится переводить кириллицу в транслит (а попробуйте-ка сделать это для фамилии Кржижановский, например), то специальная пользовательская функция на VBA может очень помочь.

Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте через меню новый пустой программный модуль (Insert → Module) и введите туда текст этой функции.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
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

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

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

Как правильно в Excel переводить русские буквы в транслит

Как правильно в Excel переводить русские буквы в транслит

В этом макросе варианты замены русских букв английскими эквивалентами представлены согласно ГОСТу. Если для вашей задачи нужны другие версии (например, русская «я» должна выводиться как «ja», а не как «ya» и т.д.), то можно свободно подкорректировать это в теле макроса. Как легко догадаться, два первых массива Rus и Eng как раз и задают эти подстановки.

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

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