Spis treści
Poznaj formuły i sposoby bez formuł, aby przyciąć białe przestrzenie, usunąć symbole specjalne (nawet pierwsze/ostatnie znaki N) i te same ciągi tekstowe przed/po określonych znakach z wielu komórek jednocześnie.
Usunięcie tego samego fragmentu tekstu z kilku komórek jednocześnie może być równie ważne i podchwytliwe, jak jego dodanie. Nawet jeśli znasz niektóre sposoby, to w dzisiejszym wpisie na blogu na pewno znajdziesz nowe. Dzielę się mnóstwem funkcji i ich gotowych formuł i jak zawsze najłatwiejsze - bez formuł - zapisuję na koniec ;)
Formuły dla Arkuszy Google do usuwania tekstu z komórek
Zacznę od standardowych funkcji dla Google Sheets, które usuną twoje ciągi tekstowe i znaki z komórek. Nie ma uniwersalnej funkcji do tego, więc podam różne formuły i ich kombinacje dla różnych przypadków.
Google Sheets: usuń białe znaki
Białe spacje mogą łatwo wślizgnąć się do komórek po imporcie lub jeśli wielu użytkowników edytuje arkusz w tym samym czasie. W rzeczywistości dodatkowe spacje są tak powszechne, że Google Sheets ma specjalne narzędzie Trim, aby usunąć wszystkie białe spacje.
Wystarczy zaznaczyć wszystkie komórki Google Sheets, w których chcemy usunąć białe znaki i wybrać Data> Trim whitespace w menu arkusza kalkulacyjnego:
Po kliknięciu tej opcji wszystkie wiodące i końcowe spacje w zaznaczeniu zostaną całkowicie usunięte, natomiast wszystkie dodatkowe spacje pomiędzy danymi zostaną zredukowane do jednego:
Usuń inne znaki specjalne z ciągów tekstowych w Arkuszach Google
Alas, Google Sheets nie oferuje narzędzia do "przycinania" innych znaków, ale spacji. Musisz poradzić sobie z formułami tutaj.
Wskazówka. Albo zamiast tego użyj naszego narzędzia - Power Tools uwolni Twój zakres od dowolnych znaków, które określisz w kliknięciu, w tym od białych znaków.
Tutaj zaadresowałem hashtagami przed numerami mieszkań i numerami telefonów z myślnikami i nawiasami pomiędzy nimi:
Użyję formuł, aby usunąć te znaki specjalne.
Pomoże mi w tym funkcja SUBSTITUTE, która normalnie służy do zastępowania jednego znaku drugim, ale można to obrócić na swoją korzyść i zastąpić niechciane znaki... no właśnie, niczym :) Innymi słowy, usunąć.
Zobaczmy, jakiego argumentu wymaga funkcja:
SUBSTITUTE(text_to_search, search_for, replace_with, [occurrence_number])- text_to_search jest albo tekstem do przetworzenia, albo komórką zawierającą ten tekst. Wymagane.
- poszukiwanie_dla to ta postać, którą chcesz znaleźć i usunąć. Wymagane.
- zastępować_z - znak, który wstawisz zamiast niechcianego symbolu. Wymagane.
- zdarzenie_numer - jeśli istnieje kilka wystąpień szukanego znaku, tutaj możesz określić, które z nich zastąpić. Jest to całkowicie opcjonalne i jeśli pominiesz ten argument, wszystkie wystąpienia zostaną zastąpione czymś nowym ( wymienić_na ).
Więc zagrajmy. Muszę znaleźć hashtag ( # ) w A1 i zastąpić go słowem "nic", które w arkuszach kalkulacyjnych oznaczane jest podwójnym cudzysłowem ( "" ).Mając to wszystko na uwadze, mogę zbudować następujący wzór:
=SUBSTITUTE(A1, "#",")
Wskazówka. hashtag jest również w podwójnych cudzysłowach, ponieważ w ten sposób należy wymieniać ciągi tekstowe w formułach Google Sheets.
Następnie skopiuj tę formułę w dół kolumny, jeśli Google Sheets nie oferuje, aby zrobić to automatycznie, a otrzymasz swoje adresy bez hashtagów:
Ale co z tymi kreskami i nawiasami? Czy powinieneś tworzyć dodatkowe formuły? Wcale nie! Jeśli zagnieździsz wiele funkcji SUBSTITUTE w jednej formule Google Sheets, usuniesz wszystkie te znaki z każdej komórki:
=SUBSTYTUT(SUBSTYTUT(SUBSTYTUT(SUBSTYTUT(A1, "#","),"(","),"),"),"-",")
Ta formuła usuwa znaki jeden po drugim, a każdy SUBSTYTUT, zaczynając od środka, staje się zakresem, na który należy patrzeć dla następnego SUBSTYTUTU:
Wskazówka.Co więcej, możesz zawinąć to w ArrayFormula i pokryć całą kolumnę za jednym razem.W tym przypadku zmień odniesienie do komórki ( A1 ) do swoich danych w kolumnie ( A1:A7 ), jak również:
=ArrayFormula(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1:A7, "#","),"(","),"),"),"-",")))
Usuń określony tekst z komórek w Google Sheets
Choć do usuwania tekstu z komórek w Google Sheets można użyć wspomnianej wcześniej funkcji SUBSTITUTE, chciałbym pokazać także inną funkcję - REGEXREPLACE.
Jego nazwa jest akronimem od 'regularne wyrażenie zastąpić'. I zamierzam użyć wyrażeń regularnych do wyszukiwania ciągów do usunięcia i zastąpienia ich ' nic" ( "" ).
Wskazówka. Jeśli nie jesteś zainteresowany używaniem wyrażeń regularnych, opisuję znacznie łatwiejszy sposób na końcu tego wpisu na blogu.
Jeśli szukasz sposobów na znalezienie i usunięcie duplikatów w Google Sheets, odwiedź ten wpis. REGEXREPLACE(text, regular_expression, replacement)
Jak widać, są trzy argumenty do funkcji:
- tekst - to miejsce, w którym szukasz łańcucha tekstowego do usunięcia. Może to być sam tekst w podwójnych cudzysłowach lub odwołanie do komórki/ zakresu z tekstem.
- wyrażenie regularne - twój wzorzec wyszukiwania, który składa się z różnych kombinacji znaków. Będziesz szukał wszystkich łańcuchów, które pasują do tego wzorca. Ten argument jest miejscem, gdzie dzieje się cała zabawa, jeśli mogę tak powiedzieć.
- wymiana - nowy, żądany ciąg tekstowy.
Załóżmy, że moje komórki z danymi zawierają również nazwę kraju (. US ), jeśli różne miejsca w komórkach:
Jak REGEXREPLACE pomoże mi go usunąć?
=REGEXREPLACE(A1,"(.*)US(.*)","$1 $2")
Oto jak dokładnie działa ta formuła:
- skanuje zawartość komórki A1
- dla dopasowań do tej maski: "(.*)US(.*)"
Maska ta mówi funkcji, aby szukała US bez względu na to, jaka liczba innych znaków może poprzedzać (.*) lub podążać za (.*) nazwa kraju.
A całą maskę umieszczamy w cudzysłowie zgodnie z postulatami funkcji :)
- ostatni argument -. "$1 $2" - jest tym, co chcę uzyskać zamiast tego. $1 oraz $2 każdy reprezentuje jedną z tych dwóch grup postaci - (.*) - Powinieneś wymienić te grupy w trzecim argumencie w ten sposób, aby formuła mogła zwrócić wszystko, co może stać przed i po US
W odniesieniu do US sam, po prostu nie wymieniam go w 3 argumencie - to znaczy, że chcę zwrócić wszystko z A1 bez the US .
Wskazówka. istnieje specjalna strona, do której możesz się odwołać, aby zbudować różne wyrażenia regularne i szukać tekstu w różnych pozycjach komórek.
Wskazówka. co do tych pozostałych przecinków, to opisana wyżej funkcja SUBSTITUTE pomoże się ich pozbyć ;) można nawet obudować REGEXREPLACE funkcją SUBSTITUTE i rozwiązać wszystko jedną formułą:
=SUBSTITUTE(REGEXREPLACE(A1,"(.*)US(.*)","$1 $2"),",",")
Usuń tekst przed/po określonych znakach we wszystkich wybranych komórkach
Przykład 1. Funkcja REGEXREPLACE dla Google Sheets
Jeśli chodzi o pozbycie się wszystkiego przed i po pewnych znakach, REGEXREPLACE również pomaga. Pamiętaj, że funkcja wymaga 3 argumentów:
REGEXREPLACE(text, regular_expression, replacement)I jak wspomniałem wyżej, gdy wprowadziłem funkcję, to drugie powinieneś użyć poprawnie, aby funkcja wiedziała, co znaleźć i usunąć.
Jak więc usunąć adresy i zachować w komórkach tylko numery telefonów?
Oto formuła, z której będę korzystał:
=REGEXREPLACE(A1,".*\n.*(\+.*)","$1")
- Oto wyrażenie regularne, którego używam w tym przypadku: ".*\n.*(\+.*)"
W pierwszej części -. .*\n.* - Używam odwrotny ukośnik+n aby powiedzieć, że moja komórka ma więcej niż jeden rząd. Więc chcę, aby funkcja usunęła wszystko przed i po tej przerwie w linii (łącznie z nią).
Druga część, która jest w nawiasie (\+.*) mówi, że chcę zachować znak plusa i wszystko, co po nim następuje w stanie nienaruszonym. Biorę tę część w nawias, aby ją zgrupować i zachować w pamięci na później.
Wskazówka: odwrotny ukośnik jest używany przed plusem, aby przekształcić go w szukany znak. Bez niego plus byłby tylko częścią wyrażenia, która oznacza jakieś inne znaki (jak na przykład gwiazdka).
- Jeśli chodzi o ostatni argument - $1 - sprawia on, że funkcja zwraca tylko tę grupę z drugiego argumentu: znak plusa i wszystko, co po nim następuje (\+.*) .
W podobny sposób można usunąć wszystkie numery telefonów, ale zachować adresy:
=REGEXREPLACE(A1,"(.*\n).*","$1")
Tylko tym razem mówisz funkcji, aby zgrupowała (i zwróciła) wszystko przed przerwą w linii i wyczyściła resztę:
Przykład 2. PRAWO+LEN+FIND
Istnieje jeszcze kilka funkcji Google Sheets, które pozwalają usunąć tekst przed określonym znakiem. Są to RIGHT, LEN i FIND.
Uwaga. Te funkcje pomogą tylko wtedy, gdy rekordy do zachowania są tej samej długości, jak numery telefonów w moim przypadku. Jeśli nie są, po prostu użyj REGEXREPLACE zamiast lub, jeszcze lepiej, łatwiejszego narzędzia opisanego na końcu.
Użycie tego tria w określonej kolejności pomoże mi uzyskać ten sam wynik i usunąć cały tekst przed znakiem - znakiem plus:
=RIGHT(A1,(LEN(A1)-(FIND("+",A1)-1)))
Pozwól, że wyjaśnię, jak działa ta formuła:
- FIND("+",A1)-1 lokalizuje numer pozycji znaku plus w A1 ( 24 ) i odejmuje 1, aby suma nie zawierała samego plusa: 23 .
- LEN(A1)-(FIND("+",A1)-1) sprawdza całkowitą liczbę znaków w A1 ( 40 ) i odejmuje od niej 23 (liczone przez FIND): 17 .
- A następnie PRAWDA zwraca 17 znaków od końca (prawej strony) A1.
Niestety ten sposób nie pomoże zbytnio w usunięciu tekstu po przerwaniu linii w moim przypadku (wyczyść numery telefonów i zachowaj adresy), ponieważ adresy są różnej długości.
No i dobrze, bo narzędzie na końcu i tak wykonuje tę pracę lepiej ;)
Usuń pierwsze/ostatnie znaki N z ciągów w Arkuszach Google
Zawsze, gdy trzeba usunąć określoną liczbę różnych znaków z początku lub końca komórki, pomocne będą również REGEXREPLACE i RIGHT/LEFT+LEN.
Uwaga. Ponieważ wprowadziłem już te funkcje powyżej, skrócę ten punkt i podam kilka gotowych wzorów. Albo nie krępuj się wskoczyć do najprostszego rozwiązania opisanego na samym końcu.
Jak więc mogę wymazać kody z tych numerów telefonów? Lub, innymi słowy, usunąć pierwsze 9 znaków z komórek:
- Użyj REGEXREPLACE. Utwórz wyrażenie regularne, które znajdzie i usunie wszystko do 9. znaku (w tym ten 9. znak):
=REGEXREPLACE(A1,"(.{9})(.*)","$2")
.
Wskazówka. Aby usunąć ostatnie N znaków, wystarczy zamienić grupy w wyrażeniu regularnym:
=REGEXREPLACE(A1,"(.*)(.{9})","$1")
- RIGHT/LEFT+LEN liczą również ilość znaków do usunięcia i zwrócenia pozostałej części odpowiednio z końca lub początku komórki:
=RIGHT(A1,LEN(A1)-9)
Wskazówka. aby usunąć z komórek ostatnie 9 znaków, zamień PRAWO na LEWO:
=LEFT(A1,LEN(A1)-9)
- Ostatnią, ale nie najmniej ważną funkcją jest REPLACE. Mówisz jej, aby wzięła 9 znaków zaczynając od lewej i zastąpiła je niczym ( "" ):
=REPLACE(A1,1,9,"")
Uwaga. Ponieważ REPLACE wymaga pozycji początkowej do przetworzenia tekstu, nie zrobi tego, jeśli trzeba usunąć N znaków z końca komórki.
Bezformułowy sposób na usunięcie określonego tekstu w Arkuszach Google - dodatek Power Tools
Funkcje i wszystko jest dobre, gdy masz czas do zabicia. Ale czy wiesz, że istnieje specjalne narzędzie, które obejmuje wszystkie wyżej wymienione sposoby i wszystko, co musisz zrobić, to wybrać wymagany przycisk radiowy? :) Żadnych formuł, żadnych dodatkowych kolumn - nie mógłbyś życzyć sobie lepszego pomocnika ;D
Nie musisz wierzyć mi na słowo, po prostu zainstaluj Power Tools i zobacz to sam:
- Pierwsza grupa pozwala na. usuń wiele podciągów lub pojedynczych znaków z dowolnej pozycji we wszystkich wybranych komórkach jednocześnie:
Kolejne narzędzie z Power Tools usunie jednostki czasu i daty z timestampów, nazywa się Split Date & Time:
Co ma wspólnego narzędzie do dzielenia z usuwaniem jednostek czasu i daty? Otóż, aby usunąć czas z timestampów, należy wybrać Data ponieważ jest to część, którą chcesz zachować, a także odhaczyć Zastąpić dane źródłowe , tak jak na powyższym zrzucie ekranu.
Narzędzie to wyodrębni jednostkę daty i zastąpi nią cały znacznik czasu. Lub, innymi słowy, ten dodatek do Google Sheets usunie jednostkę czasu ze znacznika czasu:
Możesz mieć wszystkie te i ponad 30 innych oszczędzających czas arkuszy kalkulacyjnych instalując dodatek ze Sklepu Google. Pierwsze 30 dni jest całkowicie darmowe i w pełni funkcjonalne, więc masz czas, aby zdecydować, czy warto zainwestować.
Jeśli masz jakieś pytania związane z jakąkolwiek częścią tego wpisu na blogu, to do zobaczenia w sekcji komentarzy poniżej!