Как транслитерировать текст в 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 (преобразовать текст на русском языке в транслит).
Ставьте лайки, подписывайтесь на наши группы в социальных сетях и следите за следующими уроками.
Как переводить текст в Excel с разных языков
Описание функции ПЕРЕВОД
После установки надстройки появится новая функция =ПЕРЕВОД( ТЕКСТ ; ЯЗЫК ;[ key ] ). Функция имеет 3 аргумента:
- ТЕКСТ — Собственно текст, который необходимо перевести. Максимальная длина текста составляет 10 000 символов.
- ЯЗЫК — Направление для перевода. Может задаваться одним из следующих способов:
- В виде пары кодов языков («с какого»-«на какой»), разделенных дефисом. Например, «en-ru» обозначает перевод с английского на русский.
- В виде кода конечного языка (например «ru»). В этом случае сервис Яндекс.Перевод пытается определить исходный язык автоматически.
Список доступных языков
Язык | Код |
---|---|
албанский | sq |
английский | en |
арабский | ar |
армянский | hy |
азербайджанский | az |
белорусский | be |
болгарский | bg |
боснийский | bs |
вьетнамский | vi |
венгерский | hu |
голландский | nl |
греческий | el |
грузинский | ka |
датский | da |
иврит | he |
индонезийский | id |
итальянский | it |
исландский | is |
испанский | es |
каталонский | ca |
китайский | zh |
корейский | ko |
латышский | lv |
литовский | lt |
малайский | ms |
мальтийский | mt |
македонский | mk |
немецкий | de |
норвежский | no |
польский | pl |
португальский | pt |
румынский | ro |
русский | ru |
сербский | sr |
словацкий | sk |
словенский | sl |
тайский | th |
турецкий | tr |
украинский | uk |
финский | fi |
французский | fr |
хорватский | hr |
чешский | cs |
шведский | sv |
эстонский | et |
японский | ja |
После установки надстройки, функцией можно будет пользоваться аналогично встроенной. Вот так выглядит стандартное окно ввода параметров функции ПЕРЕВОД. Далее приводятся различные примеры применения функций перевода.
Пример 1
Как уже было сказано переменную ЯЗЫК можно задавать двумя способами. Проще всего указать код конечного языка. В этом случае Яндекс сам попытается определить язык источника.
Пример 2
Более сложный способ — явно указать исходный язык и язык на который вам необходимо перевести.
Сравнивая результаты перевода с явным указанием источника перевода и без. Мне они показались идентичными. Скорость работы функции тоже не изменилась.
Упрощенные функции перевода
Как правило, мы пользуемся двумя языками: русским и английским. Чтобы упростить жизнь себе и пользователям я сделал еще 4 разновидности функции:
=ПереводRu( ТЕКСТ) — Переводит текст практически с любого языка на русский язык, используя сервис Яндекс.Перевод (язык источника указывать не нужно)
Пример 3
Вам необходимо указать только текст, который вы хотите перевести. Сервис Яндекс.Перевод автоматически попытается определить исходный язык текста.
=ПереводEn( ТЕКСТ) — Переводит текст с любого языка на английский язык, используя сервис Яндекс.Перевод (язык источника указывать не нужно).
Пример 4
Вам необходимо указать только текст, который вы хотите перевести. Сервис Яндекс.Перевод автоматически попытается определить исходный язык текста.
=ПереводEnRu( ТЕКСТ) — Переводит текст с английского языка на русский язык, используя сервис Яндекс.Перевод.
Пример 5
Упрощенная функция для перевода с английского на русский язык. Вам необходимо указать только текст, который вы хотите перевести.
=ПереводRuEn( ТЕКСТ) — Переводит текст с русского языка на английский язык, используя сервис Яндекс.Перевод.
Пример 6
Упрощенная функция для перевода с русского на английский язык. Вам необходимо указать только текст, который вы хотите перевести.
Перевод больших объемов текста
К сожалению, в сутки Яндекс позволяет перевести бесплатно не более 1 млн символов. Мы стараемся распределить этот объем пропорционально всем пользователям. Однако, в связи с ростом пользователей, этот объем стал достигаться достаточно часто.
Если Вам нужно переводить большой объем текста, то Вам необходимо получить у Яндекса так называемый API-ключ, с помощью которого Вы бесплатно сможете переводить не более 1 млн символов или же приобрести платный тариф для перевода большего объема текста. Это можно сделать из меню надстройки:
1. Перейдите к вкладке VBA-Excel, откройте меню Перевод, выберите пункт Ключ API.
2. Нажмите кнопку Получить API-ключ. Вы перейдете на страницу Яндекса.
3. На странице Яндекса получить API-ключ.
4. Вставьте полученный ключ в диалоговое окно программы.
При следующем использовании функций перевода, программа будет использовать Ваш ключ.
Также ключ можно использовать в самой формуле =ПЕРЕВОД( ТЕКСТ ; ЯЗЫК ;[ key ] ).
Транслитерация в Excel, замена русских букв на английские
Как перевести кириллицу в транслит в Excel?
Технически транслитерация — это замена по списку значений — символов на определенные их эквиваленты в другой раскладке. Значит, и задача состоит в том, чтобы в Excel осуществить эту серию замен.
Удивительно, но сделать такую массовую замену и транслитерировать текст в Excel можно множеством способов. Обо всех подробнее далее.
Формула транслита с помощью стандартных функций Excel
Наименее изящное, тем не менее, самое простое решение задачи. В Excel для замены символов есть функция ПОДСТАВИТЬ (англ. SUBSTITUTE). Формула принимает на вход 4 аргумента:
- Текст для обработки, в котором будет производиться замена (текст)
- Заменяемый фрагмент (стар_текст)
- На что заменить (нов_текст)
- Какой по счету встреченный в значении фрагмент заменить. (номер_вхождения)
Четвертый параметр является опциональным и, если он не заполнен, заменяются все встреченные в тексте фрагменты.
Как раз то, что нам нужно! Поскольку Excel позволяет составлять сложные вложенные функции, мы можем сделать эту серию замен в одной много раз вложенной формуле.
Но есть несколько проблем, которые в сочетании не дают возможность сделать идеальную единую формулу транслита. Вот они:
- В русском алфавите 33 буквы
- Идеальная формула транслита должна сохранять при замене регистр символов. Благо, функция «ПОДСТАВИТЬ» — регистрозависимая. Получается, что нужно делать не 33, а 66 замен. Но
- в Excel есть ограничение количества уровней вложенности в одной формуле — 64.
Будь в русском алфавите хотя бы на одну букву меньше, мы бы уложились в ограничения Excel. Есть ли решение? Да, довольно простое.
Формула на 64 уровня вложенности без заглавных Ъ и Ь
Как правило, заглавные буквы в словах бывают, если это начало слова. Или если это аббревиатура, но аббревиатуры тоже составляются из первых букв слов.
А вы знаете слова, начинающиеся с Ъ или Ь? 🙂
Кажется, их можно пропустить. Так мы экономим два уровня вложенности и укладываемся в лимиты Excel (66 — 2 = 64)!
Важно также учитывать, что при транслитерации заглавных букв Ж, Ш, Ч, Щ и т.д., когда английский эквивалент состоит из нескольких букв, заглавной на латинице должна быть только первая. Интернет полон решениями, где этот момент не учтен. Итак, вот наиболее полная корректная формула:
Скачать файл-шаблон с транслитерацией
Формула выше на основе функции ПОДСТАВИТЬ с несколькими условиями может быть видоизменена — вместо явного прописывания текстовых значений, можно сделать ее на основе конкретных ячеек. Чем удобнее такой подход? Тем, что формулу менять не нужно, а данные для замены представлены в удобном для восприятия и редактирования формате в столбцах A и B.
Транслитерация с помощью таблицы замен и формулы с 64 уровнями вложенности
По ссылке можно скачать файл-шаблон, в котором применены эти функции.
Формулы транслита, итоги
У подхода с созданием таких мега формул есть свои плюсы и минусы. Минус один — они громоздки и такое не так-то просто сходу набрать. Поэтому их нужно где-то хранить и копировать при необходимости.
Плюсы в основном происходят из недостатков VBA-кода:
- Формулы листа железно сработают в любой версии Excel на любом компьютере, даже с самыми жесткими политиками защиты данных
- Они легко изменяются, если нужно переделать правила транслитерации, и довольно просты
- Транспортабельны, т.е. формулы не «слетят», если их отправить кому-либо и открыть на другом компьютере
Функция на VBA
Код пользовательской функции, которая транслитерирует строчные в строчные, а заглавные — в заглавные, и при этом транслитерирует заглавные буквы Ж, Ш, Х, Ч, Щ и подобные, делая в транслите заглавной только первую букву (Zh, Sh, Kh, Ch, Sch…).
Точь-в-точь эта функция присутствует в надстройке !SEMTools и доступна всем желающим — нужно только скачать и установить !SEMTools. Далее функцию можно применять как обычную функцию Excel на листе. Например, =Translit(A1)
Заменить русские буквы на английские в Excel и наоборот
Надстройка !SEMTools предлагает помимо основного еще 4 варианта замены:
- Обратный транслит (из латиницы в кириллицу)
- «Смена раскладки» — asdf -> фыва
- Замена букв с идентичным начертанием — кириллица в латиницу
- Аналогичная замена английских букв, похожих на русские, на действительно русские
Последние два пункта тесно связаны с ситуациями, когда удалось найти русские слова, содержащие латиницу или английские слова с кириллическими символами, и теперь нужно исправить такой текст.
Чтобы произвести транслитерацию, достаточно просто выделить столбец с данными и вызвать нужную процедуру. Данные изменятся на месте.
Транслитерация в !SEMTools