Проверка на кириллицу excel

  • Найти латиницу в 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

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

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

Сообщений: 16618


Репутация:

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

 

Ответить

Как правильно настроить поиск и замену английских букв в русском тексте таблиц Excel

Одна из типовых ситуаций, с которой все мы однажды сталкиваемся, выглядит так: кто-то при наборе текстовой информации в ячейку случайно использовал английские буквы (латиницу) вместо русских (кириллицы). Допустить такую ошибку легко даже самим, особенно если учесть изощренное расположение некоторых символов (русская «С» и английская «С», например) в стандартной раскладке клавиатуры.

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

Способ 1. Шрифт без кириллицы

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

Шрифт без кириллицы

Шрифт без кириллицы

Способ 2. Подсветка латиницы красным цветом шрифта

Этот способ является продолжением и развитием предыдущей идеи и заключается в изменении цвета символов латиницы на красный с помощью небольшого макроса. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert – Module) и введите туда следующий код.

1
2
3
4
5
6
7
8
9
10
Sub ShowLatinRed()
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

Теперь если выделить интересующий диапазон ячеек и запустить наш макрос с помощью сочетания клавиш Alt+F8 или через вкладку Разработчик → Макросы (Developer → Macros), то символы латиницы выделятся красным цветом шрифта.

Символы латиницы выделятся красным цветом

Символы латиницы выделятся красным цветом

Выделяйте только ячейки с текстом, а не весь столбец листа – это больше миллиона пустых ячеек, перебирать которые макрос будет долго.

Способ 3. Функция IsLatin на VBA

Если количество проверяемых ячеек велико, то визуальное определение станет затруднительным. Для таких случаев можно создать пользовательскую функцию (назовем ее, например, IsLatin), которая будет проверять, присутствуют ли в заданной ячейке символы английского алфавита, и выдавать в качестве результата логическое значение ИСТИНА или ЛОЖЬ.

Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert → Module) и введите туда текст этой небольшой функции.

1
2
3
4
5
6
7
8
9
Function IsLatin(str As String) as Boolean
	str = LCase(str)
    LatinAlphbet = "*[abcdefghijklmnopqrstuvwxyz]*"
    If str Like LatinAlphbet Then
        IsLatin = True
    Else
        IsLatin = False
    End If
End Function

Как можно заметить, макрофункция использует интересный оператор Like языка Visual Basic, который проверяет наличие в исходном тексте любых символов из английского алфавита, предварительно преобразовав текст в нижний регистр с помощью функции LCase.

Теперь в Мастере функций в категории Определенные пользователем (User Defined) можно найти нашу функцию IsLatin и воспользоваться ею. Функция выдаст значение ИСТИНА (TRUE), если найдет в тексте аргумента хотя бы один символ латиницы. В противном случае функция вернет значение ЛОЖЬ (FALSE).

Функция выдаст значение ИСТИНА или ЛОЖЬ

Функция выдаст значение ИСТИНА или ЛОЖЬ

Замена латиницы на кириллицу

Если необходимо не просто обнаружить чужеродные английские буквы в русском массиве текста, а исправить символы латиницы на соответствующую им кириллицу, можно быстро сделать это с помощью макроса. Откройте редактор Visual Basic сочетанием клавиш Alt+F11, вставьте новый модуль (меню Insert → Module) и введите туда его текст.

1
2
3
4
5
6
7
8
9
10
11
12
13
Sub Replace_Latin_to_Russian()
    Rus = "асекорхуАСЕНКМОРТХ"
    Eng = "acekopxyACEHKMOPTX"
    For Each cell In Selection
        For i = 1 To Len(cell)
            c1 = Mid(cell, i, 1)
            If c1 Like "[" & Eng & "]" Then
                c2 = Mid(Rus, InStr(1, Eng, c1), 1)
                cell.Value = Replace(cell, c1, c2)
            End If
        Next i
    Next cell
End Sub

Теперь если выделить на листе диапазон и запустить наш макрос сочетанием клавиш Alt+F8 или на вкладке Разработчик → Макросы (Developer → Macros), то все английские буквы, найденные в выделенных ячейках, будут заменены на равноценные им русские. Только будьте осторожны, чтобы не заменить случайно нужную вам латиницу.

Как в русском тексте в Excel или Word быстро найти английскую букву? А наборот, русскую в английском?

Чтобы в русском или, правильнее будет сказать, в кириллическом тексте в Excel или Word быстро найти английскую букву, измените шрифт на Algerian и латинские символы будут выделены жирным :

Соответственно, для противоположной задачи, то есть для поиска русских символов, точно также меняем шрифт и русские буквы в тексте останутся нежирными:

Задачу поиска в выделенном диапазоне ячеек кириллических символов также решает такой небольшой макрос для Microsoft Excel:

Как отличить русский символ от английского, если они выглядят одинаково?

Допустим такие символы, как «о» и «x» есть и в русской клавиатуре, и в английской, и с виду они не отличаются.

Как определить какой символ написан?

Если особо не усложнять, есть возможность использовать перевод в Alt-код. Например для Word’a выполняем такие действия: выделяем нужный нам символ, после чего нажимаем Alt+X; получаем набор цифр (повторное нажатие сочетания Alt+X для выделенных цифр возвращает символ обратно) Пример сравнения:

х (русский) — 0445

x (английский) — 0078

о (русский) — 043E

o (английский) — 006F

Вот и получаем возможность узнать где и какая. А если использовать как проверку для большого количества букв в тексте, то можно подобрать шрифт, который по разному отображает русский или английский символ. Как пример «Wide Latin» (символы слева напечатаны русской раскладкой):

Проверка наличия символов из другой раскладки

Kora-antica

Патологоанатом приготовился рассекать грудную полость. Нужно было остановить его немедленно, подать признаки жизни. И Аркадий открыл глаза.

В таежном поселке Гарь больница была оборудована сравнительно неплохо. Были даже рентген-кабинет и лаборатория.
В морг этой больницы доставили труп, который привез участковый полицейский из заброшенной сторожки, куда случайно зашли геологи.

Конкурс невероятных и феноменальных историй открыт!

Напишите самый абсурдный рассказ, чтобы выиграть приз более 50 000 рублей!

Прием работ — до 5 июня 2022 года включительно.

Авторы всех пожеланий в чате получат специальную марку «Меценат конкурса»

lucky_bee

DanilaKalashnikov5

Всем удачи. Работ много, интересно прочитать. PS Аdvego Спасибо! . Всем удачи. Работ много, интересно прочитать.

PS Аdvego Спасибо! / 100 руб.

prepod100500

rin8351

AleksejDmitriev97

Anastasia112

Kyzmakor

livv

Ekaterina916

MihailShevchenko

Наш бесплатный сервис позволит легко проверить ваш текст на наличие символов из другой раскладки. Удобная форма проверки русских букв в английском тексте, не только покажет такие символы, но и автоматически заменит их на правильные. Найдем в вашем тексте: — английские буквы в русской раскладке; — латиницу в русском тексте; — подстановку латинских букв в русские слова. Для получения результата достаточно скопировать исходный текст в поле формы и выбрать в нужный язык.

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

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

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

kirillitsa-latinitsa

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

kirillitsa-latinitsa

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

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

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

Важно:

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

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

В своей работе мы часто сталкиваемся с тем, что нам нужно обработать ячейку с текстом или проверить, содержит ли ячейка определенные символы. Например, только кириллицу или дату в определённом формате (или электронную почту). В этом нам помогут регулярные выражения.

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

Для использования регулярных выражений в своей работе первым делом необходимо подключить библиотеку Microsoft VBScript Regular Expressions 5.5

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

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

Public Function uf_StrTest(ByVal strBasic As String, ByVal strPattern As String) As Boolean

Dim Rx As New RegExp

With Rx

.Global = True

.IgnoreCase = True

.MultiLine = True

.Pattern = strPattern

End With

uf_StrTest = Rx.test(strBasic)

End Function

Вот как это работает:

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

Например, uf_StrTest(C1;»[а-я]») проверит, содержит ли ячейка С1 хотя бы одну маленькую букву кириллицы, если содержит, то возвратит истину, иначе — возвратит ложь. Данную функцию можно использовать на запрет при вводе буквы латинского алфавита.

Вторая функция — это замена, т.е. извлечение из текста какой-то его части по определённому правилу.

Public Function uf_Replace(ByVal strBasic As String, ByVal strPattern As String, ByVal strModel As String) As String

Dim Rx As New RegExp

With Rx

.Global = True

.IgnoreCase = True

.MultiLine = True

.Pattern = strPattern

End With

uf_Replace = Rx.Replace(strBasic, strModel)

End Function

Приведем пример как работает эта функция.

Допустим, у нас есть текст в ячейке С3 «Сидоров Петр Петрович». Нам нужно извлечь начальные буквы ФИО. Тогда наша функция будет выглядеть так

uf_Replace(C3;»^([^s])[^s]+s+([^s])[^s]+s+([^s])[^s]+»;»$1$2$3«)

Жирным шрифтом выделены выражения в круглых скобках, их ровно три.

Именно они и будут в итоге являться заменой. Например, наша функция примет значение «СПП».

А вот uf_Replace(C3;»^([^s])[^s]+s+([^s])[^s]+s+([^s])[^s]+»;»$2$3$1«) вернет «ППС»

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

Третья функция — это извлечение. Извлечение из текста его какой-то части по определённой маске.

Это требуется, если необходимо извлечь электронную почту или дату. Особенно, если в текстовой строке указано несколько электронных адресов.

Public Function uf_Execute(ByVal strBasic As String, ByVal strPattern As String) As String

Dim Rx As New RegExp Dim It As Variant Dim objMatch As Object

With Rx

.Global = True

.IgnoreCase = True

.MultiLine = True

.Pattern = strPattern

End With

Set objMatch = Rx.Execute(strBasic)

For Each It In objMatch

If uf_Execute = «» Then

uf_Execute = It

Else

uf_Execute = uf_Execute & «;» & It

End If

Next

End Function

Приведем пример как работает эта функция. Допустим, у нас есть текст в ячейке С3 «штрих-код: 30612-58746-16431-17562-35097-48735-17530-39512, дата регистрации: 23.10.2019, скан.образ:». Нам нужно извлечь дату. Тогда наша функция будет выглядеть так uf_Execute(С3;»d{2}.d{2}.d{4}»). Таким образом мы извлекаем из текса в ячейке СЗ, все что соответствует маске второго аргумента функции, если их несколько — функция выдаст их через точку с запятой.

Понравилась статья? Поделить с друзьями:
  • Проверка на истинность excel
  • Проверка на запущенный excel
  • Проверка на заполненность ячеек в excel
  • Проверка на делимость excel
  • Проверка на деление без остатка excel