15.05.2015

Excel: зачищаем текст

Работа с текстом
Опубликовано: 15.05.2015 | 2353

 

Выгрузка информации из ERP-систем и баз данных и прочие способы генерации контента часто оборачиваются серьезной головной болью в виде ненужных:

  • апострофов;
  • пробелов;
  • видимых и невидимых непечатаемых символов (сохраняются после копирования);
  • латиницы.

Но (слава высшим силам!) Excel эту боль умеет снимать, зачищая перечисленный выше «мусор». Как?

Проблема: ненужные символы

Решение: Найти и заменить

Выделите нужные ячейки и перейдите: ГлавнаяНайти и выделитьЗаменить. Либо воспользуйтесь горячими клавишами Ctrl+H.

Таким образом можно заменить конкретные словосочетания (найти Минск – заменить на Гомель) и символы или удалить лишние знаки.

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

Найти и заменить

Если не выделить конкретную область, замена символов осуществится для всего документа.

Проблема: лишние пробелы

Решение 1: Найти и заменить

Приведенный выше способ. Подходит в случае, если вам нужно удалить все пробелы. Например:

Удалить пробелы

Но если вы работаете с текстом и удалять все пробелы нельзя, на помощь придет другое решение.

Решение 2: Использовать функцию СЖПРОБЕЛЫ

Данная функция удаляет из текста лишние пробелы за исключением пробелов между словами. Обращаетесь к Формулам, категория Текстовые и выбираете функцию СЖПРОБЕЛЫ.

СЖПРОБЕЛЫ

Проблема: непечатаемые символы

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

Решение: Использовать функцию ПЕЧСИМВ

Удаляет все непечатные знаки из текста. Быстрее, чем предыдущий вариант. Но может справиться не с каждым спецсимволом.

Проблема: описки, ошибки в содержании

Решение: использовать функцию ПОДСТАВИТЬ

Решить все проблемы, перечисленные выше, можно и с помощью отдельной функции ПОДСТАВИТЬ.  В том же разделе текстовых формул указываете:

  • Ячейку с текстом, в котором нужно произвести замену.
  • Старый текст – ошибку – символ или сочетание символов, которые нужно заменить.
  • Новый текст – символ или сочетание символов, которые нужно подставить вместо прежних.

Подставить символы

Проблема: в русском тексте – латинские буквы

Решение: использовать макрос Replace_Latin_to_Russian

Случается, что в русских текстах вместо буквы «о» может быть написана английская «оу», вместо «у» – «игрек», вместо «эс» – «си». Человеческому глазу это безразлично, но программа видит разные коды, что чревато ошибками в формулах, дубликатами в фильтрах и прочими осложнениями. Конечно, проблему можно решить ручной заменой, но разумнее будет использовать макрос. Для этого вам нужно запустить редактор Visual Basic путем нажатия горячих клавиш Alt+F11, вставить новый модуль (Insert → Module) и ввести туда следующий текст:

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 (или через Меню Разработчик → Макросы). Изменений не заметите, но Excel увидит, что все английские буквы заменились на равноценные русские.

 Replace_Latin_to_Russian

Проблема: апострофы в начале ячеек

Решение: использовать макрос Apostrophe_Remove

Апостроф (знак «‘») является в Excel так называемым текстовым префиксом. Благодаря этому знаку программа воспринимает числовые символы в ячейке как текстовые (того же эффекта можно добиться через Главная → Число → Текстовый). Это актуально при работе с инвентарными номерами, банковскими счетами и т.д. Но если подобной необходимости нет, а выгрузка информации осуществилась с префиксами, на помощь придет еще один макрос. По аналогии открываем Visual Basic (Alt+F11), вставляем новый модуль (Insert → Module) и вводим следующий текст:

Sub Apostrophe_Remove()
For Each cell In Selection
If Not cell.HasFormula Then
v = cell.Value
cell.Clear
cell.Formula = v
End If
Next
End Sub

Запускаем макрос для выделенного диапазона (Alt+F8 или Разработчик → Макросы) – и апострофы удаляются.

Apostrophe_Remove

Работайте с Microsoft Excel рационально. А мы обещаем способствовать.

 

Автор: Webmart Group



Статьи по теме