Подсветка лишних пробелов

Предположим, что мы создали форму для ввода данных пользователем – например, такую:

highlight-bad-spaces1.png

При вводе всегда есть вероятность некорректного ввода информации, "человеческий фактор". Один из вариантов его проявления– лишние пробелы. Кто-то ставит их случайно, кто-то – намеренно, но, в любом случае, даже один лишний пробел будет представлять для вас проблему в дальнейшем при обработке введенной информации. Дополнительная "прелесть" в том, что их еще и не видно, хотя, если очень хочется, то можно сделать видимыми с помощью макроса.

Безусловно, можно и нужно "причесывать" информацию после ввода с помощью специальных функций или макросов. А можно подсвечивать некорректно введенные данные прямо в процессе заполнения формы, оперативно сигнализируя об ошибке пользователю. Для этого:

  1. Выделите поля ввода, где нужна проверка на лишние пробелы (желтые ячейки в нашем примере).
  2. Выберите на Главной вкладке команду Условное форматирование – Создать правило (Home – Conditional Formatting - Create Rule).
  3. Выберите тип правила Использовать формулу для определения форматируемых ячеек (Use formula to determine which cells to format) и введите в поле следующую формулу:

highlight-bad-spaces2.png

где D4 – адрес текущей ячейки (без знаков "$").

В английской версии это будет, соответственно =G4<>TRIM(G4)

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

Теперь при забивании лишних пробелов "для красоты" наши поля ввода будут подсвечиваться красным, намекая пользователю, что он не прав:

highlight-bad-spaces.gif

Вот такой простой, но приятный трюк, который я использовал в много раз в своих проектах. Надеюсь, что пригодится и вам :)

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


31.07.2014 17:00:17
 А как быть, если надо показать не лишний пробел, а недостающий. Иногда пользователи просто забывают ставить пробелы там где они должны быть: например пишут ИванИванов. В итоге, по таким данным сложно "подтягивать" другие данные ВПР-ом, да и вообще масса других проблем - несколько одинаковых позиций в фильтре и т.д.  
04.08.2014 11:37:44
Это сложнее... Да и как определять где недостающий? По заглавным буквам? А если все написано строчными? Если напишут, например, "коньяк"? Это "конь" и "як" или "коньяк"?
04.08.2014 16:35:17
)) Николай, я понимаю, что ексель не человек и не умеет догадываться, что имел в виду невнимательный пользователь - то ли "конь" и "як" то ли спиртной напиток. Но если все же попробовать именно по заглавным буквам. Я думаю, это, по крайней мере, существенно сократит процент ошибок. Я так понимаю стандартной функцией здесь не обойтись, а VBA я только начала изучать... потому самой интересно, как это можно реализовать.
24.10.2014 17:13:41
Николай, а возможно ли добавить функцию подсветки лишних пробелов в надстройку PLEX?
Про существующие возможности обработки лишних пробелов с помощью надстройки (удалить, показать) знаю.
Хочется именно подсветки, так же как подсвечиваются латинские буквы.
Это возможно?
21.12.2015 09:58:27
Хорошая мысль, кстати.
Добавлю в следующем обновлении, спасибо за идею :)
20.12.2015 21:41:13
То же самое работает если в условном форматировании вместо формулы выбрать пункт "Текст" -> "Содержит" и вписать туда два пробела.
21.12.2015 09:57:37
Не совсем.
СЖПРОБЕЛЫ убирает не просто двойные пробелы, а еще и лишние одиночные - в начале и в конце текста.
21.12.2015 20:35:26
Спасибо. Совсем забыл про эти варианты.
13.07.2016 15:45:38
А можно ли сделать так, чтобы подсвечивались не лишние пробелы, а относительные ссылки?
Например, у меня большой массив данных, где связями из других таблиц вставлены значения. Я хочу вставить/удалить столбцы, но моя таблица "поедет" в случае использования относительных ссылок.
А тут я на раз-два узнаю, в каком месте у меня связь с относительной ссылкой и заменю ее на абсолютную.