Определить наличие латиницы в ячейке — довольно несложная операция, чего не скажешь о её удалении.
Тех, кто хочет удалить из ячеек латиницу в Excel, используя стандартный набор функций, ждет сюрприз. Просто так это сделать не получится, т.к. для множества латинских символов в Excel не предусмотрено групповых операций по удалению и замене.
Тем не менее, любую задачу можно решить, даже если и не оптимальным способом. Рассмотрим подробнее способы удаления латиницы в той или иной конфигурации.
Удалить любые символы латиницы из ячеек
Это тот случай, когда не важно, где находится символ в ячейке, внутри слова, как отдельное слово, есть в ячейке другие символы, кроме латиницы, или нет.
Удалить латиницу с помощью встроенной процедуры поиска и замены
Худшее, что можно представить в качестве решения — последовательную замену всех 26 символов латиницы на пустоту. Это займет время и в целом процесс на больших объемах небыстрый. Но у него есть и преимущества:
- Процесс можно единожды записать макрорекордером в личную книгу макросов и использовать в следующий раз с помощью назначенного горячего сочетания клавиш;
- Ячейки изменяются на месте, не нужно создавать дополнительных столбцов.
С помощью функции ПОДСТАВИТЬ
Excel 2007 и более поздние версии позволяют использовать 64 уровня вложенности, что дает возможность составить единую мегаформулу для замены всех 26 символов. К сожалению, она регистрозависимая, поэтому уровней будет 52, по 2 для каждой английской буквы. Так она будет выглядеть:
=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(A1;"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";"");"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";"")
Для этого решения потребуется дополнительный столбец, внутри которого будет указанная формула, для кого-то это плюс, т.к. сохраняются исходные данные, для кого-то минус — больше лишних действий.
С помощью !SEMTools
Ниже перечислены возможности, которых и вовсе нет в Excel, однако, они доступны пользователям надстройки для Excel !SEMTools.
Удалить латиницу с помощью регулярного выражения
Если нужно, как и в предыдущем варианте, удалить латиницу, не трогая остальные символы в строке, можно воспользоваться процедурой !SEMTools в меню «удалить символы».
Такой подход, как видно по примеру выше (6, 9, 10 строки), оставит куски слов, которые содержали помимо латиницы другие символы. Поэтому могут быть полезны процедуры, описанные в отдельных разделах:
- Как удалить слова, содержащие латиницу;
- Как удалить ячейки, содержащие латиницу
Нужно удалить латиницу из текста в Excel?
В !SEMTools есть это и сотни других готовых решений!
Данная команда позволяет быстро находить в тексте ячейки Кириллицу или Латиницу, выделять или удалять ее. Также позволяет менять Кириллицу (Латиницу) на Латиницу (Кириллицу):
Чтобы воспользоваться данной командой выделите ячейки с текстом, перейдите во вкладку «ЁXCEL» Главного меню, нажмите кнопку «Ячейки» и выберите команду «Кириллица — Латиница»:
Откроется диалоговое окно. Выберите один из девяти вариантов выполнения программы и нажмите кнопку «ОК»:
Программа выполнит необходимое действие:
- Выделить Латиницу -> программа выделит красным цветом все буквы Латиницы;
- Выделить Кириллицу -> программа выделит красным цветом все буквы Кириллицы;
- Удалить Латиницу -> программа удалит все буквы Латиницы;
- Удалить Кириллицу -> программа удалит все буквы Кириллицы;
- Заменить Кириллицу на Латиницу (мама -> mama) -> программа заменит все буквы Кириллицы на буквы Латиницы (буква х будет заменена на h);
- Заменить Кириллицу на Латиницу (х -> x) -> программа заменит все буквы Кириллицы, похожие на буквы Латиницы на буквы Латиницы (буква х будет заменена на x);
- Заменить Латиницу на Кириллицу (x -> х) -> программа заменит все буквы Латиницы, похожие на буквы Кириллицы на буквы Кириллицы (буква x будет заменена на х);
- Заменить Кириллицу на Латиницу (рщьу -> home) -> программа заменит все буквы Кириллицы на соответствующие этим же клавишам клавиатуры буквы Латиницы;
- Заменить Латиницу на Кириллицу (vfvf -> мама) -> программа заменит все буквы Латиницы на соответствующие этим же клавишам на клавиатуре буквы Кириллицы.
Для отмены операции нажмите кнопку отмены:
Важно:
- Варианты: «Выделить Кириллицу» и «Выделить Латиницу» — не имеют функции отмены.
- Если в выделенных ячейках цвет текста красный — вы не увидите результата работы вариантов: «Выделить Кириллицу» и «Выделить Латиницу».
Добавить комментарий
Удалить русские буквы из ячейки |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
1 / 1 / 0 Регистрация: 21.03.2016 Сообщений: 20 |
|
1 |
|
Убрать русские символы из ячеек21.03.2016, 16:23. Показов 15165. Ответов 40
Здравствуйте! Имеется где-то 1000+ строк, содержащих текст вида: «Внешний блок Hyndai FX400» Забыл уточнить, РУССКИЙ текст Разный, т.е. присутствуют строки с другим русским текстом.
0 |
2640 / 1697 / 694 Регистрация: 04.09.2015 Сообщений: 3,367 |
|
21.03.2016, 16:35 |
2 |
Как понял, русский текст разный и всегда впереди, а дальше всегда Hyndai.
2 |
1 / 1 / 0 Регистрация: 21.03.2016 Сообщений: 20 |
|
21.03.2016, 17:05 [ТС] |
3 |
Hyndai не всегда, извините что не обьяснил.
0 |
2640 / 1697 / 694 Регистрация: 04.09.2015 Сообщений: 3,367 |
|
21.03.2016, 17:12 |
4 |
Ищите первое вхождения английской буквы в строке и функцией ПСТР() отсекайте нужный текст
2 |
5942 / 3154 / 698 Регистрация: 23.11.2010 Сообщений: 10,524 |
|
21.03.2016, 17:12 |
5 |
vladdis, файл с примером прикладывайте
1 |
Svsh2015 132 / 108 / 22 Регистрация: 23.06.2015 Сообщений: 339 |
||||||
21.03.2016, 19:43 |
6 |
|||||
добрый день,попробуйте функцию uuu в B1 в файл примере
Вложения
1 |
1 / 1 / 0 Регистрация: 21.03.2016 Сообщений: 20 |
|
21.03.2016, 21:13 [ТС] |
7 |
А как запустить эту функцию?
0 |
132 / 108 / 22 Регистрация: 23.06.2015 Сообщений: 339 |
|
21.03.2016, 21:22 |
8 |
vladdis,например,скопируйте текст функции uuu в стандартный модуль vba(где у Вас макросы).В любую ячейке Excel заносите:
1 |
1 / 1 / 0 Регистрация: 21.03.2016 Сообщений: 20 |
|
21.03.2016, 21:35 [ТС] |
9 |
Выдает ошибку( Миниатюры
0 |
132 / 108 / 22 Регистрация: 23.06.2015 Сообщений: 339 |
|
21.03.2016, 22:06 |
10 |
vladdis,выложите файл пример
1 |
132 / 108 / 22 Регистрация: 23.06.2015 Сообщений: 339 |
|
21.03.2016, 22:20 |
11 |
добавил строчки в файл пример
1 |
2640 / 1697 / 694 Регистрация: 04.09.2015 Сообщений: 3,367 |
|
21.03.2016, 22:28 |
12 |
Формула массива Код =ПСТР(C2;ПОИСКПОЗ(1;1/(ПСТР(ПОДСТАВИТЬ(C2;" ";"а");СТРОКА($1:$99);1)<"а"););99) Ввод Ctrl+Shift+Enter
2 |
1 / 1 / 0 Регистрация: 21.03.2016 Сообщений: 20 |
|
22.03.2016, 02:22 [ТС] |
13 |
Svsh2015, спасибо, но у меня все равно выдает ошибку.
0 |
2640 / 1697 / 694 Регистрация: 04.09.2015 Сообщений: 3,367 |
|
22.03.2016, 09:53 |
14 |
выдает только цифры или же цифры+одна-две буквы Я вам пример показал, что в нем не так?
1 |
1 / 1 / 0 Регистрация: 21.03.2016 Сообщений: 20 |
|
22.03.2016, 11:42 [ТС] |
15 |
Вот ошибка Миниатюры
0 |
5942 / 3154 / 698 Регистрация: 23.11.2010 Сообщений: 10,524 |
|
22.03.2016, 11:46 |
16 |
vladdis, пример надо прикладывать в файле Excel, ответ в картинке хотите получить?
1 |
2640 / 1697 / 694 Регистрация: 04.09.2015 Сообщений: 3,367 |
|
22.03.2016, 11:46 |
17 |
Вот ошибка Так это не моя, а ваша
Ввод Ctrl+Shift+Enter
1 |
2640 / 1697 / 694 Регистрация: 04.09.2015 Сообщений: 3,367 |
|
22.03.2016, 11:52 |
18 |
картинка Миниатюры
1 |
1 / 1 / 0 Регистрация: 21.03.2016 Сообщений: 20 |
|
22.03.2016, 12:03 [ТС] |
19 |
Почему то обрезает лишнее, в чем может быть проблема? Миниатюры
0 |
2640 / 1697 / 694 Регистрация: 04.09.2015 Сообщений: 3,367 |
|
22.03.2016, 12:13 |
20 |
А потому что формулу набили сами, а не скопировали из 12 сообщения.
2 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
22.03.2016, 12:13 |
Помогаю со студенческими работами здесь Русские символы Русские символы русские символы public static void main(String args) { … Русские символы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 20 |
Всем доброго дня! Есть книга, в одном столбце наименования продукции. Как из него удалить русские символы, оставив только латинские. Например: «Macлo для KПП DRAGON HD GL-5 п/с 75W90 1л» чтобы было «DRAGON HD GL-5 75W90 1» Заранее благодарю! |
|
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
Тема многократно обсуждалась. Поиск работает — вот одна из тем: <BR> http://www.planetaexcel.ru/forum.php?thread_id=27107 |
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#3 18.09.2011 13:25:51 {quote}{login=firstik}{date=18.09.2011 01:01}{thema=Как из ячейки удалить все русские символы?}{post}Всем доброго дня! Есть книга, в одном столбце наименования продукции. Как из него удалить русские символы, оставив только латинские. Например: «Macлo для KПП DRAGON HD GL-5 п/с 75W90 1л» чтобы было «DRAGON HD GL-5 75W90 1» Заранее благодарю! без регулярных выражений можно как то так Function hhh(Stxt$)
|
|
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#4 18.09.2011 13:30:43 последнюю строку лучше так
|
|
to R Dmitry |
|
nerv Пользователь Сообщений: 3071 |
|
{quote}{login=The_Prist}{date=18.09.2011 01:41}{thema=}{post}У Вас в слове «Macлo» литера «а» на английском…{/post}{/quote} |
|
{quote}{login=The_Prist}{date=18.09.2011 01:41}{thema=}{post}У Вас в слове «Macлo» литера «а» на английском…{/post}{/quote} Я только начинаю познавать excel, выше R Dmitry написал код, это макрос его в модуль пихать?))) нашел еще топик где вы предлагаете код : в моем случае он «прокатит»? |
|
R Dmitry Пользователь Сообщений: 3103 Excel,MSSQL,Oracle,Qlik |
#9 18.09.2011 14:09:20 {quote}{login=nerv}{date=18.09.2011 01:42}{thema=}{post}»[А-яЁё]» : ){/post}{/quote}
|
|
Prist, R Dmitry спасибо вам огромное!!! |
|
Function hhh(Stxt$) могу ли я в эту функцию добавить условие: вместе с русскими буквами удалять определенные наборы символов (п/с, син. и т.п.) |
|
nerv Пользователь Сообщений: 3071 |
Кстати, тут такой, как мне кажется, интересный момент: слово «Маша». Ф-ция Replace удалит букву «а» на первом проходе, но все равно счетчик будет считать до 4-х. Т.е. по идее 1 холостой проход. А если это предложение? Или текст здоровущий? : ) Function hhh(Stxt$) уж не знаю, что быстрее, но вот еще один вариант: Option Compare Binary Private Function CleanString(ByVal Str$) As String Sub j() |
nerv Пользователь Сообщений: 3071 |
>>могу ли я в эту функцию добавить В эту вряд ли. Могут предложить вот такой вариант (приблизительно) Public Function io$(x$) и объединить все эт дело в одну ф-цию или макрос |
{quote}{login=The_Prist}{date=18.09.2011 01:41}{thema=}{post}У Вас в слове «Macлo» литера «а» на английском…{/post}{/quote}Если бы только «а» Там ВСЕ буквы английские кроме «л»! Для удаления лишних слов и русских букв на месте можно использовать такой макрос: Sub firstik() Const WORDS = «п/с син» ‘список слов для удаления, через пробел Dim x For x = 192 To 223 ‘замена русских букв кроме Ё Selection.Value = Application.Trim(Selection) ‘удаление лишних пробелов |
|
Владимир Пользователь Сообщений: 8196 |
{quote}{login=firstik}{date=18.09.2011 01:01}{thema=Как из ячейки удалить все русские символы?}{post}Всем доброго дня! Есть книга, в одном столбце наименования продукции. Как из него удалить русские символы, оставив только латинские. Например: «Macлo для KПП DRAGON HD GL-5 п/с 75W90 1л» чтобы было «DRAGON HD GL-5 75W90 1» Заранее благодарю! Недавно для себя писал такую формулу массива (кстати, именно для запчастей): =ПСТР(B4;НАИМЕНЬШИЙ(ЕСЛИ(ПОИСКПОЗ(КОДСИМВ(ПСТР(B4&»A»;СТРОКА($1:$99);1)&1);{0;65;123})=2;СТРОКА($1:$99));1);100) Но суть здесь, не удалить все русские символы, а найти первую латинскую. «..Сладку ягоду рвали вместе, горьку ягоду я одна.» |
Есть книга, в одном столбце наименования продукции. Как из него удалить русские символы, оставив только латинские. Например: «Macлo для KПП DRAGON HD GL-5 п/с 75W90 1л» чтобы было «DRAGON HD GL-5 75W90 1» Метод для блондинок: заменить все русские буквы на букву А (например): с помощью ctrl H по очереди заменять по одной букве русского алфавита) а потом удалить все буквы А — также заменой на пусто. |
|
tarasso Пользователь Сообщений: 123 |
#17 30.10.2012 13:24:49 Здравствуйте, господа! Предлагаю вот такую идею: Например, у меня есть список уже выведенных символов в своей базе- русские, греческие, латинские, специальные знаки. Можно просто их скопировать в нужный столбец, у меня это (row, col+1). Очень хорошо справляется с повторами символов. |