Удаление пробелов и других символов или текстовых строк в Google Sheets из нескольких ячеек одновременно

  • Поделись Этим
Michael Brown

Изучите формулы и способы без формул для обрезки пробелов, удаления специальных символов (даже первых/последних N символов) и одинаковых текстовых строк до/после определенных символов из нескольких ячеек одновременно.

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

    Формулы для Google Sheets для удаления текста из ячеек

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

    Google Таблицы: удаление пробелов

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

    Просто выделите все ячейки Google Sheets, в которых нужно удалить пробелы, и выберите пункт Данные> Обрезать пробелы в меню электронных таблиц:

    При нажатии на эту опцию все ведущие и последующие пробелы в выделении будут полностью удалены, а все лишние пробелы между данными будут сокращены до одного:

    Удаление других специальных символов из текстовых строк в Google Sheets

    Увы, в Google Sheets нет инструмента для "обрезки" других символов, кроме пробелов. Здесь приходится работать с формулами.

    Совет. Или используйте вместо этого наш инструмент - Power Tools освободит ваш диапазон от любых символов, которые вы укажете в щелчке, включая пробелы.

    Здесь я обращался с хэштегами перед номерами квартир и телефонами с тире и скобками между ними:

    Я буду использовать формулы для удаления этих специальных символов.

    В этом мне поможет функция SUBSTITUTE. Обычно она используется для замены одного символа другим, но вы можете обратить это в свою пользу и заменить ненужные символы... ну, ничем :) Другими словами, удалить их.

    Давайте посмотрим, какой аргумент требуется функции:

    SUBSTITUTE(text_to_search, search_for, replace_with, [occurrence_number])
    • текст_к_поиску это либо текст для обработки, либо ячейка, содержащая этот текст. Требуется.
    • поиск_для это тот персонаж, который вы хотите найти и удалить. Требуется.
    • заменять_на - символ, который вы вставите вместо ненужного символа. Требуется.
    • номер_возникновения - если существует несколько экземпляров искомого символа, здесь вы можете указать, какой из них заменить. Это совершенно необязательно, и если вы опустите этот аргумент, все экземпляры будут заменены чем-то новым ( замена_для ).

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

    =SUBSTITUTE(A1, "#","")

    Совет. Хэштег также заключен в двойные кавычки, поскольку именно так следует упоминать текстовые строки в формулах Google Sheets.

    Затем скопируйте эту формулу в столбец, если Google Sheets не предлагает сделать это автоматически, и вы получите адреса без хэштегов:

    Но как быть с тире и скобками? Нужно ли создавать дополнительные формулы? Вовсе нет! Если вы вложите несколько функций SUBSTITUTE в одну формулу Google Sheets, вы удалите все эти символы из каждой ячейки:

    =SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, "#",""),"("",""),"")",""),"-",""))

    Эта формула удаляет символы по одному, и каждый СУБСТИТУТ, начиная с середины, становится диапазоном для поиска следующего СУБСТИТУТА:

    Совет. Более того, вы можете обернуть это в ArrayFormula и охватить весь столбец сразу. В этом случае измените ссылку на ячейку ( A1 ) к вашим данным в столбце ( A1:A7 ), а также:

    =ArrayFormula(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1:A7, "#",""),""("",""),""),""),""),"-",""))))

    Удаление определенного текста из ячеек в Google Sheets

    Хотя для удаления текста из ячеек можно использовать вышеупомянутую функцию SUBSTITUTE для Google Sheets, я хотел бы показать еще одну функцию - REGEXREPLACE.

    Его название - это аббревиатура от 'regular expression replace'. И я собираюсь использовать регулярные выражения для поиска строк, которые нужно удалить, и заменить их на ' ничего" ( "" ).

    Совет. Если вы не заинтересованы в использовании регулярных выражений, я описываю гораздо более простой способ в конце этой статьи.

    Совет. Если вы ищете способы поиска и удаления дубликатов в Google Sheets, посетите эту статью блога. REGEXREPLACE(text, regular_expression, replacement)

    Как вы можете видеть, у функции есть три аргумента:

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

    Предположим, что мои ячейки с данными также содержат название страны ( США ) в разных местах ячеек:

    Как REGEXREPLACE поможет мне удалить его?

    =REGEXREPLACE(A1,"(.*)US(.*)","$1 $2")

    Вот как точно работает формула:

    • он сканирует содержимое ячейки A1
    • для поиска совпадений с этой маской: "(.*)US(.*)"

      Эта маска указывает функции искать США независимо от того, какое количество других символов может предшествовать (.*) или следовать (.*) название страны.

      И вся маска заключена в двойные кавычки в соответствии с требованиями функции :)

    • последний аргумент - "$1 $2" - вот что я хочу получить вместо этого. $1 и $2 каждый из них представляет одну из этих двух групп персонажей - (.*) - из предыдущего аргумента. Вы должны упомянуть эти группы в третьем аргументе таким образом, чтобы формула могла вернуть все, что может стоять до и после США

      Что касается США сам по себе, я просто не упоминаю его в 3-м аргументе - то есть, я хочу вернуть все из A1 без сайт США .

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

    Совет. Что касается оставшихся запятых, то функция SUBSTITUTE, описанная выше, поможет избавиться от них ;) Вы можете даже заключить REGEXREPLACE в SUBSTITUTE и решить все одной формулой:

    =SUBSTITUTE(REGEXREPLACE(A1,"(.*)US(.*)","$1 $2"),","","")

    Удаление текста до/после определенных символов во всех выделенных ячейках

    Пример 1. Функция REGEXREPLACE для Google Sheets

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

    REGEXREPLACE(text, regular_expression, replacement)

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

    Как же удалить адреса и оставить в ячейках только номера телефонов?

    Вот формула, которую я буду использовать:

    =REGEXREPLACE(A1,".*\n.*(\+.*)","$1")

    • Вот регулярное выражение, которое я использую в этом случае: ".*\n.*(\+.*)"

      В первой части - .*\n.* - Я использую обратная косая черта+n чтобы определить, что моя ячейка имеет более одной строки. Поэтому я хочу, чтобы функция удаляла все до и после перевода строки (включая его).

      Вторая часть, заключенная в скобки (\+.*) говорит, что я хочу сохранить знак плюс и все, что за ним, нетронутым. Я беру эту часть в скобки, чтобы сгруппировать ее и сохранить на будущее.

      Совет. Обратная косая черта используется перед плюсом, чтобы превратить его в искомый символ. Без нее плюс был бы просто частью выражения, которая обозначает некоторые другие символы (как, например, звездочка).

    • Что касается последнего аргумента - $1 - он заставляет функцию возвращать только ту группу из второго аргумента: знак плюс и все, что за ним следует (\+.*) .

    Аналогичным образом можно удалить все телефонные номера, но сохранить адреса:

    =REGEXREPLACE(A1,"(.*\n).*","$1")

    Только в этот раз вы говорите функции сгруппировать (и вернуть) все, что находится перед переводом строки, и очистить остальное:

    Пример 2. RIGHT+LEN+FIND

    Есть еще несколько функций Google Sheets, которые позволяют удалить текст до определенного символа. Это функции RIGHT, LEN и FIND.

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

    Используя эту троицу в определенном порядке, я получу тот же результат и удалю весь текст перед символом - знаком плюс:

    =RIGHT(A1,(LEN(A1)-(FIND("+",A1)-1)))

    Позвольте мне объяснить, как работает эта формула:

    • FIND("+",A1)-1 определяет номер позиции знака плюс в A1 ( 24 ) и вычитает 1, чтобы итог не включал сам плюс: 23 .
    • LEN(A1)-(FIND("+",A1)-1) проверяет общее количество символов в A1 ( 40 ) и вычитает из него 23 (подсчитанные FIND): 17 .
    • А затем RIGHT возвращает 17 символов из конца (справа) A1.

    К сожалению, этот способ не поможет удалить текст после переноса строки в моем случае (очистить номера телефонов и сохранить адреса), так как адреса имеют разную длину.

    Ну, ничего страшного, все равно инструмент в конце делает эту работу лучше ;)

    Удаление первых/последних N символов из строк в Google Sheets

    Если вам нужно удалить определенное количество различных символов из начала или конца ячейки, вам также помогут REGEXREPLACE и RIGHT/LEFT+LEN.

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

    Итак, как я могу стереть коды из этих телефонных номеров? Или, другими словами, удалить первые 9 символов из ячеек:

    • Используйте REGEXREPLACE. Создайте регулярное выражение, которое будет находить и удалять все до 9-го символа (включая этот 9-й символ):

      =REGEXREPLACE(A1,"(.{9})(.*)","$2")

      .

      Совет. Чтобы удалить последние N символов, просто поменяйте местами группы в регулярном выражении:

      =REGEXREPLACE(A1,"(.*)(.{9})","$1")

    • RIGHT/LEFT+LEN также подсчитывают количество символов для удаления и возврата оставшейся части из конца или начала ячейки соответственно:

      =RIGHT(A1,LEN(A1)-9)

      Совет. Чтобы удалить последние 9 символов из ячеек, замените RIGHT на LEFT:

      =LEFT(A1,LEN(A1)-9)

    • И последняя, но не менее важная функция - REPLACE. Вы говорите ей взять 9 символов, начиная слева, и заменить их ничем ( "" ):

      =REPLACE(A1,1,9,"")

      Примечание. Поскольку REPLACE требует начальной позиции для обработки текста, он не подойдет, если вам нужно удалить N символов из конца ячейки.

    Способ удаления определенного текста в Google Sheets без формул - Дополнение Power Tools

    Функции и все такое - это хорошо, когда у вас есть свободное время. Но знаете ли вы, что есть специальный инструмент, который охватывает все вышеупомянутые способы, и все, что вам нужно сделать, это выбрать нужную радиокнопку? :) Никаких формул, никаких дополнительных столбцов - лучшего помощника и пожелать нельзя ;D

    Вам не нужно верить мне на слово, просто установите Power Tools и убедитесь в этом сами:

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

  • Следующий удаляет не только пробелы, но и переносы строк, HTML entities & tags, а также другие разделители и непечатные символы Просто отметьте все необходимые флажки и нажмите кнопку Удалить :
  • И, наконец, есть настройки для удаления текста в Google Sheets по определенной позиции, первым/последним N символам или до/после символов :
  • Еще один инструмент от Power Tools позволяет удалить единицы времени и даты из временных меток. Он называется Split Date & Time:

    Какое отношение инструмент разделения имеет к удалению единиц времени и даты? Чтобы удалить время из временных меток, выберите Дата поскольку это часть, которую вы хотите сохранить, а также отметить Заменить исходные данные , как на скриншоте выше.

    Инструмент извлечет единицу даты и заменит ею всю временную метку. Или, другими словами, это дополнение для Google Sheets удалит единицу времени из временной метки:

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

    Если у вас есть вопросы, связанные с любой частью этой статьи, жду вас в разделе комментариев ниже!

    Майкл Браун — увлеченный технологический энтузиаст, стремящийся упростить сложные процессы с помощью программных инструментов. Имея более чем десятилетний опыт работы в технологической отрасли, он отточил свои навыки в Microsoft Excel и Outlook, а также в Google Sheets и Docs. Блог Майкла посвящен тому, чтобы делиться своими знаниями и опытом с другими, предоставляя простые советы и учебные пособия для повышения производительности и эффективности. Являетесь ли вы опытным профессионалом или новичком, в блоге Майкла вы найдете ценную информацию и практические советы, которые помогут вам максимально эффективно использовать эти важные программные инструменты.