Как найти кириллицу в эксель

  • Найти латиницу в Excel – функция
  • Найти кириллицу в Excel – функция
  • Как найти прописные буквы
    • Функция поиска прописных символов латиницы
    • Функция поиска прописных кириллических символов
    • Функция поиска любых прописных символов
  • Функции “Найти латиницу” и “Найти кириллицу” с помощью UDF
  • Найти латинские буквы в 2 клика
  • Найти слова, содержащие и кириллицу, и латиницу
    • С помощью регулярных выражений
    • В две итерации
  • Кейсы дальнейшего взаимодействия с данными
    • Удалить
    • Извлечь
    • Изменить регистр
    • Заменить символы

Важно: поскольку термин “найти” часто в сознании людей предполагает “найти и извлечь”, сразу оговоримся, что ниже именно булевая интерпретация поиска, иначе говоря, результата два – нашёл или не нашёл. Похожая, но все же другая задача – извлечь символы латиницы.

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

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

Например, Dubai Light сделает латиницу тоньше, Dubai Medium – жирнее кириллицы, Microsoft Himalaya – ниже, а Ink Free – выделит ее курсивом.

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

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

формула для поиска латиницы в Excel
Обнаружить латиницу – желаемый результат

Составная формула массива пригодится в случаях, когда не хочется или нет возможности пользоваться макросами или пользовательскими функциями (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.
Порядок действий: скопировать диапазон, выделить скопированное и вызвать макрос в меню «Найти символы» группы «ОБНАРУЖИТЬ».

Найти латиницу в ячейках 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 или любой аналогичный (находится методом тыка). Внешний вид символов кириллицы и латиницы станет отличаться и можно будет легко визуально локализовать некорректные символы:

latin1.png

Способ 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):

latin2.png

Способ 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), то символы латиницы выделятся красным цветом шрифта:

latin3.png

Ссылки по теме

  • Подсветка латиницы с помощью надстройки PLEX
  • Что такое макросы, куда вставлять код макроса, как их использовать

Как найти латиницу и кириллицу в таблице

Поступил очень интересный вопрос от одного из зрителей – как в таблицах Excel искать латинские и кириллические символы?

Ответ прост – мы напишем небольшой макрос (на самом деле можно было бы обойтись и формулой, но её размер вряд ли был бы меньше текста самого макроса).

Как найти латиницу и кириллицу в таблице

Открываем вкладку “Разработчик”, затем вставляем модуль (Insert->Module), в него добавляем следующий текст:

Sub Показать_латиницу()
‘показать латиницу
Dim c As Range, i As Long
For Each c In Selection
For i = 1 To Len(c)
If Mid$(c, i, 1) Like “[A-Za-z]” Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 4
Next i, c
End Sub

В данном макросе нужно знать следующее – “с” (это символ), “i” -это количество символов в строке (диапазоне), “For Each c In Selection” – для каждого символа в выделении (обратите своё внимание в выделенном диапазоне!), If Mid$(c, i, 1) Like “[A-Za-z]” Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 4″ – это условие при котором любой символ с A-Z  и a-z будет подсвечен зелёным цветом, “Next i, c” – следующие символы в диапазоне.

Снова вставляем модуль и размещаем текст макроса для него.

Sub Показать_кириллица()
‘показать кириллицу
Dim c As Range, i As Long
For Each c In Selection
For i = 1 To Len(c)
If Mid$(c, i, 1) Like “[А-Яа-я]” Then c.Characters(Start:=i, Length:=1).Font.ColorIndex = 3
Next i, c
End Sub

Всё то же самое за исключением букв и цвета (3 – это красный цвет). Для того, чтобы вставить кнопки (как в примере) нужно на вкладке “Разработчик” нажать кнопку “Вставить” и выбрать значение “Кнопка”, а потом назначить кнопкам нужный макрос (щелчок правой кнопкой мышки по кнопке и выбор “Назначить макрос”).

Если что-то непонятно – смотрим видео!

Поиск русских букв в столбце

hatter

Дата: Четверг, 29.05.2014, 15:34 |
Сообщение № 1

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 160


Репутация:

0

±

Замечаний:
0% ±


Добрый день!
У меня есть файл в котором имеется столбец со списком кодов, среди которых встречаются численно-буквенные коды. Мне необходимо как-то выделить те коды, в которых есть русские буквы.
Можно решить этот вопрос формулой или поможет только макрос?

 

Ответить

_Boroda_

Дата: Четверг, 29.05.2014, 15:44 |
Сообщение № 2

Группа: Модераторы

Ранг: Местный житель

Сообщений: 16620


Репутация:

6465

±

Замечаний:
0% ±


2003; 2007; 2010; 2013 RUS

Формула

Код

=СЧЁТ(1/(КОДСИМВ(ПСТР(A2;СТРОКА(A$1:A$999);1))>191))

и условное форматирование в файле


Скажи мне, кудесник, любимец ба’гов…
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995

 

Ответить

hatter

Дата: Четверг, 29.05.2014, 15:51 |
Сообщение № 3

Группа: Проверенные

Ранг: Форумчанин

Сообщений: 160


Репутация:

0

±

Замечаний:
0% ±


Спасибо большое, Вы first clap

 

Ответить

Данная команда позволяет быстро находить в тексте ячейки Кириллицу или Латиницу, выделять или удалять ее. Также позволяет менять Кириллицу (Латиницу) на Латиницу (Кириллицу):

Кириллица - Латиница

Чтобы воспользоваться данной командой выделите ячейки с текстом, перейдите во вкладку “ЁXCEL” Главного меню, нажмите кнопку “Ячейки” и выберите команду “Кириллица – Латиница”:

kirillitsa-latinitsa

Откроется диалоговое окно. Выберите один из девяти вариантов выполнения программы и нажмите кнопку “ОК”:

kirillitsa-latinitsa

Программа выполнит необходимое действие:

  • Выделить Латиницу -> программа выделит красным цветом все буквы Латиницы;
  • Выделить Кириллицу -> программа выделит красным цветом все буквы Кириллицы;
  • Удалить Латиницу -> программа удалит все буквы Латиницы;
  • Удалить Кириллицу -> программа удалит все буквы Кириллицы;
  • Заменить Кириллицу на Латиницу (мама -> mama) -> программа заменит все буквы Кириллицы на буквы Латиницы (буква х будет заменена на h);
  • Заменить Кириллицу на Латиницу (х -> x) -> программа заменит все буквы Кириллицы, похожие на буквы Латиницы на буквы Латиницы (буква х будет заменена на x);
  • Заменить Латиницу на Кириллицу (x -> х) -> программа заменит все буквы Латиницы, похожие на буквы Кириллицы на буквы Кириллицы (буква x будет заменена на х);
  • Заменить Кириллицу на Латиницу (рщьу -> home) -> программа заменит все буквы Кириллицы на соответствующие этим же клавишам клавиатуры буквы Латиницы;
  • Заменить Латиницу на Кириллицу (vfvf -> мама) -> программа заменит все буквы Латиницы на соответствующие этим же клавишам на клавиатуре буквы Кириллицы.

Для отмены операции нажмите кнопку отмены:

Важно:

  • Варианты: “Выделить Кириллицу” и “Выделить Латиницу” – не имеют функции отмены.
  • Если в выделенных ячейках цвет текста красный – вы не увидите результата работы вариантов: “Выделить Кириллицу” и “Выделить Латиницу”.

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

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