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

  • Споделя Това
Michael Brown

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

Премахването на една и съща част от текста от няколко клетки едновременно може да бъде също толкова важно и сложно, колкото и добавянето й. Дори да знаете някои от начините, със сигурност ще откриете нови в днешната публикация в блога. Споделям много функции и техните готови формули и, както винаги, оставям най-лесното - без формули - за накрая ;)

    Формули за Google Sheets за премахване на текст от клетките

    Ще започна със стандартните функции за Google Sheets, които ще премахват текстови низове и символи от клетките ви. Няма универсална функция за това, затова ще предоставя различни формули и техните комбинации за различни случаи.

    Таблици на Google: премахване на белите полета

    Белите интервали могат лесно да се промъкнат в клетките след импортиране или ако няколко потребители редактират листа едновременно. Всъщност допълнителните интервали са толкова често срещани, че в Google Sheets има специален инструмент за триене, който премахва всички бели интервали.

    Просто изберете всички клетки на Google Sheets, в които искате да премахнете белите полета, и изберете Данни> Подстригване на белите полета в менюто на електронната таблица:

    Когато щракнете върху опцията, всички начални и крайни интервали в селекцията ще бъдат премахнати напълно, а всички допълнителни интервали между данните ще бъдат намалени до един:

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

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

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

    Тук съм се обърнал с хаштагове към номерата на апартаментите и телефонните номера с тирета и скоби между тях:

    Ще използвам формули, за да премахна тези специални символи.

    За това ще ми помогне функцията SUBSTITUTE. Обикновено тя се използва за замяна на един символ с друг, но вие можете да обърнете това във ваша полза и да замените нежеланите символи с... ами с нищо :) С други думи, да ги премахнете.

    Нека да видим какъв аргумент изисква функцията:

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

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

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

    Съвет: Хаштагът също е в двойни кавички, тъй като това е начинът, по който трябва да споменавате текстови низове във формулите на Google Sheets.

    След това копирайте тази формула надолу по колоната, ако Google Sheets не предлага да направи това автоматично, и ще получите адресите си без хаштаговете:

    Но какво да кажем за тези тирета и скоби? Трябва ли да създавате допълнителни формули? Съвсем не! Ако вложите няколко функции SUBSTITUTE в една формула в Google Sheets, ще премахнете всички тези символи от всяка клетка:

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

    Тази формула премахва символите един по един и всеки SUBSTITUTE, започвайки от средата, се превръща в диапазона, който се търси за следващия SUBSTITUTE:

    Съвет. Нещо повече, можете да обгърнете това в 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)

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

    • текст - Това може да бъде самият текст в двойни кавички или препратка към клетка/обхват с текст.
    • regular_expression - Вашият шаблон за търсене, който се състои от различни комбинации от символи. Ще търсите всички низове, които отговарят на този шаблон. Ако мога така да се изразя, този аргумент е мястото, където се случва цялото забавление.
    • замяна - нов желан текстов низ.

    Да предположим, че клетките ми с данни съдържат и името на страната ( САЩ ), ако са на различни места в клетките:

    Как REGEXREPLACE ще ми помогне да го премахна?

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

    Ето как точно работи формулата:

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

      Тази маска указва на функцията да търси САЩ без значение какъв брой други символи могат да предхождат (.*) или следвайте (.*) името на страната.

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

    • последният аргумент - "$1 $2" - е това, което искам да получа вместо това. $1 и $2 всеки от тях представлява една от тези 2 групи герои - (.*) - Трябва да споменете тези групи в третия аргумент по този начин, за да може формулата да върне всичко, което може да стои преди и след САЩ

      Що се отнася до САЩ просто не го споменавам в третия аргумент - т.е. искам да върна всичко от A1 без на САЩ .

    Съвет: Има специална страница, в която можете да се обърнете към различни регулярни изрази и да търсите текст в различни позиции на клетките.

    Съвет. Що се отнася до останалите запетаи, описаната по-горе функция SUBSTITUTE ще ви помогне да се отървете от тях ;) Можете дори да оградите REGEXREPLACE със SUBSTITUTE и да решите всичко с една формула:

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

    Премахване на текст преди/след определени символи във всички избрани клетки

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

    Когато става въпрос за премахване на всичко преди и след определени символи, REGEXREPLACE също помага. Не забравяйте, че функцията изисква 3 аргумента:

    REGEXREPLACE(текст, регулярен_израз, замяна)

    И както споменах по-горе, когато представих функцията, втората трябва да се използва правилно, за да знае функцията какво да намери и премахне.

    Как да премахна адресите и да запазя само телефонните номера в клетките?

    Ето формулата, която ще използвам:

    =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 единиците & таговете и други разделители и непечатащи символи. Просто отбележете всички необходими квадратчета и натиснете Премахване на :
  • И накрая, има настройки за премахване на текст в Google Sheets по определена позиция, първи/последен N символа или преди/след символа :
  • Друг инструмент от Power Tools ще премахне единиците за време и дата от времевите маркери. Той се нарича Split Date & Time:

    Какво общо има инструментът за разделяне с премахването на единиците за време и дата? За да премахнете времето от времевите маркери, изберете Дата тъй като това е част, която искате да запазите, а също и да отметнете Замяна на изходните данни , както е показано на снимката по-горе.

    Инструментът ще извлече единицата за дата и ще замени целия времеви печат с нея. Или с други думи, тази добавка за Google Sheets ще премахне единицата за време от времевия печат:

    Можете да се възползвате от всички тези и над 30 други средства за спестяване на време за електронни таблици, като инсталирате добавката от Google Store. Първите 30 дни са напълно безплатни и напълно функционални, така че имате време да решите дали си струва да инвестирате.

    Ако имате някакви въпроси, свързани с някоя част от този блог пост, ще се видим в раздела за коментари по-долу!

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.