Cyrillic to latin excel

Транслитерация в excel довольно распространенная задача. Сделать транслит в Excel — значит, русские буквы превратить в английские или латинские

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

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

Видео для тех, кто не любит читать

Итак, у нас есть таблица с ФИО сотрудников. Нужно сделать транслитерацию этих данных.

транслитерация в excel

1. Нажмем клавиши Alt + F11, чтобы перейти в редактор Visual Basic

2. В окне редактора Visual Basic перейдем в меню InsertModule

транслитерация в excel

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. Перейдите на вкладку меню ФормулыВставить функцию.

транслитерация в excel

7. В выпадающем списке Категория выберите Определенные пользователем.

транслитерация в excel

8. Созданная для транслитерации функция называется Translit. Выделите ее и нажмите Ок.

транслитерация в excel

9. Установив курсор в поле Txt, щелкните по первой ячейке, для которой нужно сделать транслитерацию. Нажмите Ок.

транслитерация в excel

10. Скопируйте формулу до конца списка, потянув за нижний правый уголок выделенной ячейки. Транслитерация в Excel готова.

транслитерация в excel

Теперь транслитерация ячеек excel будет производиться макросом автоматически, достаточно указать или вызвать формулу =Translit(). Это удобно, если у вас большой список слов для транслитерации и вручную сделать это сложно. 


   Сообщество Excel Analytics | обучение Excel

    Канал на Яндекс.Дзен 

  • Формула транслита с помощью стандартных функций Excel
    • Формула на 64 уровня вложенности без заглавных Ъ и Ь
    • Скачать файл-шаблон с транслитерацией
    • Формулы транслита, итоги
  • Функция на VBA
  • Заменить русские буквы на английские в Excel и наоборот
Пример результата транслитерации в Excel

Как перевести кириллицу в транслит в Excel?

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

Удивительно, но сделать такую массовую замену и транслитерировать текст в Excel можно множеством способов. Обо всех подробнее далее.

Наименее изящное, тем не менее, самое простое решение задачи. В Excel для замены символов есть функция ПОДСТАВИТЬ (англ. SUBSTITUTE). Формула принимает на вход 4 аргумента:

  1. Текст для обработки, в котором будет производиться замена (текст);
  2. Заменяемый фрагмент (стар_текст);
  3. На что заменить (нов_текст);
  4. Какой по счету встреченный в значении фрагмент заменить. (номер_вхождения).
Синтаксис Excel формулы ПОДСТАВИТЬ

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

Как раз то, что нам нужно! Поскольку 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.

Транслитерация с помощью таблицы замен и формулы с 64 уровнями вложенности

Транслитерация с помощью таблицы замен и формулы с 64 уровнями вложенности

По ссылке можно скачать файл-шаблон, в котором применены эти функции.

Формулы транслита, итоги

У подхода с созданием таких мега формул есть свои плюсы и минусы. Минус один – они громоздки и такое не так-то просто сходу набрать. Поэтому их нужно где-то хранить и копировать при необходимости.

Плюсы в основном происходят из недостатков 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 варианта замены:

  1. Обратный транслит (из латиницы в кириллицу);
  2. “Смена раскладки” – asdf -> фыва;
  3. Замена букв с идентичным начертанием — кириллица в латиницу;
  4. Аналогичная замена английских букв, похожих на русские, на действительно русские.

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

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

Транслитерация в !SEMTools

Нужно сделать транслитерацию русского на латиницу в Excel или наоборот?
Быстро решить эту и более 500 других задач поможет надстройка !SEMTools.

Содержание

  1. Транслитерация в Excel: как сделать русские буквы латинскими автоматически
  2. Видео для тех, кто не любит читать
  3. Транслитерация в Excel
  4. Формула транслита с помощью стандартных функций Excel
  5. Формула на 64 уровня вложенности без заглавных Ъ и Ь
  6. Скачать файл-шаблон с транслитерацией
  7. Формулы транслита, итоги
  8. Функция на VBA
  9. Заменить русские буквы на английские в Excel и наоборот
  10. Транслит excel
  11. Транслит
  12. Некоторые функции эксель
  13. Транслитерация в экселе
  14. Транслит (Формулы/Formulas)
  15. Транслитерация текста в ячейке
  16. Транслитерация из латиницы в кириллицу
  17. Как преобразовать русские буквы в латиницу?
  18. Имена с латиницы на Кириллицу (Макросы/Sub)
  19. Макрос-переводчик
  20. Транслитерация. Сохранение форматирования текста

Транслитерация в Excel: как сделать русские буквы латинскими автоматически

Транслитерация в excel довольно распространенная задача. Сделать транслит в Excel — значит, русские буквы превратить в английские или латинские

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

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

Видео для тех, кто не любит читать

Итак, у нас есть таблица с ФИО сотрудников. Нужно сделать транслитерацию этих данных.

1. Нажмем клавиши Alt + F11, чтобы перейти в редактор Visual Basic.

2. В окне редактора Visual Basic перейдем в меню InsertModule

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 аргумента в качестве входных данных:

  1. Текст для обработки, в котором будет произведена замена (текст)
  2. Фрагмент для замены (old_text)
  3. На что заменить (новый_текст)
  4. Какой фрагмент встречается по смыслу, подлежащему замене. (число_звук)

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

Как раз то, что нам нужно! Поскольку 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 варианта замены в дополнение к основному:

  1. Обратная транслитерация (с латиницы на кириллицу)
  2. «Изменить макет» — asdf -> fiva
  3. Замена букв в едином стиле — с кириллицы на латиницу
  4. Аналогичная замена английских букв, похожих на русские, на истинно русские

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

Источник

Транслит 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»,​ 1040​KuklP​Dim x, p2​ данных,только макросы.​ Мне надо перевести​ рабочего файла вы​ Workbook), т.е. в​ переводить кириллицу в​: удобнее по другому​ sText, vFindText, vReplText,​ GoTo 1 End​1. Как увеличить​Björn Ferry -​ Передать к обработке​ «с», «т», «у»,​ «Sh», «Zch», «»»,​ «u», «f», «h»,​Select Case j​: Леш,дружище, это не​For Each x​SIMRus​ столбик имени​ сможете использовать эту​ формате 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 To​k = 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 Next​k = k + 2​
​ равно, спасибо.​End Function​ — [​II4eJI​https://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, Rng​Mid(out, k) =​ друга поддерживаем. А​: ну и мой​: В архив, предпочтительно​: Две колонки​ окошком «В русский»,​ можно попробовать так:​Function Translit(Txt As​

​ если убрать из​
​в основном, называются​ буквами mNewString =UnTranslit​ «Ь», «Ю», «Я»,​ To 66 sValue​
​ As Range Set​

​ Mid$(txt, i, 1)​​ ты у нас​ вариант​ .rar​EN — 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 Select​MCH​: Протестил Ваш вариант,​: ЗЫ и этот​B — Б​ excel​ соответствие русских букв​ Variant Rus =​ «z» MK00 «и»,​ _ «eh», «ju»,​ слова из соседней​ ‘количество языков перевода,​Правда, как с​ Удачи.​ «b», «v», «g»,​ , , vbBinaryCompare)​ диапазон For Each​Next​:​ он подходит полностью!Спасибо!​ файл не открывается.​C — С​Alesto911​ транслиту, сообразить какуюто​ Array(«а», «б», «в»,​ «i» MK00 «й»,​ «ja», _ «jo»,​ колонки, т.е. переведены​ включая русский​ использованием транслита изобразить​Alexander_G​ «d», «e», «je»,​ ‘MS Excel 2000​ rCell In Rng​TranslitFast = 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​
​ после транслитерации?​dimakdd​dimakdd​: В 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 String​​AlexM​ тема и создана.​ текст новой функции,​ «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»,​
​ к каждой букве​

​ куда поставить Option​​nerv​ это учтено :)​ j%, outchr$, outstr$​: Существует задача транслитерировать​ в кириллицу​ файле:​ _ «k», «l»,​ .Text = N1Z​ текст целиком -​ «т», «у», «ф»,​ видит ТОЧНОЕ совпадение​Создаём Excel-документ. В​Rus = Array(«а»,​ If UkraineLang(j) =​ «u», «V», «v»,​ транслит. на руском​ Explicit, добавляется к​: и еще небольшой​
​Alex_ST​Dim 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 Next​Sergei 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 Sub​IvanOK​ документа в другой.​ «о», «п», «р»,​ = 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​ в указанном примере.​Что касается Option​End 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 = 3​Dim 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»,​ Вопрос был не​ частотности применительно к​ (например, ч/з функцию​Ну а Option​Static 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.ClearFormatting​​Transliteraцija. Sohranenie formatirovanija​ Редактор Visual Basic​ реально люди тратят​ 0 To 64​ две функции и​ и отчеств)​ вобще лучьше учить​

​ не станет :)​ I J K​​ TS CH SH​For 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 YU​​c = Mid(txt,​​ структуры документ в​​ «Ya», «a», «b»,​For I =​В этом макросе варианты​​ Но когда я​ = «=» ‘N2Z​Kak 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​) и копируем туда​ Используя Макросы Excel​flag = 1​
​ запустите. Поэтому Aksima​ она размыта «в​Sergei Sonin​Option Explicit Function​ F KH TS​For 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 = False​111​ двух макросов:​ можно решить за​End If​ процедуру​ т/литерации UA-UK. Может​ я бы начал​ iCount%, iTranslit As​ » Y ‘​c = Mid(txt,​ 0 To 65​ — [​ «k», «l», «m»,​flag = 0​ для вашей задачи​ Function not defined»Макрос​ .MatchCase = False​Sasha_Smirnov​Sub Translate() Dim​ 5-10 минут.​

​Next J​​Sub 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 Else​s = «АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя»​ ‘Запозичено з [url]http://www.moonexcel.ho.ua/[/url]​Например, так:​ «V», «G», «D»,​ zh z i​ 0 To 65​flag = 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 l​If 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 Then​End 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 s​outChr = Eng(j)​Next j​ не открывается. И​ «ya») s =​Exit For​ свободно подкорректировать это​, не, я говорю​ Sub​ бы знать!).​ перевода, включая русский​ «Флаги»). На Лист1​Translit = outstr​ заменить любой фразой​ букв латинськими (англ.)​ As String, iCount​ «N», «O», «P»,​ t u f​flag = True​If flag Then​ следите за размером​ Ячейка.Value For i​End If​ в теле макроса.​ про макрос​Yoooo​Как-как. инструментом Поиск-Замена!​ For Each cell1​ я ввёл фамилию​End Function​ русским языком). Потом​ Dim UkraineLang, EngLang​ As Integer, sTranslit​ «R», «S», «T»,​ kh ts ch​Exit For​ outstr = outstr​ (не более 100​ = LBound(sRussian) To​Next 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,​MCH​Function FamIO(s As​Игорь, файл то​ в экселе перевести​4. Сохранить.​ файл с поддержкой​

Источник

На чтение 5 мин. Просмотров 2k. Опубликовано 15.12.2019

Содержание

  1. Описание функции
  2. Пример
  3. Первый способ транслитерировать русский текст
  4. Второй способ перевода русского текста в транслит в 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. Подробнее обо всех ниже.

Наименее элегантное, но самое простое решение проблемы. В Excel есть функция REPLACE для замены символов. Формула принимает 4 аргумента в качестве входных данных:

  1. Текст для обработки, в котором будет произведена замена (текст)
  2. Фрагмент для замены (old_text)
  3. На что заменить (новый_текст)
  4. Какой фрагмент встречается по смыслу, подлежащему замене. (число_звук)

ЗАМЕНА формулы синтаксиса Excel

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

Как раз то, что нам нужно! Поскольку 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 уровнями вложенности Транслитерация с таблицей подстановок и формулой с 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 варианта замены в дополнение к основному:

  1. Обратная транслитерация (с латиницы на кириллицу)
  2. «Изменить макет» — asdf -> fiva
  3. Замена букв в едином стиле — с кириллицы на латиницу
  4. Аналогичная замена английских букв, похожих на русские, на истинно русские

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

Как перевести кириллицу в транслит в Google Таблице и Excel

Транслитерация

Как перевести кириллицу в транслит в Google Таблице и Excel?

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

3.1

!!! Можно спарсить Pythonom, но изредка хочется немного «плебейского».

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

Транслитерация Google Таблице и ExcelСамое прикольное, что функции такой нет в таблицах, но можно сделать разными способами. Мне понравился, и я постоянно пользуюсь способом подмены. Ниже приведена формула по которой я всё перевожу.

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ( ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ( ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ( ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ( ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ( ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ( ПОДСТАВИТЬ(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):

translit.gif

В этом макросе варианты замены русских букв английскими эквивалентами представлены согласно ГОСТ. Если для вашей задачи нужны другие версии (например, русская «я» должна выводиться как «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.

  1. Click the File tab.
  2. Click Options.
  3. Then select Trust Center and Trust Center Settings.
  4. In the Trust Center, click Macro Options.
  5. 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

  1. Go to Home> Replace or press CTRL + H.
  2. In the Find box, enter your search word or phrase.
  3. In the Replace box, enter your new text.
  4. Click the Find Next button until you reach the word you want to change.
  5. Click the Replace button.

How to bypass Antiplagiat letter replacement?

Replacing Russian letters with English — anti-plagiarism

  1. LIFEHACK
  2. The fastest and most effective way to cheat anti-plagiarism is file encoding. …
  3. 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

  1. Open the workbook containing the macro you want.
  2. On the Developer tab, in the Code group, click the Macros button.
  3. In the Macro name box, select the macro you want to run and click Run.
  4. 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:

  1. Select Keyboard.
  2. In the Commands list, select the macro you want to record.
  3. In the New keyboard shortcut box, enter any key sequence, and then click Assign.
  4. 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 как раз и задают эти подстановки.

Понравилась статья? Поделить с друзьями:
  • Cycle the correct word have we got
  • Data logging with excel
  • Data lists in excel
  • Data links in word
  • Data lines in excel