- Найти латиницу в Excel – функция
- Найти кириллицу в Excel – функция
- Как найти прописные буквы
- Функция поиска прописных символов латиницы
- Функция поиска прописных кириллических символов
- Функция поиска любых прописных символов
- Функции “Найти латиницу” и “Найти кириллицу” с помощью UDF
- Найти латинские буквы в 2 клика
- Найти слова, содержащие и кириллицу, и латиницу
- С помощью регулярных выражений
- В две итерации
- Кейсы дальнейшего взаимодействия с данными
- Удалить
- Извлечь
- Изменить регистр
- Заменить символы
Важно: поскольку термин “найти” часто в сознании людей предполагает “найти и извлечь”, сразу оговоримся, что ниже именно булевая интерпретация поиска, иначе говоря, результата два – нашёл или не нашёл. Похожая, но все же другая задача – извлечь символы латиницы.
Текст, содержащий латиницу помимо кириллицы — довольно частое явление, и выявить, в какой раскладке текст, не всегда возможно визуально. Начертание многих символов в обеих раскладках идентично.
Когда нужно просто глазами обнаружить латиницу среди кириллических символов или наоборот, кириллицу в английском тексте, есть очень простое решение – использование неклассических шрифтов в Excel.
Например, Dubai Light сделает латиницу тоньше, Dubai Medium – жирнее кириллицы, Microsoft Himalaya – ниже, а Ink Free – выделит ее курсивом.
Но когда исходных данных много, важно не просто видеть, но и иметь возможность отфильтровать или отсортировать такие ячейки. Вариантов упростить и ускорить решение задачи несколько.
Задача поиска букв латинского алфавита в тексте – одна из нетривиальных в Excel, как и поиска любой длинной последовательности единичных символов. Как и в случае с поиском цифр, при обычном поиске придется перебирать все латинские буквы – а их 26, что ещё больше, чем цифр.
Составная формула массива пригодится в случаях, когда не хочется или нет возможности пользоваться макросами или пользовательскими функциями (UDF):
=СЧЁТ(ПОИСК({"a":"b":"c":"d":"e":"f":"g":"h":"i":"j":"k":"l":"m":"n":"o":"p":"q":"r":"s":"t":"u":"v":"w":"x":"y":"z"};A1))>0
Здесь A1 — ячейка, которую мы хотим “проверить” на наличие в ней латиницы. Функция возвращает “ИСТИНА” или “ЛОЖЬ”. Важно отметить, что функция “ПОИСК” не является регистрозависимой, поэтому позволяет найти буквы в любом регистре.
Можно ли диапазон букв выразить иным способом? Да, формулой массива, а помогут в этом функция СИМВОЛ и функция СТРОКА:
{=СЧЁТ(ПОИСК(СИМВОЛ(СТРОКА(65:90));A1))>0}
Отличие этой формулы массива от предыдущей – её нужно вводить без фигурных скобок, они появятся при вводе формулы сочетанием Ctrl + Shift + Enter (вместо обычного Enter). В формуле выше, где явно прописаны все буквы, фигурные скобки вводятся вручную — это явное указание строкового массива.
Найти кириллицу в Excel – функция
Как вы, наверное, догадались, найти кириллицу в тексте можно аналогичным путем:
=СЧЁТ(ПОИСК({"а":"б":"в":"г":"д":"е":"ё":"ж":"з":"и":"й":"к":"л":"м":"н":"о":"п":"р":"с":"т":"у":"ф":"х":"ц":"ч":"ш":"щ":"ъ":"ы":"ь":"э":"ю":"я"};A1))>0
Или формулой массива с функцией СИМВОЛ:
{=СЧЁТ(ПОИСК(СИМВОЛ(СТРОКА(192:223));A1))>0}
Формула массива будет работать корректно, если языком системы для non-Unicode программ выбран русский.
Есть небольшая разница в двух этих формулах – вторая в отличие от первой использует 32 буквы, т.к. буква Ё не входит в диапазон символов.
Как найти прописные буквы
В отличие от “ПОИСК”, “НАЙТИ” – функция регистрозависимая, что позволяет найти буквы в том регистре, в котором они перечислены.
Функция поиска прописных символов латиницы
=СЧЁТ(НАЙТИ({"A":"B":"C":"D":"E":"F":"G":"H":"I":"J":"K":"L":"M":"N":"O":"P":"Q":"R":"S":"T":"U":"V":"W":"X":"Y":"Z"};A1))>0
Функция поиска прописных кириллических символов
=СЧЁТ(НАЙТИ({"А":"Б":"В":"Г":"Д":"Е":"Ё":"Ж":"З":"И":"Й":"К":"Л":"М":"Н":"О":"П":"Р":"С":"Т":"У":"Ф":"Х":"Ц":"Ч":"Ш":"Щ":"Ъ":"Ы":"Ь":"Э":"Ю":"Я"};A1))>0
Функция поиска любых прописных символов
Поможет вам найти в ячейке символы и кириллицы, и латиницы, если они написаны заглавными буквами.
=СЧЁТ(НАЙТИ({"А":"Б":"В":"Г":"Д":"Е":"Ё":"Ж":"З":"И":"Й":"К":"Л":"М":"Н":"О":"П":"Р":"С":"Т":"У":"Ф":"Х":"Ц":"Ч":"Ш":"Щ":"Ъ":"Ы":"Ь":"Э":"Ю":"Я":"A":"B":"C":"D":"E":"F":"G":"H":"I":"J":"K":"L":"M":"N":"O":"P":"Q":"R":"S":"T":"U":"V":"W":"X":"Y":"Z"};A1))>0
Для поиска цифр в ячейке можно использовать такой же синтаксис.
Функции “Найти латиницу” и “Найти кириллицу” с помощью UDF
UDF (User-defined function, пользовательская функция) – тем, кто часто использует функции такого плана, помогут упростить синтаксис на листе, т.к. содержат калькуляции в коде.
Function найтиЛатиницу(txt As String) As Boolean
найтиЛатиницу = txt Like "*[A-z]*"
End Function
Function найтиКириллицу(txt As String) As Boolean
найтиКириллицу= txt Like "*[А-яЁё]*"
End Function
Найти латинские буквы в 2 клика
Максимально быстрый способ проверки на наличие латиницы в Excel доступен пользователям !SEMTools.
Порядок действий: скопировать диапазон, выделить скопированное и вызвать макрос в меню «Найти символы» группы «ОБНАРУЖИТЬ».
Найти слова, содержащие и кириллицу, и латиницу
Иногда простой поиск в ячейке латиницы и кириллицы не решает проблему, т.к. в ячейке изначально подразумевается наличие обоих видов символов. Например, “автомобиль Tоyоta”, “холодильник Siеmеns”. В двух этих примерах специально вставлены буквы из другого алфавита: Tоyоta содержит кириллическую “о”, а Siеmеns – кириллическую “e”. Начертание этих символов идентичное, но вот для роботов это совершенно разные символы.
Как с помощью Excel проверить отличие в написании букв на латинице или кириллице в отдельных словах? Формулы выше не отличат фразы, написанные корректно, от фраз, написанных некорректно, так как отдадут “ИСТИНА” всем фразам при проверке на кириллицу и латиницу.
Решить проблему можно, если искать по конкретным словам! В !SEMTools есть два решения этой задачи:
С помощью регулярных выражений
Процедура находится в меню “ОБНАРУЖИТЬ” – “Слова” – “По паттерну”. Паттерн REGEX позволяет решить задачу в один заход, т.к. в нем есть оператор “ИЛИ”.
Данное выражение означает, что нужно найти слова, в которых или после кириллического символа идет символ латиницы, или наоборот. При этом между символами могут быть внутри слова любые другие символы (цифры, дефисы и любые другие, кроме пробела).
([a-zA-Z].*[а-яА-ЯёЁ]|[а-яА-ЯёЁ].*[a-zA-Z])
Важно понимать, что сам паттерн применим к любой строке вне зависимости от количества слов в ней, но в рамках указанной процедуры !SEMTools применяется к отдельным словам.
В две итерации
Данный метод совершенно логичен, но требует чуть больше времени. Нужно просто сначала извлечь слова, содержащие латиницу, а потом, уже среди извлеченных этим способом, искать слова, содержащие кириллицу.
Кейсы дальнейшего взаимодействия с данными
Найти слова, содержащие кириллицу, латиницу или оба вида символов одновременно, – только полдела. За этапом их обнаружения зачастую следуют дальнейшие действия.
Удалить
Иногда нужно целиком удалить слова, содержащие латиницу. Дело в том, что в них могут находиться другие символы – цифры, кириллица, дефисы и другие знаки. Они останутся, если удалить из текста латиницу и ничего больше.
Извлечь
Можно захотеть извлечь латиницу. В !SEMTools это можно делать с помощью регулярных выражений, в том числе извлечь слова, содержащие латиницу, чтобы посчитать количество слов и посмотреть на их структуру. Из каталога товаров, например, быстро извлекать бренды, написанные на английском языке.
Изменить регистр
Бывают ситуации, когда слова, содержащие латиницу, имеет смысл сделать с заглавной буквы — это касается все тех же иностранных брендов.
Заменить символы
И, наконец, бывают ситуации, когда нужно заменить кириллицу на латиницу – но и здесь возможны вариации: можно транслитерировать, сменить раскладку или заменить символы на похожие с ними на другом языке. Подробнее про последний кейс: заменить русские буквы на английские и наоборот.
Про каждый из этих кейсов можно почитать с соответствующем разделе сайта, в надстройке присутствуют макросы для быстрой обработки подобных ситуаций.
Часто сталкиваетесь с этой или похожими задачами при работе в Excel?
!SEMTools поможет решить их быстро и легко!
Поиск символов латиницы в русском тексте
Одна из типовых ситуаций, с которой все мы однажды сталкиваемся: кто-то (возможно даже мы сами) при наборе текстовой информации в ячейку, случайно использовал английские буквы (латиницу) вместо русских (кириллицы). Допустить такую ошибку достаточно легко, особенно если учесть изощренное расположение некоторых символов в стандартной раскладке клавиатуры. Ну какому идиоту, скажите мне, пришло в голову помещать на одну клавишу две одинаковых по написанию буквы (английская “си” и русская “эс”)? Да и с другими символами не лучше. Но, как говорится, “фарш невозможно провернуть назад” – текущая раскладка давно стала стандартом и никуда от этого не деться.
Использование символов латиницы в русском тексте порождает огромное количество проблем. От путаницы при банальной сортировке по алфавиту до некорректной консолидации данных при автоматическом объединении нескольких таблиц в одну.
Выискивать похожие по виду символы и проверять не являются ли они символами английской раскладки крайне муторно. Поэтому поищем более изящные варианты…
Способ 1. Шрифт без кириллицы
Выделите диапазон ячеек с проверяемым текстом и временно установите для него любой шрифт не содержащий кириллицу, например Albertus или любой аналогичный (находится методом тыка). Внешний вид символов кириллицы и латиницы станет отличаться и можно будет легко визуально локализовать некорректные символы:
Способ 2. Функция IsLatin на VBA
Создадим пользовательскую функцию (назовем ее, например, IsLatin), которая будет проверять – присутствуют ли в заданной ячейке символы английского алфавита и выдавать в качестве результата логическое значение ИСТИНА или ЛОЖЬ.
Откройте редактор Visual Basic сочетанием клавиш ALT+F11 или в старых версиях Excel – через меню Сервис – Макрос – Редактор Visual Basic (Tools – Macro – Visual Basic Editor), вставьте новый модуль (меню Insert – Module) и скопируйте туда текст этой функции:
Public Function IsLatin(str As String) str = LCase(str) LatinAlphbet = "*[abcdefghijklmnopqrstuvwxyz]*" If str Like LatinAlphbet Then IsLatin = True Else IsLatin = False End If End Function
Закройте редактор Visual Basic и вернитесь в Excel.
Теперь в Мастере функций в категории Определенные пользователем (User Defined) можно найти нашу функцию IsLatin и воспользоваться ей. Синтаксис функции следующий:
=IsLatin(A2)
где для примера А2 – это адрес ячейки, содержащей текст
Функция выдаст значение ИСТИНА (TRUE), если найдет в тексте А2 хотя бы один символ латиницы. В противном случае функция вернет значение ЛОЖЬ (FALSE):
Способ 3. Подсветка символов латиницы красным цветом шрифта
Откройте редактор Visual Basic сочетанием клавиш ALT+F11 или в старых версиях Excel – через меню Сервис – Макрос – Редактор Visual Basic (Tools – Macro – Visual Basic Editor), вставьте новый модуль (меню Insert – Module) и скопируйте туда текст этого макроса:
Sub ShowLatin() For Each c In Selection For i = 1 To Len(c) If (Asc(Mid(c, i, 1)) >= 65 And Asc(Mid(c, i, 1)) <= 90) Or _ (Asc(Mid(c, i, 1)) >= 97 And Asc(Mid(c, i, 1)) <= 122) Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3 End If Next i Next c End Sub
Закройте редактор Visual Basic и вернитесь в Excel. Если теперь выделить интересующий диапазон ячеек (только не весь столбец или лист – а то считать до конца дня будет!) и запустить наш макрос с помощью сочетания клавиш ALT+F8 или через меню Сервис – Макрос – Макросы (Tools – Macro – Macros), то символы латиницы выделятся красным цветом шрифта:
Ссылки по теме
- Подсветка латиницы с помощью надстройки PLEX
- Что такое макросы, куда вставлять код макроса, как их использовать
Как найти подмену символов латиницы на кириллицу и наоборот в тексте или программе
Поиск онлайн
Подсветка в тексте символов букв русской или английской раскладки
(выделение цветом латиницы или кириллицы) в онлайн режиме или
оффлайн окне браузера (JavaScript)
Сегодня потратил больше часа на поиск ошибки в уже работающей программе. Она стала напрочь отказываться работать, после введения довольно большого количества дополнительных поправок. После отключения режима ‘use strict’ что-то заработало, но неправильно, – стало ясно, что ошибка в переменной. но найти ее при проверке переменных так и не удалось… Пришлось постепенно откатывать введенные поправки (по закону подлости почти все), тут и обнаружилось что в одной из переменных “year” вместо “игрек” стояла наша русская “у”.
Решил, потрачу часик и сделаю программку подсветки символов, чтобы подобная напасть больше не повторялась. Часик вылился в вечерок, до поздней ночи, но своего я добился, теперь программа подсветки кириллических или латинских символов прямо в браузере, онлайн, у меня под рукой…
Поместил ее в копилке блога, может кому-то еще пригодится:
Подсветка в тексте символов букв русской или английской раскладки
Нужно выделить:
Латиницу
Кириллицу
Всего знаков: 175; знаков c пробелами: 172; знаков без пробелов: 147.
ВНИМАНИЕ! При перезагрузке страницы введенная информация не сохраняется!
– отключить подсветку чисел;
– включить подсветку чисел.
Для удобства работы можно открыть отдельно виджет подсветки символов различных раскладок
Полагаю, что поиск опечаток из-за ошибок переключения раскладки в обычном тексте, тоже может улучшить его качество, хотя здесь чаще всего помогает проверка правописания… А в Word есть еще некий экзотический шрифт, в котором латинские и кириллические символы разительно отличаются друг от друга (названия не помню, но когда-то пользовался…)
Если в тексте много специальных терминов, думаю, что лучше всего провериться здесь…
P.S. 17.04.2018 – Добавлен счетчик знаков в исходном тексте он расположен под боксом проверки символов (в боксе с подсветкой символов rus – eng раскладок знаки не подсчитываются).
“Все знаки” – учитываются все буквы, знаки препинания, пробелы и неотображаемые знаки табуляции;
“знаки с пробелами” – подсчитываются буквы, знаки препинания и пробелы;
“знаки без пробелов” – подсчитываются только буквы и знаки препинания.
В заключение хочется отметить: Важным премуществом предложенной здесь программы является тот факт, что обработка всех данных происходит исключительно на Вашем устройстве с помощью загруженного вместе со страницей безопасного Java Script кода, и вводимая в текст-бокс информация ни на какие сторонние серверы не отправляется, более того, при перезагрузке страницы она полностью стирается. Еще мне понравилась идея визуализации текстовых символов различного назначения и проведения на одной странице различных видов статистической обработки текста. Правда, пока она реализована как дополнение программы подсветки символов простейшим счетчиком знаков в том числе и неотображаемых табуляционных. В случае, если вам необходимая еще какая-то статистическая информация о символах в тексте, например, количество или частота букв “а” или “о”, пишите…
● Главная
▸ Статьи
▸ Блог
▸ Копилка
✔ Как найти подмену символов раскладки
Иногда в тексте, написанном на русском языке, может оказаться буква из английского алфавита, или наоборот – в английском тексте спрячется русская буква. Большинство сайтов, компьютерных программ и информационных систем никак не это не отреагируют. Но есть некоторые “уникальные” ресурсы, жестко требующие определенную раскладку.
Визуально невозможно отличить русские буквы А, Е, К, М, Н, О, Р, С, Т, В от английских A, E, K, M, H, O, P, C, T, B.
Также очень похожи русский заглавный мягкий знак – Ь и прописная английская буква b.
На этой странице можно проверить, есть ли в тексте символы из другой раскладки.
Нужно вставить скопированный текст в текстовое поле и указать раскладку, на которой данный текст написан – русскую или английскую.
В результате вы увидите под текстовым полем “чужие” буквы, написанные на другом языке.
Форма проверки наличия символов из другой раскладки
Выберите – на каком языке написан ваш текст:
английский
русский
Буквы на “неправильном” языке выделены красным (если есть такие):
Комментарии ()
Оставьте свой комментарий
Как в русском тексте в Excel или Word быстро найти английскую букву? А наборот, русскую в английском?
Чтобы в русском или, правильнее будет сказать, в кириллическом тексте в Excel или Word быстро найти английскую букву, измените шрифт на Algerian и латинские символы будут выделены жирным :
Соответственно, для противоположной задачи, то есть для поиска русских символов, точно также меняем шрифт и русские буквы в тексте останутся нежирными:
Задачу поиска в выделенном диапазоне ячеек кириллических символов также решает такой небольшой макрос для Microsoft Excel:
Как отличить русский символ от английского, если они выглядят одинаково?
Допустим такие символы, как “о” и “x” есть и в русской клавиатуре, и в английской, и с виду они не отличаются.
Как определить какой символ написан?
Если особо не усложнять, есть возможность использовать перевод в Alt-код. Например для Word’a выполняем такие действия: выделяем нужный нам символ, после чего нажимаем Alt+X; получаем набор цифр (повторное нажатие сочетания Alt+X для выделенных цифр возвращает символ обратно) Пример сравнения:
х (русский) — 0445
x (английский) — 0078
о (русский) — 043E
o (английский) — 006F
Вот и получаем возможность узнать где и какая. А если использовать как проверку для большого количества букв в тексте, то можно подобрать шрифт, который по разному отображает русский или английский символ. Как пример “Wide Latin” (символы слева напечатаны русской раскладкой):
Проверка наличия символов из другой раскладки
Патологоанатом приготовился рассекать грудную полость. Нужно было остановить его немедленно, подать признаки жизни. И Аркадий открыл глаза.
В таежном поселке Гарь больница была оборудована сравнительно неплохо. Были даже рентген-кабинет и лаборатория.
В морг этой больницы доставили труп, который привез участковый полицейский из заброшенной сторожки, куда случайно зашли геологи.
Конкурс невероятных и феноменальных историй открыт!
Напишите самый абсурдный рассказ, чтобы выиграть приз более 50 000 рублей!
Прием работ — до 5 июня 2022 года включительно.
Авторы всех пожеланий в чате получат специальную марку «Меценат конкурса»
Всем удачи. Работ много, интересно прочитать. PS Аdvego Спасибо! . Всем удачи. Работ много, интересно прочитать.
PS Аdvego Спасибо! / 100 руб.
Наш бесплатный сервис позволит легко проверить ваш текст на наличие символов из другой раскладки. Удобная форма проверки русских букв в английском тексте, не только покажет такие символы, но и автоматически заменит их на правильные. Найдем в вашем тексте: — английские буквы в русской раскладке; — латиницу в русском тексте; — подстановку латинских букв в русские слова. Для получения результата достаточно скопировать исходный текст в поле формы и выбрать в нужный язык.