Транслитерация в excel довольно распространенная задача. Сделать транслит в 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(). Это удобно, если у вас большой список слов для транслитерации и вручную сделать это сложно.
Сообщество Excel Analytics | обучение Excel
Канал на Яндекс.Дзен
- Формула транслита с помощью стандартных функций Excel
- Формула на 64 уровня вложенности без заглавных Ъ и Ь
- Скачать файл-шаблон с транслитерацией
- Формулы транслита, итоги
- Функция на VBA
- Заменить русские буквы на английские в Excel и наоборот
Как перевести кириллицу в транслит в Excel?
Технически транслитерация — это замена по списку значений — символов на определенные их эквиваленты в другой раскладке. Значит, и задача состоит в том, чтобы в Excel осуществить эту серию замен.
Удивительно, но сделать такую массовую замену и транслитерировать текст в Excel можно множеством способов. Обо всех подробнее далее.
Наименее изящное, тем не менее, самое простое решение задачи. В Excel для замены символов есть функция ПОДСТАВИТЬ (англ. SUBSTITUTE). Формула принимает на вход 4 аргумента:
- Текст для обработки, в котором будет производиться замена (текст);
- Заменяемый фрагмент (стар_текст);
- На что заменить (нов_текст);
- Какой по счету встреченный в значении фрагмент заменить. (номер_вхождения).
Четвертый параметр является опциональным и, если он не заполнен, заменяются все встреченные в тексте фрагменты.
Как раз то, что нам нужно! Поскольку Excel позволяет составлять сложные вложенные функции, мы можем сделать эту серию замен в одной много раз вложенной формуле.
Но есть несколько проблем, которые в сочетании не дают возможность сделать идеальную единую формулу транслита. Вот они:
- В русском алфавите 33 буквы.
- Идеальная формула транслита должна сохранять при замене регистр символов. Благо, функция “ПОДСТАВИТЬ” — регистрозависимая. Получается, что нужно делать не 33, а 66 замен. Но
- в Excel есть ограничение количества уровней вложенности в одной формуле — 64.
Будь в русском алфавите хотя бы на одну букву меньше, мы бы уложились в ограничения Excel. Есть ли решение? Да, довольно простое.
Формула на 64 уровня вложенности без заглавных Ъ и Ь
Как правило, заглавные буквы в словах бывают, если это начало слова. Или если это аббревиатура, но аббревиатуры тоже составляются из первых букв слов.
А вы знаете слова, начинающиеся с Ъ или Ь?
Кажется, их можно пропустить. Так мы экономим два уровня вложенности и укладываемся в лимиты Excel (66 – 2 = 64)!
Важно также учитывать, что при транслитерации заглавных букв Ж, Ш, Ч, Щ и т.д., когда английский эквивалент состоит из нескольких букв, заглавной на латинице должна быть только первая. Интернет полон решениями, где этот момент не учтен. Итак, вот наиболее полная корректная формула:
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(
A1;
"А";"A");"Б";"B");"В";"V");"Г";"G");"Д";"D");"Е";"E");"Ё";"Yo");"Ж";"Zh");"З";"Z");"И";"I");"Й";"Y");
"К";"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");"ё";"yo");"ж";"zh");"з";"z");"и";"i");"й";"y");"к";"k");
"л";"l");"м";"m");"н";"n");"о";"o");"п";"p");"р";"r");"с";"s");"т";"t");"у";"u");"ф";"f");"х";"kh");
"ц";"ts");"ч";"ch");"ш";"sh");"щ";"sch");"ъ";"y");"ы";"y");"ь";"");"э";"e");"ю";"yu");"я";"ya")
Скачать файл-шаблон с транслитерацией
Формула выше на основе функции ПОДСТАВИТЬ с несколькими условиями может быть видоизменена – вместо явного прописывания текстовых значений, можно сделать ее на основе конкретных ячеек. Чем удобнее такой подход? Тем, что формулу менять не нужно, а данные для замены представлены в удобном для восприятия и редактирования формате в столбцах A и B.
По ссылке можно скачать файл-шаблон, в котором применены эти функции.
Формулы транслита, итоги
У подхода с созданием таких мега формул есть свои плюсы и минусы. Минус один – они громоздки и такое не так-то просто сходу набрать. Поэтому их нужно где-то хранить и копировать при необходимости.
Плюсы в основном происходят из недостатков VBA-кода:
- Формулы листа железно сработают в любой версии Excel на любом компьютере, даже с самыми жесткими политиками защиты данных.
- Они легко изменяются, если нужно переделать правила транслитерации, и довольно просты.
- Транспортабельны, т.е. формулы не “слетят”, если их отправить кому-либо и открыть на другом компьютере.
Функция на VBA
Код пользовательской функции, которая транслитерирует строчные в строчные, а заглавные – в заглавные, и при этом транслитерирует заглавные буквы Ж, Ш, Х, Ч, Щ и подобные, делая в транслите заглавной только первую букву (Zh, Sh, Kh, Ch, Sch…).
Точь-в-точь эта функция присутствует в надстройке !SEMTools и доступна всем желающим – нужно только скачать и установить !SEMTools. Далее функцию можно применять как обычную функцию Excel на листе. Например, =Translit(A1)
Function Translit(x As String) As String
cyr = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
lat = Array("", "a", "b", "v", "g", "d", "e", "e", "zh", "z", "i", "y", "k", _
"l", "m", "n", "o", "p", "r", "s", "t", "u", "f", "kh", "ts", "ch", _
"sh", "sch", "y", "y", "", "e", "yu", "ya")
For i = 1 To 33
x = Replace(x, Mid(cyr, i, 1), lat(i), , , vbBinaryCompare)
x = Replace(x, UCase(Mid(cyr, i, 1)), StrConv(lat(i), vbProperCase), , , vbBinaryCompare)
Next
Translit = x
End Function
Заменить русские буквы на английские в Excel и наоборот
Надстройка !SEMTools предлагает помимо основного еще 4 варианта замены:
- Обратный транслит (из латиницы в кириллицу);
- “Смена раскладки” – asdf -> фыва;
- Замена букв с идентичным начертанием — кириллица в латиницу;
- Аналогичная замена английских букв, похожих на русские, на действительно русские.
Последние два пункта тесно связаны с ситуациями, когда удалось найти русские слова, содержащие латиницу или английские слова с кириллическими символами, и теперь нужно исправить такой текст.
Чтобы произвести транслитерацию, достаточно просто выделить столбец с данными и вызвать нужную процедуру. Данные изменятся на месте.
Нужно сделать транслитерацию русского на латиницу в Excel или наоборот?
Быстро решить эту и более 500 других задач поможет надстройка !SEMTools.
Содержание
- Транслитерация в Excel: как сделать русские буквы латинскими автоматически
- Видео для тех, кто не любит читать
- Транслитерация в Excel
- Формула транслита с помощью стандартных функций Excel
- Формула на 64 уровня вложенности без заглавных Ъ и Ь
- Скачать файл-шаблон с транслитерацией
- Формулы транслита, итоги
- Функция на VBA
- Заменить русские буквы на английские в Excel и наоборот
- Транслит excel
- Транслит
- Некоторые функции эксель
- Транслитерация в экселе
- Транслит (Формулы/Formulas)
- Транслитерация текста в ячейке
- Транслитерация из латиницы в кириллицу
- Как преобразовать русские буквы в латиницу?
- Имена с латиницы на Кириллицу (Макросы/Sub)
- Макрос-переводчик
- Транслитерация. Сохранение форматирования текста
Транслитерация в Excel: как сделать русские буквы латинскими автоматически
Транслитерация в excel довольно распространенная задача. Сделать транслит в 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(). Это удобно, если у вас большой список слов для транслитерации и вручную сделать это сложно.
Сообщество Excel Analytics | обучение Excel
Канал на Яндекс.Дзен
Источник
Транслитерация в Excel
Содержимое скрыть 1 Формула транслитерации с использованием стандартных функций Excel 1.1 Формула для 64 уровней вложенности без прописных букв b и b 1.2 Скачать файл шаблона с транслитерацией 1.3 Формулы транслитерации, итоги 2 Функция VBA 3 Заменить русские буквы английскими буквами в Excel и наоборот
Как перевести кириллицу в транслитерацию в Excel?
Технически транслитерация — это замена списка значений — символов на их конкретные эквиваленты в другом макете. Это означает, что задача состоит в том, чтобы реализовать этот набор переопределений в Excel.
Удивительно, но есть много способов сделать такую массовую замену и транслитерировать текст в Excel. Подробнее обо всех ниже.
Формула транслита с помощью стандартных функций Excel
Наименее элегантное, но самое простое решение проблемы. В Excel есть функция REPLACE для замены символов. Формула принимает 4 аргумента в качестве входных данных:
- Текст для обработки, в котором будет произведена замена (текст)
- Фрагмент для замены (old_text)
- На что заменить (новый_текст)
- Какой фрагмент встречается по смыслу, подлежащему замене. (число_звук)
Четвертый параметр является необязательным, и если он не заполнен, заменяются все фрагменты, встречающиеся в тексте.
Как раз то, что нам нужно! Поскольку Excel позволяет составлять сложные вложенные функции, мы можем выполнять эту серию замен во вложенной формуле много раз.
Но есть несколько проблем, которые в совокупности не позволяют создать идеальную унифицированную формулу транслитерации. Они здесь:
- В русском алфавите 33 буквы
- Идеальная формула транслитерации должна сохранять заглавные буквы во время замены. К счастью, функция REPLACE чувствительна к регистру. Получается, нужно сделать не 33, а 66 замен. Но
- в Excel есть ограничение на количество уровней вложенности в формуле: 64.
Если бы в русском алфавите было хотя бы на одну букву меньше, мы были бы в рамках Excel. Есть выход? Да, довольно просто.
Формула на 64 уровня вложенности без заглавных Ъ и Ь
Как правило, в словах есть заглавные буквы, если это начало слова. Или, если это аббревиатура, но аббревиатуры также состоят из первых букв слов.
Вы знаете слова, которые начинаются на боб? 🙂
Похоже, их пропустили. Так что давайте сохраним два уровня вложенности и настроимся на пределы Excel (66 — 2 = 64)!
также важно учитывать, что при транслитерации заглавных букв Ж, Ш, Ч, Щ и т.д., когда английский эквивалент состоит из нескольких букв, только первая должна быть заглавной латинскими буквами. В Интернете полно решений, где этот момент не учитывается. Итак, вот наиболее полная правильная формула:
= ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ) (ПОДСТАВИТЬ (ПОДСТАВИТЬ)) (ПОДСТАВИТЬ (ПОДСТАВИТЬ) (ПОДСТАВИТЬ (ПОДСТАВИТЬ) (ЗАМЕНА (A1; «)»; « В »;« В »);« Г »;« Г »);« Д »;« Д »);« Е »;« Д »);« Е »;« Йо »);« Ж »;« Ж » «);» З «;» Z «);» И «;» I «);» Y «;» Y «);» К «;» K «);» Л «;» L «);» М »;« M »);« N »;« N »);« O »;« O »);« P »;« P »);« P »;« R »);« C »;« S »); «Т»; «Т»); «У»; «U»); «Ф»; «F»); «Х»; «Х»); «Ц»; «Ц»); «Ч»; «Ч»); «Ш»; «Ш»); «Щ»; «Щ»); «Y»; «Y»); «А ТАКЖЕ»; «А ТАКЖЕ»); «U»; «Ю»); «Я ЕСМЬ»; «Я»); «а»; «а»); «б»; «б»); «с»; «v»); «грамм»; «грамм»); «д»; «г»); «А также»; «А также»); «А также»; «йо»); «е»; «ж»); «з»; «з»); «е»; «я»); «у»; «у»); «к»; «к»); «L»; «L»); «м»; «м»); «п»; «п»); «или»; «или»); «п»; «п»); «п»; «r»); «c»; «s»); «t»; «t»); «y»; «u»); «f»; «f»); «x»; «kh»); «ц»; «ц»); «час»; «ч»); «ш»; «ш»); «u»; «щ»); «ъ»; «у»); «с»; «y»); «b»; «»); «e»; «e»); «yu»; «yu»); «i»; «ya»)
Скачать файл-шаблон с транслитерацией
Вышеупомянутая формула, основанная на функции REPLACE с различными условиями, может быть изменена: вместо явного написания текстовых значений вы можете основывать ее на определенных ячейках. Почему такой подход дешевле? Тот факт, что формулу менять не нужно, а данные для замены представлены в удобном для чтения и редактирования формате в столбцах A и B.
Транслитерация с таблицей подстановок и формулой с 64 уровнями вложенности
По ссылке можно загрузить файл шаблона, в котором применяются эти функции.
Формулы транслита, итоги
Подход к созданию таких мега-формул имеет свои плюсы и минусы. Есть только один недостаток — они громоздкие, и их не так-то просто набрать сразу. Поэтому их нужно где-то хранить и при необходимости копировать.
Плюсы в основном связаны с недостатками кода VBA:
- По иронии судьбы формулы электронных таблиц будут работать в любой версии Excel на любом компьютере, даже с самыми строгими политиками защиты данных
- Их легко редактировать, если вам нужно переделать правила транслитерации, и они довольно просты
- Переносной, т.е формулы не «улетают», если их отправить кому-то и открыть на другом компьютере
Функция на VBA
Код пользовательской функции, которая транслитерирует строчные буквы в строчные и прописные в прописные и одновременно транслитерирует прописные буквы Ж, Ш, Х, Ч, Щ и т.п., используя только первую букву транслитерации (Zh, Ш, Х, Ч, Щ…).
Правильно, эта функция присутствует в надстройке SEMTools и доступна всем: вам просто нужно скачать и установить! Затем эту функцию можно применить на листе как обычную функцию Excel. Например, = Транслит (A1)
Функция транслита (x как строка) как строка cyr = «abvgdeozhziyklmnoprstufkhtschshshchshch’yueyuya» lat = Array («», «a», «b», «v», «g», «d», «e», «e» , «zh», «z», «i», «y», «k», _ «l», «m», «n», «o», «p», «r», «s», «t», «u», «f», «kh», «ts», «ch», _ «sh», «sch», «y», «y», «», «e», «yu» «,» ya «) Для i = от 1 до 33 x = Replace (x, Mid (cyr, i, 1), lat (i) . vbBinaryCompare) x = Replace (x, UCase (Mid (cyr, i, 1)), StrConv (lat (i), vbProperCase) . vbBinaryCompare) Next Translit = x End Function
Заменить русские буквы на английские в Excel и наоборот
Надстройка SEMTools предлагает еще 4 варианта замены в дополнение к основному:
- Обратная транслитерация (с латиницы на кириллицу)
- «Изменить макет» — asdf -> fiva
- Замена букв в едином стиле — с кириллицы на латиницу
- Аналогичная замена английских букв, похожих на русские, на истинно русские
Последние два пункта тесно связаны с ситуациями, когда можно было найти русские слова, содержащие латинский алфавит, или английские слова с кириллическими символами, и теперь необходимо исправить этот текст.
Источник
Транслит excel
Транслит
Смотрите также не печатаются?Yoooo + 1 cell1.ValueИ 2 короткихMartin Fourcade - String mNewString =
«л», «м», «н», «T», «U», «F», «n», «o», «p», i, 1)) -: Внес поправку String) As String открывается, но без текст с транслита.На любом листе
макросов (Macro EnabledЕсли Вам часто приходитсяHugo121: Sub TransText() Dim = Worksheets(«Словарь»).Cells(cell2.Row, i).Value вопроса: Мартен Фуркад UnTranslit(Translit(s))что означает - «о», «п», «р», «H», «C», «Ch», «r», «s», «t», 1040KuklPDim x, p2 данных,только макросы. Мне надо перевести рабочего файла вы Workbook), т.е. в переводить кириллицу в: удобнее по другому sText, vFindText, vReplText, GoTo 1 End1. Как увеличитьBjörn Ferry - Передать к обработке «с», «т», «у», «Sh», «Zch», «»», «u», «f», «h»,Select Case j: Леш,дружище, это неFor Each xSIMRus столбик имени сможете использовать эту формате XLSM. транслит (а попробуйте-каSub Test_Translit() Dim i Set sText If Next cell2 у Макроса «зону Бьёрн Ферри фразу s функцией «ф», «х», «ц», «‘Y», «‘», «Eh», «c», «ch», «sh»,Case 0 To моя функция. Просто In Split(s): Мои извинения!Дубль 2.Alexandr функцию, вставив ееЕсть База данных. сделать это для r As Range = ActiveDocument.Range vFindText 1: Next cell1 просмотра столбцов» ??Ole Einar Bjørndalen Translit (на лат.), «ч», «ш», _ «Ju», «Ja», «a», «zch», «»», «‘y», 63, 65 ‘А-Я,а-я,ё валяется в общейIf p2 ThenСохранено в форматеAlexandr через меню ВставкаМне нужно прописать фамилии «Кржижановский», например), Set r = = Array(«щ», «ч»,
End Sub Т.е. этот Макрос — Уле-Эйнар Бьёрндален потом функцией UnTranslit, «щ», «и», «ь»,
- «b», «v», «g», «‘», «eh», «ju»,Mid(out, k) = свалке. Даже неFamIO = FamIO
- xls, удалена картинкаAlexandr — Функция =Translit(текст) в одном столбце то эта функция
ActiveDocument.Range r.Select »Debug.Print «ш», «ъ», «ы»,Теперь можно вернуться на
«просматривает» только 3Вдобавок, в зависимости а результат присвоить «ю», «я», «А», «d», «e», «jo», «ja») For iCount% Eng(j) помню, где взял. & LCase(Left(Translit((x)), 1)) с фона, ноArtemТекст — транслитируемый все название в — для Вас. Selection.Range.Text Translit (Selection.Range.Text) «ь», _ «э», лист с отчетом столбца на листе
от гонки фамилии переменной mNewString (фраза «Б», «В», «Г», «zh», «z», «i», = 1 Tok = k Поэтому без ссылкиElse
Некоторые функции эксель
вес 132 кб. как
Artem текст. Этот аргумент КАПСЛОКЕ и сделатьОткройте редактор Visual Basic »йцукенгшщзхъфывапролджэячсмитьбюё »Debug.Print Selection.Range.Text
«ю», «я», _ и запустить макрос «Словарь» и потом
могут меняться местами. s не измениться) «Д», «Е», _ «jj», «k», «l», 65 iValue$ =
+ Len(Eng(j)) на автора. ЯFamIO = LCase(Translit((x))) меньше сделать неи т.д. может быть ссылкой транслитерацию.
( End Sub Sub «ё», «ж», «й»,Translate возвращаеться к 1-му
Т.е. нужно что-то
Если разпишете по «Є», «Ж», «З», «m», «n», «o», Replace(iValue$, Mid(iRussian$, iCount%,Case -15 ‘Ё
бы переписал ееp2 = True знаю.
AlexM на текст (ячейку).
Каким образом этоAlt+F11
Translit(ByVal txt As «а», «б», «в»,через меню столбцу этого же вроде массовой замены частях, тогда «И», «Ї», «Й», «p», «r», «s»,
1), iTranslit(iCount%), ,Mid(out, k) =
совсем иначе, ноEnd If
Файл удален: Нужна таблица соответствияНаталия можно сделать, наиболее), вставьте через меню новый
String) MK00 «а», «г», «д», «е»,Сервис — Макрос - листа. Нужно, чтобы «Найти» и «Заменить
’ s - «К», «Л», «М», «t», «u», «f», , vbBinaryCompare) ‘MS Eng(64)
лень:-) Но всеNext- велик размер букв.: на сайте онлайн
быстро? пустой программный модуль «a» MK00 «б», «з», _ «и», Макросы (Tools -
«просматривал» хотя бы на».
русская фраза, mNewString «Н», «О», «П», «h», «c», «ch», Excel 2000 Nextk = k + 2
равно, спасибо.End Function — [II4eJIhttps://translit.net/
Ramiro’zz ( «b» MK00 «в», «к», «л», «м», Macro — Macros)
5 столбцов, ИУ кого-нибудь есть =Translit (s) ‘ «Р», _ «С», «sh», «zch», «»»,
Translit$ = iValue$Case Else ‘символы,И второй Леша(Казанский)Применять на листеМОДЕРАТОРЫ
: И как ееиз столбца excel
: точно не знаюInsert — Module
«v» MK00 «г»,
«н», «о», «п»,или нажав ALT+F8.
НЕ возвращался к идеи? Спасибо :))
mNewString — трнслитерация
«Т», «У», «Ф»,
«‘y», «‘», «eh»,
End Function Sub
не явл. русскими
— спасибо, радует, так: =famio(A2)] сделать такую таблицу? скопировать текст, нажать
возможно ли такое,
) и скопируйте туда
«g» MK00 «д»,
«р», «с», «т»,
Все слова из 1-му столбцуRAN лат. ‘ s «Х», «Ц», «Ч», «ju», «ja») For
IspTranslit() Dim rCell буквами что мы другMCH
Михаил С.AlexM
в меню над
но для эксперимента текст этой функции: «d» MK00 «е», «у», «ф», «х», вашего отчета, найденные2. Что будет,: Функции, способные
Транслитерация в экселе
— фраза лат. «Ш», «Щ», «И», iCount = 1
As Range, RngMid(out, k) = друга поддерживаем. А: ну и мой: В архив, предпочтительно: Две колонки окошком «В русский», можно попробовать так:Function Translit(Txt As
если убрать из
в основном, называются буквами mNewString =UnTranslit «Ь», «Ю», «Я», To 66 sValue
As Range Set
Mid$(txt, i, 1) ты у нас вариант .rarEN — RU потом этот столбик
пропечатать названия на String) As String «jo» MK00 «ж»,
Array(«zch», «ch», «sh»,Словарь макроса строчку: «транслит».
(s) ‘ mNewString » «, «‘») = Replace(sValue, Mid(sRussian, Rng = Range(«A1:A24»)k = k + 1 так вообще, умничка!SIMRusМихаил С.A — А скопировать обратно в русском, пропечатать алфавит
Dim Rus As
«zh» MK00 «з», «»», «‘y», «‘»,, будут заменены наLangs = 3Ищите, и обрящете. — трнслитерация рус.Пробуйте. EngLang = Array(«a», iCount, 1), sTranslit(iCount), ‘тут указываете свойEnd SelectMCH: Протестил Ваш вариант,: ЗЫ и этотB — Б excel соответствие русских букв Variant Rus = «z» MK00 «и», _ «eh», «ju», слова из соседней ‘количество языков перевода,Правда, как с Удачи. «b», «v», «g», , , vbBinaryCompare) диапазон For EachNext: он подходит полностью!Спасибо! файл не открывается.C — СAlesto911 транслиту, сообразить какуюто Array(«а», «б», «в», «i» MK00 «й», «ja», _ «jo», колонки, т.е. переведены включая русский использованием транслита изобразитьAlexander_G «d», «e», «je», ‘MS Excel 2000 rCell In RngTranslitFast = Left$(out,KuklPЖаль уже 300 :(D — Д: Ребят, есть следующая формулу для автоматической «г», «д», «е», «jj» MK00 «к», «zh», «jj», «a», на другой язык.Бывает, что при Fernand Renault, большой: Привет всем! Подскажите «zh», «z», «i», Next Translit = rCell.Value = Translit(rCell.Value)
Транслит (Формулы/Formulas)
k — 1): Спасибо Миш. Только юзерам пароли раздали,зы.зы Создайте пример. задача:
замены символов с
«ё», «ж», «з»,
«k» MK00 «л»,
«b», «v», «g»,
Запуская макрос несколько
«переводе» языков распознования
вопрос. макро который помогает «ji», «j», _
sValue End Function Next End SubОнEnd Function
помню, что точно а то бы
в новой книге,
P — П
в Экселе представлен
русских на транслит
«и», «й», «к»,
«l» MK00 «м»,
«d», «e», «z»,
раз, мы будем
будет 1 (английский),buchlotnik переводить русские буквы «k», «l», «m», Function UnTranslit(ByVal sValue
транслитерирует из кириллицыSIMRus брал ее не вообще отлично было) и в примереи тд.
столбик с даннымиСергей хлызов _ «л», «м», «m» MK00 «н»,
_ «i», «k», по кругу переводить или до 5
: Хм. а по в латиницу «n», «o», «p»,
As String) As в латиницу. Возможно
Транслитерация текста в ячейке
: re: MCH оттуда. Я тудаЕдинственная просьба внести оставьте только то,
Делайте файл-пример с на русском. рядом: Чтобы перевести любые «н», «о», «п»,
«n» MK00 «о», «l», «m», «n», наш отчет последовательно (англ, русский, французский, какому принципуНапример ячейка «r», «s», «t»,
String Dim sRussian ли заставить егоВаш вариант самый не заглядываю:-) Мне маленькую корректировку в
что касается вопроса. именами EN и пустой столбик. Можно буквы (строчные/прописные) в «р», «с», «т», «o» MK00 «п», «o», «p», «r», на русский-английский-немецкий-русский-английский-и т.д. немецкий, норвежский).Ole EinarА1 Москва «u», «f», «kh», As String, iCount работать наоборот, т. подходящий! не нужно. А, код:KuklP с таблицей соответствия ли как-то сделать
прописные (КАПСЛОК по-вашему) «у», «ф», «х», «p» MK00 «р», «s», «t», «u», Выглядеть это будетInExSuпревращается в
«ts», «ch», _ As Integer, sTranslit е. транслитерировать изСпасибо за участие! кстати и авторалогин формируется из
: А у меня букв. Прикладывайте файл функцию, чтобы в существует функция «ц», «ч», «ш», «r» MK00 «с»,
«f», «h», «c») так:: Привет!Уле-Эйнари т.д.
«sh», «sch», «y», As Variant sTranslit латиницы в кириллицу?Спасибо за результат! там не нашел. ФИО, где фамилия вообще не загрузился. в тему.
пустом столбике отобразилась=ПРОПИСН (текст) _ «щ», «ъ», «s» MK00 «т»,
With sText.Find For
Praktisch, nicht wahr? :)Пожалуйста, в книге
(через дефис). Что-тоПеревод: «‘», «yu», «ya»,
= Array(«Zch», «zch», Мне он очень
Всем спасибо. Так и мои(и пишется полностью(как есть),PS Сергей. ИгорьAlexM транслитная версия первого
Текст — текст, «ы», «ь», «э», «t» MK00 «у», i = LBound(vFindText)bumbarasxx
покажите: подсказывает, что дляВ1 Moskva
«A», «B», «V», «»», «Ch», «ch», понравился, так какSIMRus
не только) наработки а имя и у нас Hugo:-): Разумно такую задачу столбика?
преобразуемый в верхний «ю», «я», «А», «u» MK00 «ф»,
To UBound(vFindText) .Text: Как сделать так,
1. Что у проще ручками таблицуB2 Samara «G», «D», _ «Eh», «eh», «Ja»,
он заглавные буквы: Поспешил(
гуляют по инету отчество сокращается доМихаил С. решать макросом, ноAlesto911 регистр. Этот аргумент
«Б», «В», «Г», «f» MK00 «х»,
= vFindText(i) .Replacement.Text чтобы сохранилось форматирование Вас есть.
соответствий сделать, чемСпасибо!
«E», «Je», «Zh», «ja», «Jj», «jj», заменяет на заглавные,Пример работает отлично, без авторства. Это
одной буквы.: Сереж, прошу прощения; так как в: может быть ссылкой
«Д», «Е», _ «h» MK00 «ц», = vReplText(i) .Execute текста (жирный, курсив,2. Что Вы
заморачиваться на скриптыSpasibo! «Z», «I», «Ji», «Jo», «jo», «Ju», строчные на строчные,
а вот в ИМХО нормально. ЗадеваетВ Вашем же у нас жара этом разделе спрашивают
Не по теме: на текст (ячейку).
«Ё», «Ж», «З», «c» MK00 «ч», Replace:=wdReplaceAll Next i цвет и т.д.) хотите.
под разные языкиdrony «J», «K», «L», «ju», «Sh», «sh», не трогает остальные
свой документ к только немного, когда варианте если имя — 32 в формулы. Выхода нет.
Да, можно. Чтобы провести транслитерацию «И», «Й», «К», ChrW(269) »»ch» MK00 End With End
после транслитерации?dimakdddimakdd: В PLEX есть «M», «N», «O»,
«‘Y», «‘y», «Zh», знаки, толщину букв
сожалению прикрутить не кто-то приписывает себе
или отчество начинается
тени.В файле два
И, воспользовавшись поиском кириллических букв необходимо
«Л», «М», «Н»,
«ш», ChrW(363) »»sh»
Sub (имел сказать:
Function Translit(ByVal txt
: Вот пример. Excel-документ.
: Ой, СПАСИБО за функция =Translit() она «P», «R», _ «zh», «‘», «A», и их цвет.
могу.
авторство. Но Бог
с букв которые
SIMRus решения. Частично ручное
уже давно нашёл проделать следующее:
«О», «П», «Р»,
MK00 «щ», «zch» оформляется
As String) As
В нём 3 оперативность. Уже РЕШИЛ
занимается этим.
«S», «T», «U»,
«a», «B», «b»,
Вот только бы
формат xlsm, Excel
с ним, несущественно.
в транслитерации дают: Дубль 3
и автоматическое (очень бы, есть здесь1. Откройте рабочий
_ «С», «Т», MK00 «ъ», «»»так же
String txtRussian = листа под названиями: проблему. Просто думал,Но я предпочитаю
«F», «Kh», «Ts», «C», «c», «D», научить его обратному
2010. Я открещиваюсь от две(ж, ш, чKuklP длинное). уже такие решения.
файл. «У», «Ф», «Х», MK00 «ы», «‘y») Array(«», «щ», «ч», Лист 0, Men, что у меня PuntoSwitcher
«Ch», «Sh», «Sch», «d», «E», «e»,
процессу, и обрабатывать
Пересохранял в xls, авторства, когда мне
итд) то выглядит: Миш, у меняII4eJI
Не ленись. 2. Откройте редактор «Ц», «Ч», «Ш», MK00 «ь», «‘»Так она и «ш», «ъ», «ы»,
Women.
уникально-сложная ситуация. Оказалосьdrony «Y», «‘», «Yu»,
«F», «f», «G», весь столбец A, 2003 результат тот его приписывают(абсолютно без примерно так: уже нет времени,: Так надо былоKoGG Visual Basic (Alt+F11) «Щ», «Ъ», «Ы», MK00 «э», «eh» так упрощена: см. «ь», «э», «ю»,На Лист 0 всё просто -: Вот подобная функция «Ya», » «, «g», «H», «h», а не только же. умысла, мои друзьяКещян Жанна Васильевна вот функция транслит, сделать таблицу?
: Поиск по разделу3. Вставьте новый «Ь», «Э», «Ю», MK00 «ю», «ju» заглавные буквы на «я», «ё», «ж», ввожу BABIKOV ANTON. ответы с этой : «j») For i «I», «i», «K», указанные ячейки.Вставил код, в по форумам) - keschyanzhv, а ты ужВаш вариант вполне по ключам «транслит» пустой программный модуль «Я») Dim Eng MK00 «я», «ja» рисунке. «й», «а», «б», Используя текущую версию
темы натолкнули меня’Транслитерация русского текста
= 1 To «k», «L», «l»,
IvanOK
ячейке пишу функцию, а кто-то промолчит,
а должно так: дальше давай:
может подойти я
и «транслитерация» ничего
(Insert — Module)
As Variant Eng
End Sub Sub
Yoooo «в», «г», «д», скрипта получаю на
на идеи, и
в английский
Len(Txt) curChr =
все как в не открестится:-) НеКещян Жанна ВасильевнаFunction Translit(txt As думаю не дал. Потому и скопруйте туда = Array(«a», «b», MK00(N1Z, N2Z) ‘: Точно, если заменять «е», «з», «и», «листе 0» -
вот здесь мояFunction Translit(Txt As Mid(Txt, i, 1) «n», «O», «o»,Sergei Sonin примере, но результата
суть важно. Главное, keschyanzv
String) As StringAlexM тема и создана. текст новой функции, «v», «g», «d», ‘ Макрос7 Макрос по букве, то «к», _ «л», BABIKOV Anton. Т.е. проблема решена: String) As String flag = 0 «P», «p», «R»,, можно сделайте наоборот нет( чтоб на пользуКазанскийDim i%, c$,: Медленно работаетAlesto911 которая будет действовать «e», «jo», «zh», ‘ ‘ Selection.Find.ClearFormatting должно получиться. Я «м», «н», «о», скрипт просматривает листМакрос-переводчикDim Rus As
For j = «r», «S», «s», англ.алфавит . и потом
Единственно не знаю людям:-)
: А у меня
flag As Boolean,SIMRus: Транслитерация из латиницы только в рабочем «z», «i», «j»,
Selection.Find.Replacement.ClearFormatting With Selection.Find пробовал заменять весь «п», «р», «с», «Men» и когдаhttp://www.planetaexcel.ru/techniques/7/56/
Variant 0 To 65 «T», «t», «U»,
к каждой букве
куда поставить Optionnerv это учтено :) j%, outchr$, outstr$: Существует задача транслитерировать в кириллицу файле: _ «k», «l», .Text = N1Z текст целиком - «т», «у», «ф», видит ТОЧНОЕ совпадениеСоздаём Excel-документ. ВRus = Array(«а», If UkraineLang(j) = «u», «V», «v», транслит. на руском Explicit, добавляется к: и еще небольшой
Alex_STDim RUS As ФИО с сокращением
Можно ли создатьFunction Translit(Txt As
«m», «n», «o»,
.Replacement.Text = N2Z тогда формат слетает.
«х», «ц») arrTranslit
BABIKOV ANTON, то документе создаём «вторую
«б», «в», «г», curChr Then outchr «Z», «z») sRussianи сначала разберитесь вышестоящему блоку и плевок: Маленькая «полировка» функции Variant ИО интерпретатор для перевода String) As String «p», «r», «s», ‘N2Z .Forward =Но чтоб сделать = Array(«», «zch», на «листе 0″ книгу». Во второй «д», «е», «ё», = EngLang(j) flag = «ЩщъЧчЭэЯяЙйЁёЮюШшЫыЖжьАаБбЦцДдЕеФфГгХхИиКкЛлМмНнОоПпРрСсТтУуВвЗз» For как работает ета при его выполненииStatic RUS As Сергея: массив удобнееRUS = Array(«а»,
Работа происходит с латинских букв в
Dim Rus As «t», «u», «f»,
True .Wrap = так, как делал «ch», «sh», «»»,
заменяет значение ячейки
книге, в столбце «ж», «з», «и»,
= 1 Exit iCount = 1
функция и вам выдает ошибку..
Variant
и КОРОЧЕ задавать «б», «в», «г»,
многолистовым документом в
кириллицу Variant «kh», «ts», «ch»,
wdFindContinue .Format = код в примере
«‘y», «‘», «eh»,
на
«А» прописываем фамилии
«й», «к», «л», For End If
To 64 sValue
все станет понятно,Hugo
If IsEmpty(RUS) Then не через Array
«д», «е», «ё»,
котором хранятся пароли,
Александр Смит
Rus = Array(«а», _ «sh», «sch»,
False .MatchCase = — ещё нужно «ju», «ja», «jo»,значение ближайшей правой на языке-оригинале. В
«м», «н», «о», Next j If
= Replace(sValue, sTranslit(iCount особенно обратите внимание: Да что там
RUS = Array(«а», а через Split: «ж», «з», «и», лист — отдел.: Спасибо, посмотрел. Но
«б», «в», «г», «»», «y», «‘», False .MatchWholeWord = дорабатывать. «zh», «jj», «a», ячейки на листе
столбце «B» прописываем «п», «р», «с», flag Then outstr
— 1), Mid(sRussian, на коичесто символов крутить. «б», «в», «г»,Function Translit$(txt$)
«й», «к», _
Структура такая столбец ничего не понял.
«д», «е», «ё», «e», «yu», «ya», False .MatchWildcards =
Hugo121 «b», «v», «g», «Men». ЭТО ОТЛИЧНО. фамилии так, как «т», «у», «ф», = outstr & iCount, 1), , в массиве иОткрываете оба документа, «д», «е», «ё»,Dim i%, c$,»л», «м», «н»,
А — ФИО На свой вкус «ж», «з», «и», «A», «B», «V», False .MatchSoundsLike =: добавить букву ц «d», «e», «z»,
Однако когда на хотим их видеть «х», «ц», «ч», outchr Else _ , vbBinaryCompare) ‘MS соотвествее каждому символу
Alt+F11, в редакторе «ж», «з», «и», j%, outChr$, outStr$, «о», «п», «р»,
в виде Иванов попробовал исправить исход «й», «к», _ «G», «D», _
False .MatchAllWordForms =Sub Test_Translit() Dim «i», «k», _ «листе 0» ввожу
Транслитерация из латиницы в кириллицу
на русском. «ш», «щ», «ъ», outstr = outstr
Excel 2000 NextSergei Sonin тянетен мышью модуль «й», «к», _ flag As Boolean «с», «т», «у», Иван Иванович, столбец транслитерации, добавил замену»л», «м», «н», «E», «JO», «ZH», False End With r As Range «l», «m», «n», AKIMOVA TATIANA, исполняюКопируем фамилии из «ы», «ь», «э», & curChr Next UnTranslit = sValue: целиком из одного»л», «м», «н»,Dim RUS: RUS «ф», «х», «ц», В — login пробела на нижнее «о», «п», «р», «Z», «I», «J», Selection.Find.Execute Replace:=wdReplaceAll Selection.Find.Execute Set r = «o», «p», «r», скрипт, ничего не pdf-документа с результатами «ю», «я», «А», i Translit = End Function SubIvanOK документа в другой. «о», «п», «р», = Split(«а б «ч», «ш», _ в виде ivanovii, подчеркивание, изменил кол-во «с», «т», «у», «K», «L», «M», End Sub ActiveDocument.Range r.Select Translit «s», «t», «u», происходит. Т.к. ячейка гонок, вставляем в «Б», «В», «Г», outstr End Function Test() Dim s, спасибо, я попробовалВсё, можно пользоваться. «с», «т», «у», в г д»щ», «ъ», «ы», С — пароль. символов в счетчике. «ф», «х», «ц», «N», «O», «P»,Yoooo (r) »йцукенгшщзхъфывапролджэячсмитьбюё End «f», «h», «c») с содержанием AKIMOVA
«первую книгу» документа, «Д», «Е», «Ё», Sub Test_Translit() Dim As String s так сделать -И Option Explicit «ф», «х», «ц»,
е ё ж «ь», «э», «ю»,Находил на форуме Начал выходить полный «ч», «ш», _ «R», _ «S»,: Sub Sub Translit(ByVal
For iCount = TATIANA расположена на создаём и запускаем «Ж», «З», «И», mstr$ mstr = = «АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя» Debug.Print но тут придется будет на месте. «ч», «ш», _ з и й «я», «А», «Б», разные варианты, но
бред.»щ», «ъ», «ы», «T», «U», «F»,shanemac51 txt As String) 1 To 33 листе «Women», который
нижеследующий макрос: «Й», «К», «Л», «Вчинено поквапно» MsgBox s Debug.Print UnTranslit(Translit(s)) сопоставлять несколько буквSIMRus
»щ», «ъ», «ы», к л м «В», «Г», «Д», к сожалению уПопробуйте «ь», «э», «ю», «KH», «TS», «CH»,, спасибо большое! намного Dim X1, X2 txt = Replace(txt, сприпт не видит.Sub Translate()
«М», «Н», «О», «Вихідний текст:» & End SubС уважением, латинского алфавита одной: Не поверите, все «ь», «э», «ю», н о п «Е», _ меня не получилосьFunction ТРАНСЛИТ(Ячейка As
«я», «А», «Б», «SH», «SCH», «»», проще. только тут Dim txtRussian, arrTranslit txtRussian(iCount), arrTranslit(iCount), ,Т.е. как сделатьDim cell1 as «П», «Р», «С»,
Chr(13) & _
Aksima русской, как и так и делаю) «я») р с т»Ё», «Ж», «З», их прикрутить( Range) As String «В», «Г», «Д», «Y», «‘», «E», ещё один вопрос txtRussian = Array(«», , vbBinaryCompare) txt так, чтобы скрипт Range, cell2 As «Т», «У», «Ф», Space(3) & Chr(34)Igor_Tr в указанном примере.Что касается OptionEnd If у ф х «И», «Й», «К»,В идеале надо Dim sRussian As «Е», _ «YU», «YA») For возник) «щ», «ч», «ш», = Replace(txt, UCase(txtRussian(iCount)), «просматривал» ВСЕ листы, Range «Х», «Ц», «Ч», & mstr &: Ещё вариант: И это никак Explicit, если добавлятьКазанский ц ч ш «Л», «М», «Н», что бы на Variant: Dim sTranslit»Ё», «Ж», «З», I = 1Какие коды ChrW «ъ», «ы», «ь», UCase(arrTranslit(iCount)), , , которые созданы вDim i as «Ш», «Щ», «Ъ», Chr(34) & _- использовать конструкцию не получается после моих модулей,: Если задуматься об щ ъ ы «О», «П», «Р», заданных листах(потому что As Variant: Dim «И», «Й», «К», To Len(Txt) с у этих символов: «э», «ю», «я», vbBinaryCompare) Next ThisDocument.Range.InsertAfter Excel-документе ?? Long, Langs As «Ы», «Ь», «Э», Chr(13) & Chr(13) Select Case,IvanOK то он клеется оптимизации, то поиск ь э ю _ не на всех s As String «Л», «М», «Н», = Mid(Txt, I,ď «ё», «ж», «й», (vbNewLine & txt)Обучим немецкому
Long «Ю», «Я»)
& _ «Transliteration:»- если предполагается
: тебе нужно сделать к последнему, а русской буквы в я А Б»С», «Т», «У»,
такая структура) что sRussian = Array(«А», «О», «П», «Р», 1) flag =ť
«а», «б», «в», For iCount =языку по методуLangs = 3Dim Eng As & Chr(13) & обрабатывать большое колич двва масива, в не существует сам массиве не нужен В Г Д «Ф», «Х», «Ц», то анализировало столбец «Б», «В», «Г», _ 0 For J
ć «г», «д», «е», 1 To 33 гестапо. ‘количество языков перевода, Variant _ Space(3) &
данных, алгоритм нужно твоем примере есть по себе. Но — достаточно расположить Е Ё Ж «Ч», «Ш», «Щ», А и при
«Д», «Е», «Ё»,»С», «Т», «У», = 0 Toź «з», «и», «к», txt = Replace(txt,Работающие в иностранных компаниях включая русскийEng = Array(«a», Chr(34) & _ выстроить с учётом только один массив, я просто все английские строки в З И Й «Ъ», «Ы», «Ь», появлении там ФИО «Ж», «З», «И», «Ф», «Х», «Ц», 65 If Rus(J)ś _ «л», «м», arrTranslit(iCount), txtRussian(iCount), , сотрудники часто вынужденыFor Each cell1 «b», «v», «g», Translit(mstr) & Chr(34) Частотности, потом искать сопоставление это вставил в порядке возрастания кодов К Л М «Э», «Ю», «Я») транслитерировало его по «Й», «К», «Л», «Ч», «Ш», «Щ», = с Thenŕ «н», «о», «п», , vbBinaryCompare) txt готовить по два In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants) «d», «e», «jo», End Sub- учитывать, что букв самое начало, но русских букв (только Н О ПDim Eng As вышеописанному принципу в «М», «Н», «О», «Ъ», «Ы», «Ь», outchr = Eng(J)ń «р», «с», «т», = Replace(txt, UCase(arrTranslit(iCount)), одинаковых отчета дляFor Each cell2 «zh», «z», «i»,Igor_Tr в английском иSergei Sonin результата опять же буквы ё, Ё Р С Т Variant В, при этом «П», «Р», «С», «Э», «Ю», «Я») flag = 1ł «у», «ф», «х», UCase(txtRussian(iCount)), , , отечественного и зарубежного In Worksheets(«Словарь»).Cells.SpecialCells(xlCellTypeConstants) «j», «k», «l»,: других европейских языках, а вы что не дало( выбиваются из общего У Ф ХEng = Array(«a», понимание того что «Т», «У», «Ф»,Dim Eng As Exit For EndЯ нашёл таблицы, «ц») arrTranslit = vbBinaryCompare) Next ThisDocument.Range.InsertAfter своего начальства -If cell1.Value = «m», «n», «o»,Aksima
есть так наз с трастлита наSIMRus ряда). И еще Ц Ч Ш «b», «v», «g», это новый юзер, «Х», «Ц», «Ч», Variant If Next J где ко всем Array(«», «zch», «ch», (txt) End Function на русском и
cell2.Value Then «p», «r», «s»,, Спасибо преогромное! Но диграфы, латынь потом с: Пробовал разные варианты. кое-что. В результате Щ Ъ Ы «d», «e», «jo», а не изменение «Ш», «Щ», «Ъ»,
Eng = Array(«a», If flag Then символам отображаются их «sh», «»», «‘y», Sub Test_Translit() Dim английском языках. Цифрыi = cell2.Column «t», «u», «f», вот беда, я
- в приложенном етого же на
Возможно я чего на строке длиной Ь Э Ю «zh», «z», «i», старого осуществлялось по «Ы», «Ь», «Э», «b», «v», «g», outstr = outstr код, но таки «‘», «eh», «ju», r As Range в этих отчетах,If i = «kh», «ts», «ch»,
никак не соображу, файле давнее обсуждение кирилицу? то не понимаю, 820 при многократном Я») «j», _ заполненности ячейки в «Ю», «Я», «а», «d», «e», «jo»,
& outchr Else там почему-то нет.
«ja», «jo», «zh», Set r = естественно, одинаковые, а Langs Then i «sh», «sch», «»», как запустить этот алгоритма транслитерации наIgor_Tr но на листе вызове работает в
Как преобразовать русские буквы в латиницу?
Dim Eng: Eng»k», «l», «m», столбце С. ну во «б», «в», «г», «zh», «z», «i»,
outstr = outstr
Казанский
«jj», «a», «b»,
ActiveDocument.Range Translit (r)
меняются только подписи,
= 1 Else
«y», «‘», «e»,
макрос, применяя его
другом форуме (из
: To Sergei Sonin. 2 в примере 20 раз быстрее, = Split(«a b
«n», «o», «p», всяком случае я
: Вообще это зависит «v», «g», «d»,
End Sub заголовки и другой
i = i «ju», «ja», «A»,
ко всему столбцу, латиницы в кириллицу, А зачем Вам тоже не работает( чем функция Translit v g d «r», «s», «t», как то так «ж», «з», «и»,»k», «l», «m», I Translit = от шрифта. «e», «z», «i»,Hugo121 текст. + 1 «B», «V», «G», скажем от третьей но его несложно изобретать? Я думаю,Hugo с предыдущей страницы. e jo zh
«u», «f», «kh», себе это представляю.
«й», «к», «л», «n», «o», «p», outstr End FunctionА коды можно «k», _ «l»,: Теоретически возможно, практическиТакую задачу можно решитьcell1.Value = Worksheets(«Словарь»).Cells(cell2.Row, «D», «E», «JO», его строки и «зеркально» поменять), функция лучьше скачать какую-то: Значит что-то неМожно оптимизировать еще, z i j «ts», «ch», _Если анализ в «м», «н», «о», «r», «s», «t»,Теперь на любом листе узнать простым макросом. «m», «n», «o», вряд ли кто
более изящно. Создаем i).Value
«ZH», «Z», «I», до конца. Вот
транслитерации
програмку Free, а так делаете (хотя
но существенное ускорение k l m
»sh», «sch», «»»,
реальном времени затруднителен
«п», «р», «с»,
«u», «f», «kh»,
этой книги Вы
For i = «p», «r», «s», бесплатно сделает. А новый лист вGoTo 1
«J», «K», «L»,
такой я тугодум.
Имена с латиницы на Кириллицу (Макросы/Sub)
здесь на форуме где тут можно вряд ли будет. n o p «y», «‘», «e», или не возможен, «т», «у», «ф», «ts», «ch», _ можете использовать эту
1 To 30000 «t», «u», «f»,
платно — будет таком отчете и
End If «M», «N», «O»,
Подскажите пожалуйста.(без учёта частотности), спросить у ребят,
не так, неFunction TranslitFast(txt$) As r s t «yu», «ya», «A»,
то хотя бы «х», «ц», «ч»,
»sh», «sch», «»», функцию, вставив ее
Cells(i, 1).Value = «h», «c») X1
дорого.
называем его «Next cell2 «P», «R», «S»,To Sergei Sonin
примеры алгоритмов расчёта как вызвать ее знаю. ) String u f kh «B», «V», «G», что бы это «ш», «щ», «ъ», «y», «‘», «e», через Мастер Функций: ChrW(i) Next i = LBound(txtRussian, 1)
Упрощайте задачу.Словарь1:Next cell1 «T», «U», «F», Вопрос был не частотности применительно к (например, ч/з функциюНу а OptionStatic Eng$() ts ch sh «D», _ действие выполнялось по
«ы», «ь», «э»,
«ju», «ja», «A»,
в Excel 2003 иHugo121 X2 = UBound(txtRussian,bumbarasxx». Выписываем на этотEnd Sub «KH», «TS», «CH», мне, но смотрю русскому языку (его WinAPI), вставить/получить/вернуть на
Explicit всего лишьDim out$, i&, sch » y»E», «JO», «ZH», горячей кнопке. «ю», «я») sTranslit
«B», «V», «G»,
старше — через, я закрыл все 1) Do While
: Как можно сделать лист в любомdimakdd
«SH», «SCH», «»», что задержка с можно применить для
лист/в код. заставляет объявлять все
j&, k& ‘ e yu
«Z», «I», «J»,Заранее спасибо!
= Array(«A», «B»,
«D», _ меню документы, закрыл окно X1
k = 1 ya A B «K», «L», «M»,Михаил С. «V», «G», «D»,»E», «JO», «ZH»,Вставка — Функция (Insert VBA. Теперь когда Debug.Print X1; MREPL0326 форматирования текста? которые надо автоматически помощь. Я просто «JU», «JA») если смогу обяснить любому языку) такая утилитка NIЭта строка должна
On Error Resume V G D «N», «O», «P»,
: Без Вашего файла-примера «E», «E», «Zh», «Z», «I», «J», — Function) открываю документ, не txtRussian(X1), arrTranslit(X1) X1Казанский переводить. Для каждого в Макросах Excel,For I = — спасибо скажете- расчитывать частотность Transliterator (http://www.kivlab.com/soft/transliterator/). Вот быть одна на
Next E JO ZH
«R», _ (что есть - «Z», «I», «Y», «K», «L», «M»,в Excel 2007 и могу найти этот = X1 +: Файл-пример приложите. языка добавляем новый на ДАННЫЙ МОМЕНТ, 1 To Len(Txt) тогда не мне, нужно к наиболее в WinAPI я
модуль, в самомIf UBound(Eng)
Макрос-переводчик
нажимаю на кнопку Макрос7 Макрос ‘ заменыСервис — Макрос - для Википедии. ТамFor J =В примере Aksima примере русских имён в Google. А удалите её, хуже E ZH Z U F KH «E», «YU», «YA»)
: По соображениям безопасности «Ts», «Ch», «Sh», «CH», «SH», «SCH», из категории «Макросы». ‘ Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormattingTransliteraцija. Sohranenie formatirovanija Редактор Visual Basic реально люди тратят 0 To 64 две функции и и отчеств) вобще лучьше учить
не станет :) I J K TS CH SHFor i = чуть измененный, но «Shch», «»», «Y», «»», «Y», «‘»,Определенные пользователем (User defined)Хотя нет, такое With Selection.Find .Text
teksta / VBA), вставляем новый модуль по 2 часа,If Rus(J) = одна процедура. НиSergei Sonin английский.Sergei Sonin L M N SCH » Y 1 To Len(txt) не потерявший смысла «‘», «E», «Yu», «E», «JU», «JA»): имя всё-таки есть. = N1Z .Replacement.Text________________________________________ (меню чтобы ВРУЧНУЮ набрать с Then одну функцию Вы: Раз уже затронулиАндрэич
: Подскажите, вот нашел O P R ‘ E YUc = Mid(txt, структуры документ в «Ya», «a», «b»,For I =В этом макросе варианты Но когда я = «=» ‘N2ZKak mozhno sdelat’Insert — Module результаты ОДНОЙ ГОНКИ.outchr = Eng(J) просто так не эту тему и: Здравствуйте, такой макрос: S T U YA») i, 1) аттаче. «v», «g», «d», 1 To Len(Txt)
замены русских букв
Транслитерация. Сохранение форматирования текста
пытаюсь его изменить .Forward = True transliteraцiju s sohraneniem) и копируем туда Используя Макросы Excelflag = 1
запустите. Поэтому Aksima она размыта «вSergei SoninOption Explicit Function F KH TSFor i =flag = 0Файл удален «e», «e», «zh»,с = Mid(Txt, английскими эквивалентами представлены или выполнить - .Wrap = wdFindContinue formatirovanija teksta? текст вот этих эту же задачуExit For дал Вам тестовую кирилицу», выкладываю вариант, При обратной процедуре Translit$(iValue$) Dim iRussian$, CH SH SCH 1 To Len(txt)For j =- велик размер «z», «i», «y», I, 1) согласно ГОСТ. Если пишет «Sub or .Format = False111 двух макросов: можно решить заEnd If процедуру т/литерации UA-UK. Может я бы начал iCount%, iTranslit As » Y ‘c = Mid(txt, 0 To 65 — [ «k», «l», «m»,flag = 0 для вашей задачи Function not defined»Макрос .MatchCase = FalseSasha_SmirnovSub Translate() Dim 5-10 минут.
Next JSub Test кому пригодится: с сочетаний латинских Variant iRussian$ = E YU YA
i, 1)
If RUS(j) =МОДЕРАТОРЫ «n», «o», «p»,For J =
нужны другие версии для экселя. Ну
.MatchWholeWord = False: Вот-вот. Да ещё cell1 as Range,Как улучшить вышеуказанный
If flag ThenТеперь на нее
Function Translit(Txt As
букв, имеющих наибольшую «АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя» iTranslit = a b v
flag = False
c Then] «r», «s», «t», 0 To 65 (например, русская «я» и вставить это .MatchWildcards = False когда в начале
cell2 As Range
скрипт для следующей outstr = outstr и внимательно:
String) As String длину. Array(«», «A», «B», g d e
For j =outchr = Eng(j)
Михаил С. «u», «f», «kh»,If Rus(J) = должна выводиться как дело в .MatchSoundsLike = False Ж, Я и Dim i as базовой цели: & outchr Elses = «АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя» ‘Запозичено з [url]http://www.moonexcel.ho.ua/[/url]Например, так: «V», «G», «D», zh z i 0 To 65flag = 1: Попробуйте еще раз «ts», «ch», «sh», с Then «ja», а неsub tt() end .MatchAllWordForms = False тому подобные дифтонги. Long, Langs AsЕсть excel-документ. В outstr = outstr — в переменную _ index.php?page=tip_translit_ua ‘Function Translit(ByVal sValue «E», «Jo», «Zh», j k lIf RUS(j) =Exit For и в формате «shch», «»», «y»,outchr = Eng(J) как «ya» и subестественно нужно. End With Selection.Find.Execute (и кому это
Long Langs = нём 4 листа & с загнали значение -
дана функція виконує As String) As «Z», «I», «Jj», m n o c ThenEnd If 2003. Ваш файл
«‘», «e», «yu»,flag = 1 т.д.), то можноHugo121 Replace:=wdReplaceAll Selection.Find.Execute End
нынче требуется, хотелось 3 ‘количество языков
(«Лист1», «Мужчины», «Женщины»,Next I русский алфавит (можете транслітерацію українських _ String Dim sRussian «K», «L», «M», p r soutChr = Eng(j)Next j не открывается. И «ya») s =Exit For свободно подкорректировать это, не, я говорю Sub бы знать!). перевода, включая русский «Флаги»). На Лист1Translit = outstr заменить любой фразой букв латинськими (англ.) As String, iCount «N», «O», «P», t u fflag = TrueIf flag Then следите за размером Ячейка.Value For iEnd If в теле макроса. про макросYooooКак-как. инструментом Поиск-Замена! For Each cell1 я ввёл фамилиюEnd Function русским языком). Потом Dim UkraineLang, EngLang As Integer, sTranslit «R», «S», «T», kh ts chExit For outstr = outstr (не более 100 = LBound(sRussian) ToNext J Как легко догадаться,shanemac51: А если яИллюстрация: Макрос замены In ActiveSheet.Cells.SpecialCells(xlCellTypeConstants) For биатлонистки «CHEVALIER ANAIS».dimakdd вызывается функция, которой As Variant Dim As Variant sRussian «U», «F», «H», sh sch »End If & outchr Else
кБ) UBound(sRussian) s =If flag Then два первых массива.Скопировал эти буквы, вставил хочу заменить букву
сокращений в MS Each cell2 In Нужно, чтобы Макрос: Здравствуйте. Для сайта передают переменную s.
Что тогда писать испытанный пример: Форматирование If i = этой фамилией расположена с латиницы (и Но Вы можете, «в», «г», «д»,
«Zh», «Z», «I», «v», «g», «d»,
* 3)
Next i
End Function
75070
Function
Next I
2007-2010 и т.д.
x in selection:debug.?
в строке arrTranslit текста. Langs Then i на третьем листе не только) на
после s= «AБ. « «е», «є», «ж», «Jj», «K», «L»,
«e», «jo», «zh»,For i =
Translit = outStrКазанскийМихаил С.II4eJI
Translit = outstr не забудьте сохранить ascw(x):next 271 357 = Array еслиHugo121 = 1 Else (т.е. на листе кириллицу. Нужно именно дописать «з», «і», «ї», «M», «N», «O»,
«z», «i», «jj», 1 To Len(txt)End Function: Дописал оболочку: Привет!: Здравсвуйте, есть вариантEnd Function вашу книгу как 263 378 347 там эти символы
: рисунок i = i «Женщины»). по принципу:dim mNewString as «й», «к», _ «P», «R», «S», «k», «l», «m»,j = AscW(Mid$(txt,MCHFunction FamIO(s AsИгорь, файл то в экселе перевести4. Сохранить. файл с поддержкой
Источник
На чтение 5 мин. Просмотров 2k. Опубликовано 15.12.2019
Содержание
- Описание функции
- Пример
- Первый способ транслитерировать русский текст
- Второй способ перевода русского текста в транслит в Excel с помощью пользовательской функции
Описание функции
Функция =ТРАНСЛИТ(ТЕКСТ) имеет всего один аргумент
- ТЕКСТ — строка (или ссылка на ячейку), к которой необходимо применить транслитерацию текста.
Пример
Следующий пример демонстрирует работу данной функции:
Очень часто требуется преобразовать русский текст (кириллицу) в английский (транслит), не перевести, а написать русские слова английскими буквами.
Такое, например, может понадобиться для импорта данных в какую-нибудь программу, базу данных, которая не поддерживает русские буквы. Задача распространенная, но стандартными средствами Excel не решается.
Мы предлагаем вам два варианта решения данной задачи.
Первый способ транслитерировать русский текст
Первый способ транслита русского текста достаточно топорный — с использованием приложения Punto Switcher от Яндекс.
Скачиваем программу Punto Switcher на официальном сайте: http://punto.yandex.ru/
Punto Switcher — программа, которая автоматически переключает раскладку клавиатуры. Она знает, что «ghbdtn» — это «привет», а «пщщв ьщктштп» — это «good morning».
Так вот, данная программа, помимо своей основной функции можете переводить текст в транслит, менять регистр выделенного текста (сделать из «иванов» в «ИВАНОВ») и другое.
Устанавливаем программу себе на компьютер, в системном трее должен появится значок программы
Если зайти в настройки (правой кнопкой мыши по значку, выбрать настройки, горячие клавиши), то можно увидеть, что по умолчанию установлено переводить текст в транслит с помощью горячих клавиш Alt+Scroll Lock
К сожалению, в самом Excel программа транслитерировать текст не сможет, необходимо промежуточное действие. Копируем столбец с русскими буквами, открываем блокнот на компьютере (Notepad) и вставляем туда текст, далее выделяем текст в блокноте и нажимаем клавиши Alt+Scroll Lock, текст автоматически поменяется на транслит.
Далее вы просто копируете этот текст и вставляете обратно в Excel.
Это удобно если нужно например перевести в translit, например один объемный столбец данных на русском языке, но иногда преобразование текста в транслит требуется с помощью формул Excel, поэтому рассмотрим второй способ с использованием пользовательской функции Excel, написанной на VBA
Второй способ перевода русского текста в транслит в Excel с помощью пользовательской функции
Есть специальный макрос для создания пользовательской функции.
Переключите раскладку на русский язык!! Копируем данный код, открываем среду VBA, для это нажмите правой кнопкой на активный лист и выберите пункт «Исходные данные», либо нажмите Alt+F11 далее через меню выберите новый программный модуль (Insert — Module)
и в открывшееся окно вставляете данный код и закрываете это окно.
После этого в любом месте данного листа (а при вставке кода с помощью Insert — Module — в любом месте данной книги) вы сможете использовать пользовательскую функцию, которую можно вызвать выбрав:
Вставка — Функция ( Insert — Function )
в Excel 2013 Функция — Вставить функцию
Выбираем Категория: определенные пользователем, в данном списке должна появится наша функция Translit
Можно просто в нужной ячейке набрать =Transit (ссылка_на_русский_текст)
После этого протягиваем формулу и получаем нужный нам результат.
Если вы присмотритесь в полученный результат, то увидите, что данные немного отличаются, например
Ivanov Serge j Petrovich и Ivanov Serge y Petro vich
то есть буква «й» преобразовалась по-разному, если для вас это критично, то нужно будет немного поменять указанный выше код. В коде есть две таблицы — одна на русском языке, другая латиницей. Не трудно догадаться, что вам необходимо поменять нужные вам буквы. В данном случае в коде нужно найти «j» и поменять на «y», если требуется, то по аналогии поступаем с другими буквам.
- Начиная с Excel 2007 не забудьте сохранить файл в формате поддержки макросов — xlsm, иначе макрос не сохранится;
- Данный макрос необходимо вставлять в каждую отдельную книгу, в которой вы хотите, чтобы он работал;
- Иногда требуется, чтобы была не встроенная функция, а макрос при запуске которого текст будет переводится в транслит, в этом случае нужно вставить код, указанный ниже. В итоге, для перевода текста в transit необходимо выделить нужный текст на русском языке (диапазон ячеек) и запустить макрос «Translit» и данный текст будет обработан.
- Важно! Перед копированием данного кода, обязательно переключите раскладку клавиатуры на русский язык.
Итак, надеюсь вы нашли ответ на свой вопрос о том, как проще всего транслитерировать текст в Excel (преобразовать текст на русском языке в транслит).
Ставьте лайки, подписывайтесь на наши группы в социальных сетях и следите за следующими уроками.
Если Вам часто приходится переводить кириллицу в транслит (а попробуйте-ка сделать это для фамилии «Кржижановский», например), то эта функция — для Вас.
Откройте редактор Visual Basic (Alt+F11), вставьте через меню новый пустой программный модуль (Insert — Module) и скопируйте туда текст этой функции:
Теперь на любом листе этой книги Вы можете использовать эту функцию, вставив ее через Мастер Функций:
из категории Определенные пользователем (User defined) :
В этом макросе варианты замены русских букв английскими эквивалентами представлены согласно ГОСТ. Если для вашей задачи нужны другие версии (например, русская «я» должна выводиться как «ja», а не как «ya» и т.д.), то можно свободно подкорректировать это в теле макроса. Как легко догадаться, два первых массива Rus и Eng как раз и кодируют эти подстановки.
Для новых версий Excel 2007-2010 и т.д. не забудьте сохранить вашу книгу как файл с поддержкой макросов (Macro Enabled Workbook) , т.е. в формате XLSM.
Содержимое скрыть 1 Формула транслитерации с использованием стандартных функций Excel 1.1 Формула для 64 уровней вложенности без прописных букв b и b 1.2 Скачать файл шаблона с транслитерацией 1.3 Формулы транслитерации, итоги 2 Функция VBA 3 Заменить русские буквы английскими буквами в Excel и наоборот
Как перевести кириллицу в транслитерацию в Excel?
Технически транслитерация — это замена списка значений — символов на их конкретные эквиваленты в другом макете. Это означает, что задача состоит в том, чтобы реализовать этот набор переопределений в Excel.
Удивительно, но есть много способов сделать такую массовую замену и транслитерировать текст в Excel. Подробнее обо всех ниже.
Наименее элегантное, но самое простое решение проблемы. В Excel есть функция REPLACE для замены символов. Формула принимает 4 аргумента в качестве входных данных:
- Текст для обработки, в котором будет произведена замена (текст)
- Фрагмент для замены (old_text)
- На что заменить (новый_текст)
- Какой фрагмент встречается по смыслу, подлежащему замене. (число_звук)
Четвертый параметр является необязательным, и если он не заполнен, заменяются все фрагменты, встречающиеся в тексте.
Как раз то, что нам нужно! Поскольку Excel позволяет составлять сложные вложенные функции, мы можем выполнять эту серию замен во вложенной формуле много раз.
Но есть несколько проблем, которые в совокупности не позволяют создать идеальную унифицированную формулу транслитерации. Они здесь:
- В русском алфавите 33 буквы
- Идеальная формула транслитерации должна сохранять заглавные буквы во время замены. К счастью, функция REPLACE чувствительна к регистру. Получается, нужно сделать не 33, а 66 замен. Но
- в Excel есть ограничение на количество уровней вложенности в формуле: 64.
Если бы в русском алфавите было хотя бы на одну букву меньше, мы были бы в рамках Excel. Есть выход? Да, довольно просто.
Формула на 64 уровня вложенности без заглавных Ъ и Ь
Как правило, в словах есть заглавные буквы, если это начало слова. Или, если это аббревиатура, но аббревиатуры также состоят из первых букв слов.
Вы знаете слова, которые начинаются на боб? 🙂
Похоже, их пропустили. Так что давайте сохраним два уровня вложенности и настроимся на пределы Excel (66 — 2 = 64)!
также важно учитывать, что при транслитерации заглавных букв Ж, Ш, Ч, Щ и т.д., когда английский эквивалент состоит из нескольких букв, только первая должна быть заглавной латинскими буквами. В Интернете полно решений, где этот момент не учитывается. Итак, вот наиболее полная правильная формула:
= ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ (ПОДСТАВИТЬ) (ПОДСТАВИТЬ (ПОДСТАВИТЬ)) (ПОДСТАВИТЬ (ПОДСТАВИТЬ) (ПОДСТАВИТЬ (ПОДСТАВИТЬ) (ЗАМЕНА (A1; «)»; « В »;« В »);« Г »;« Г »);« Д »;« Д »);« Е »;« Д »);« Е »;« Йо »);« Ж »;« Ж » «);» З «;» Z «);» И «;» I «);» Y «;» Y «);» К «;» K «);» Л «;» L «);» М »;« M »);« N »;« N »);« O »;« O »);« P »;« P »);« P »;« R »);« C »;« S »); «Т»; «Т»); «У»; «U»); «Ф»; «F»); «Х»; «Х»); «Ц»; «Ц»); «Ч»; «Ч»); «Ш»; «Ш»); «Щ»; «Щ»); «Y»; «Y»); «А ТАКЖЕ»; «А ТАКЖЕ»); «U»; «Ю»); «Я ЕСМЬ»; «Я»); «а»; «а»); «б»; «б»); «с»; «v»); «грамм»; «грамм»); «д»; «г»); «А также»; «А также»); «А также»; «йо»); «е»; «ж»); «з»; «з»); «е»; «я»); «у»; «у»); «к»; «к»); «L»; «L»); «м»; «м»); «п»; «п»); «или»; «или»); «п»; «п»); «п»; «r»); «c»; «s»); «t»; «t»); «y»; «u»); «f»; «f»); «x»; «kh»); «ц»; «ц»); «час»; «ч»); «ш»; «ш»); «u»; «щ»); «ъ»; «у»); «с»; «y»); «b»; «»); «e»; «e»); «yu»; «yu»); «i»; «ya»)
Скачать файл-шаблон с транслитерацией
Вышеупомянутая формула, основанная на функции REPLACE с различными условиями, может быть изменена: вместо явного написания текстовых значений вы можете основывать ее на определенных ячейках. Почему такой подход дешевле? Тот факт, что формулу менять не нужно, а данные для замены представлены в удобном для чтения и редактирования формате в столбцах A и B.
Транслитерация с таблицей подстановок и формулой с 64 уровнями вложенности
По ссылке можно загрузить файл шаблона, в котором применяются эти функции.
Формулы транслита, итоги
Подход к созданию таких мега-формул имеет свои плюсы и минусы. Есть только один недостаток — они громоздкие, и их не так-то просто набрать сразу. Поэтому их нужно где-то хранить и при необходимости копировать.
Плюсы в основном связаны с недостатками кода VBA:
- По иронии судьбы формулы электронных таблиц будут работать в любой версии Excel на любом компьютере, даже с самыми строгими политиками защиты данных
- Их легко редактировать, если вам нужно переделать правила транслитерации, и они довольно просты
- Переносной, т.е формулы не «улетают», если их отправить кому-то и открыть на другом компьютере
Функция на VBA
Код пользовательской функции, которая транслитерирует строчные буквы в строчные и прописные в прописные и одновременно транслитерирует прописные буквы Ж, Ш, Х, Ч, Щ и т.п., используя только первую букву транслитерации (Zh, Ш, Х, Ч, Щ…).
Правильно, эта функция присутствует в надстройке SEMTools и доступна всем: вам просто нужно скачать и установить! Затем эту функцию можно применить на листе как обычную функцию Excel. Например, = Транслит (A1)
Функция транслита (x как строка) как строка cyr = «abvgdeozhziyklmnoprstufkhtschshshchshch’yueyuya» lat = Array («», «a», «b», «v», «g», «d», «e», «e» , «zh», «z», «i», «y», «k», _ «l», «m», «n», «o», «p», «r», «s», «t», «u», «f», «kh», «ts», «ch», _ «sh», «sch», «y», «y», «», «e», «yu» «,» ya «) Для i = от 1 до 33 x = Replace (x, Mid (cyr, i, 1), lat (i) ,,, vbBinaryCompare) x = Replace (x, UCase (Mid (cyr, i, 1)), StrConv (lat (i), vbProperCase) ,,, vbBinaryCompare) Next Translit = x End Function
Заменить русские буквы на английские в Excel и наоборот
Надстройка SEMTools предлагает еще 4 варианта замены в дополнение к основному:
- Обратная транслитерация (с латиницы на кириллицу)
- «Изменить макет» — asdf -> fiva
- Замена букв в едином стиле — с кириллицы на латиницу
- Аналогичная замена английских букв, похожих на русские, на истинно русские
Последние два пункта тесно связаны с ситуациями, когда можно было найти русские слова, содержащие латинский алфавит, или английские слова с кириллическими символами, и теперь необходимо исправить этот текст.
Транслитерация
Как перевести кириллицу в транслит в Google Таблице и Excel?
При работе с большим количеством табличной информации, при парсинге с других забугорных сайтов и последующем размещением на сайте заказчика, возникает не мало проблематичных ситуаций с переименованием файлов. Приходится парсить изображения и названия, переводить на русский и размещать на сайте. Можно пустить самотеком, но удобней все файлы транслитерировать.
3.1
!!! Можно спарсить Pythonom, но изредка хочется немного «плебейского».
Транслитерация – это передача знаков одной письменности знаками другой письменности, при которой каждый знак (или последовательность знаков) одной системы письма передаётся соответствующим знаком (или последовательностью знаков) другой системы письма.
Самое прикольное, что функции такой нет в таблицах, но можно сделать разными способами. Мне понравился, и я постоянно пользуюсь способом подмены. Ниже приведена формула по которой я всё перевожу.
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ( ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ( ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ( ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ( ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ( ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ( ПОДСТАВИТЬ(A2;"А";"A");"Б";"B");"В";"V");"Г";"G");"Д";"D");"Е";"E");"Ё";"Yo");"Ж";"Zh");"З";"Z");"И";"I");"Й";"Y");"К";"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");"ё";"yo");"ж";"zh");"з";"z");"и"; "i");"й";"y");"к";"k");"л";"l");"м";"m");"н";"n");"о";"o");"п";"p");"р";"r");"с";"s");"т";"t");"у";"u");"ф";"f");"х";"kh");"ц"; "ts");"ч";"ch");"ш";"sh");"щ";"sch");"ъ";"y");"ы";"y");"ь";"");"э";"e");"ю";"yu");"я";"ya");" ";"-");",";"");".";"")
Формула транслита с помощью стандартных функций Excel
Выглядит массивно, но вункционально, это самое простое решение задачи. Используем поиск и подмену символов — ПОДСТАВИТЬ (англ. SUBSTITUTE). Формула принимает на вход 4 аргумента:
ПОДСТАВИТЬ(текст;стар_текст;нов_текст;[номер_вхождения])
- Текст Обязательный. Текст или ссылка на ячейку, содержащую текст, в котором подставляются знаки.
- Стар_текст Обязательный. Заменяемый текст.
- Нов_текст Обязательный. Текст, на который заменяется «стар_текст».
- Номер_вхождения Необязательный. Определяет, какое вхождение фрагмента «стар_текст» нужно заменить фрагментом «нов_текст». Если этот аргумент определен, то заменяется только заданное вхождение фрагмента «стар_текст». В противном случае все вхождения фрагмента «стар_текст» в тексте заменяются фрагментом «нов_текст».
Успехов Вам!!
Транслит
Если Вам часто приходится переводить кириллицу в транслит (а попробуйте-ка сделать это для фамилии «Кржижановский», например), то эта функция — для Вас.
Откройте редактор Visual Basic (Alt+F11), вставьте через меню новый пустой программный модуль (Insert — Module) и скопируйте туда текст этой функции:
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 2003 и старше — через меню Вставка — Функция (Insert — Function)
-
в Excel 2007 и новее — через вкладку Вставка — Функция (Insert — Function)
из категории Определенные пользователем (User defined):
В этом макросе варианты замены русских букв английскими эквивалентами представлены согласно ГОСТ. Если для вашей задачи нужны другие версии (например, русская «я» должна выводиться как «ja», а не как «ya» и т.д.), то можно свободно подкорректировать это в теле макроса. Как легко догадаться, два первых массива Rus и Eng как раз и кодируют эти подстановки.
Для новых версий Excel 2007-2010 и т.д. не забудьте сохранить вашу книгу как файл с поддержкой макросов (Macro Enabled Workbook), т.е. в формате XLSM.
Ссылки по теме
- Макрос-переводчик
- Преобразование русского текста в транслит с помощью надстройки PLEX
Now if you select a range on the sheet and run our macro with the Alt + F8 keyboard shortcut or on the Developer → Macros tab, then all English letters found in the selected cells will be replaced with Russian equivalent to them.
Replace the Cyrillic alphabet with the Latin alphabet (rschu -> home) -> the program will replace all the Cyrillic letters with the Latin letters corresponding to the same keyboard keys; Replace Latin with Cyrillic (vfvf -> mother) -> the program will replace all Latin letters with Cyrillic letters corresponding to the same keys on the keyboard.
How to replace all Russian letters with English ones?
To do this, we need to open WORD and find the word «replace» on the top panel, in the corner. Click on it and a window will open in which we can change the Russian letter to an identical English one. The same will happen if you use the hotkeys (CRTL + H).
How to write th transliteration?
Here the principle of phonetic correspondence of Russian and Latin letters is used: d → j, c → c, s → y, u → ju, i → ja or th → y, c → ts, h → ch, w → sh, e → ye, yu → yu, i → ya.
How to enable macro support in Excel?
Macro options do not change for all Office programs.
- Click the File tab.
- Click Options.
- Then select Trust Center and Trust Center Settings.
- In the Trust Center, click Macro Options.
- Make the selections you want and click OK.
Press Win + R keys on your keyboard, type regedit and press Enter, the Registry Editor will open. and on the right side, scroll to the end of this section. Double click on the ACP parameter, set the value to 1251 (Cyrillic code page), click OK and close the registry editor.
How to replace one letter in the whole text in Word?
Finding and replacing text
- Go to Home> Replace or press CTRL + H.
- In the Find box, enter your search word or phrase.
- In the Replace box, enter your new text.
- Click the Find Next button until you reach the word you want to change.
- Click the Replace button.
How to bypass Antiplagiat letter replacement?
Replacing Russian letters with English — anti-plagiarism
- LIFEHACK
- The fastest and most effective way to cheat anti-plagiarism is file encoding. …
- You check the uniqueness of the new file for free, make sure of the high percentage of originality, and then we send a check for payment.
How to print Russian text in Latin?
If you have a Russian keyboard layout, and you want to type in the Latin alphabet, go to the «I am typing in transliteration» mode and type in Cyrillic, it will automatically «be translated» into the Latin alphabet. The correspondence between the Cyrillic and Latin letters can be seen just above the transliteration window.
How to write correctly in Latin letters?
Answer: It is very easy to type Roman numerals on the keyboard — switch to the English input language on the keyboard (by the combination «Ctrl + Shift» or «Alt + Shift» or «Win + Space» depending on the settings of your Windows or other OS). Then press the «CapsLock» key to switch to the set in capital letters.
What does the name mean in transliteration?
Transliteration (transliteration) is the correspondence of letters to the Cyrillic and Latin alphabet Correctly enter the last name and first name of the passenger when ordering a plane ticket for domestic and international flights using the transliteration of GOST R 52535.1-2006 — for passports of the Russian Federation.
How to run a script in Excel?
Running a macro in the Developer tab
- Open the workbook containing the macro you want.
- On the Developer tab, in the Code group, click the Macros button.
- In the Macro name box, select the macro you want to run and click Run.
- You also have other options:
How to enable Visual Basic in Excel?
Launching the Visual Basic Editor
The easiest way to start the Visual Basic Editor in Excel is to press the Alt + F11 key combination (that is, press the Alt key and while holding it down, press the F11 key).
How do I use macros?
To assign a keyboard shortcut to a macro, do the following:
- Select Keyboard.
- In the Commands list, select the macro you want to record.
- In the New keyboard shortcut box, enter any key sequence, and then click Assign.
- To start recording the macro, click the Close button.
Если вам часто приходится переводить кириллицу в транслит (а попробуйте-ка сделать это для фамилии Кржижановский, например), то специальная пользовательская функция на 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 |
Теперь на любом листе этой книги вы можете использовать эту функцию, указав в качестве аргумента ячейку с русским текстом, который надо преобразовать в транслит.
В этом макросе варианты замены русских букв английскими эквивалентами представлены согласно ГОСТу. Если для вашей задачи нужны другие версии (например, русская «я» должна выводиться как «ja», а не как «ya» и т.д.), то можно свободно подкорректировать это в теле макроса. Как легко догадаться, два первых массива Rus и Eng как раз и задают эти подстановки.