Лишние пробелы могут попасть в текстовые данные таблицы разными путями - невнимательность сотрудников при ручном наборе, импорт неочищенных результатов парсинга каталогов на веб-сайтах и данных из прочих внешних систем. Независимо от того, как лишние пробелы оказались в текстовых данных таблицы, в будущем они могут создать значительные проблемы при работе. Возможно ли пользователю LibreOffice Calc быстро удалить лишние пробелы, если они уже присутствуют в текстовых данных таблицы, не ища их вручную и не разбираясь в написании макросов? Попробую ответить на этот вопрос и решить проблему.
Предлагаю рассмотреть три варианта борьбы с лишними пробелами в текстовых данных в таблице LibreOffice Calc:
- Лишние пробелы находятся в любых частях строки;
- Лишние пробелы находятся в начале строки;
- Лишние пробелы находятся в конце строки.
Удаление лишних пробелов во всех частях строки
Эта задача стоит перед пользователем чаще всего. И её решение будет самым простым, потому что именно для таких случаев в LibreOffice Calc предусмотрена специальная функция TRIM
.
=TRIM(A2)
В результате применения функции из строки будут удалены все начальные и конечные пробелы, а между словами останутся только одинарные пробелы. В большинстве случаев именно такой результат нужен пользователю, проблему лишних пробелов он может считать решённой.
Однако может быть так, что повторяющиеся пробелы для разделения слов в строке необходимо сохранить, а удалить надо только пробелы, обрамляющие строку. Здесь функция TRIM
не решит проблему, а создаст новую. К сожалению, среди стандартных функций в LibreOffice Calc нет функций, удаляющих пробелы только в начале или только в конце строки. Поэтому придётся решать задачу при помощи формул, использующих доступные функции.
Удаление лишних пробелов в начале строки
Удалить начальные пробелы из строки относительно просто. В варианте формулы, которую предлагаю я, используются четыре функции:
REPLACE
;FIND
;LEFT
;TRIM
.
=REPLACE(A2;1;FIND(LEFT(TRIM(A2);2);A2)-1;"")
Удаление лишних пробелов в конце строки
Удалить конечные пробелы из строки сложнее, чем начальные. Понадобится использовать формулу массива. В самой формуле используются пять функций:
LEFT
;MAX
;MID
;REPT
;ROW
.
=LEFT(A2;MAX((MID(A2&REPT(" ";99);ROW(A2:A99);1)<>" ")*ROW(A2:A99)))
Результат применения рассмотренных формул на текстовых данных в таблице в LibreOffice Calc выглядит так.
Не смотря на то, что удалить все лишние пробелы из текстовых данных в таблице LibreOffice Calc можно при помощи рассмотренных функций и формул, я бы рекомендовал, по возможности, следить за корректностью данных на входе и стараться не допускать ошибок при вводе и импорте данных из внешних источников.