Sisukord
Õppige valemeid ja valemivabu viise, kuidas eemaldada tühikuid, erisümboleid (isegi esimesed/viimased N-märgid) ja samu tekstisõnu enne/pärast teatud tähemärke korraga mitmest lahtrist.
Sama tekstiosa eemaldamine mitmest lahtrist korraga võib olla sama oluline ja keeruline kui selle lisamine. Isegi kui te tunnete mõningaid viise, leiate tänasest blogipostitusest kindlasti uusi. Jagan rohkelt funktsioone ja nende valmisvalemeid ning nagu alati, jätan kõige lihtsama - valemivaba - viimaseks ;)
Google Sheets'i valemid teksti eemaldamiseks lahtritest
Alustan Google Sheetsi standardfunktsioonidest, mis eemaldavad teie tekstisõnu ja -märke lahtritest. Selleks ei ole universaalset funktsiooni, seega annan erinevaid valemeid ja nende kombinatsioone erinevate juhtumite jaoks.
Google Sheets: tühiku eemaldamine
Tühikud võivad pärast importimist või siis, kui mitu kasutajat redigeerivad lehte korraga, hõlpsasti lahtritesse libiseda. Tegelikult on tühikud nii tavalised, et Google Sheetsil on spetsiaalne tööriist Trim, millega saab eemaldada kõik tühikud.
Lihtsalt valige kõik Google Sheetsi lahtrid, kust soovite tühikut eemaldada, ja valige Andmed> Trim tühikut tabeli menüüs:
Kui klõpsate sellele valikule, eemaldatakse kõik valiku ees- ja tagapool olevad tühikud täielikult, samal ajal kui kõik andmete vahel olevad lisaväljad vähendatakse ühele:
Muude erimärkide eemaldamine Google Sheets'i tekstisõnadest
Kahjuks ei paku Google Sheets tööriista, millega saaks "kärpida" muid sümboleid peale tühikute. Siin tuleb tegelda valemitega.
Vihje. Või kasutage hoopis meie tööriista - Power Tools vabastab teie vahemiku kõigist märkidest, mida te klõpsuga määrate, sealhulgas tühikutest.
Siin olen pöördunud hashtagidega enne korteri numbreid ja telefoninumbreid, mille vahel on kriipsud ja sulgudes:
Kasutan nende erimärkide eemaldamiseks valemeid.
Mind aitab seejuures SUBSTITUTE funktsioon. Tavaliselt kasutatakse seda ühe tähemärgi asendamiseks teise tähemärgiga, kuid sa võid selle enda kasuks pöörata ja asendada soovimatud tähemärgid... noh, mitte millegagi :) Teisisõnu, eemaldada.
Vaatame, millist argumenti funktsioon nõuab:
SUBSTITUTE(text_to_search, search_for, replace_with, [occurrence_number])- text_to_search on kas töödeldav tekst või lahter, mis sisaldab seda teksti. Nõutav.
- search_for on see märk, mida soovite leida ja kustutada. Nõutav.
- replace_with - märk, mille sisestate soovimatu sümboli asemel. Nõutav.
- occurrence_number - kui otsitava märgi mitu esinemist on olemas, saate siin täpsustada, millist neist asendada. See on täiesti vabatahtlik ja kui te selle argumendi ära jätate, asendatakse kõik esinemised millegi uuega ( replace_for ).
Nii et mängime. ma pean leidma hashtagi ( # ). A1 ja asendada see 'nothing'-ga, mis on tabelites tähistatud topeltlauseliste jutumärkidega ( "" ). Seda kõike silmas pidades võin koostada järgmise valemi:
=SUBSTITUTE(A1, "#","")
Vihje. Hashtag on samuti topeltlauseis, sest nii peaksite Google Sheets'i valemites tekstisõnu mainima.
Seejärel kopeerige see valem veergu, kui Google Sheets ei paku seda automaatselt teha, ja saate oma aadressid ilma hashtagideta:
Aga mis saab neist kriipsudest ja sulgudest? Kas peaksite looma täiendavaid valemeid? Mitte mingil juhul! Kui pesitsete mitu SUBSTITUTE funktsiooni ühte Google Sheetsi valemisse, eemaldate kõik need märgid igast lahtrist:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1, "#",""),"(",""),")",""),"-",""),"-","")
See valem eemaldab tähemärgid ükshaaval ja iga SUBSTITUTE, alustades keskelt, muutub järgmise SUBSTITUTE'i jaoks vaadeldavaks vahemikuks:
Näpunäide. Veelgi enam, te võite selle mähendada ArrayFormulasse ja katta kogu veeru korraga. Sellisel juhul muutke lahtriviide ( A1 ) oma andmetele veerus ( A1:A7 ) samuti:
=ArrayFormula(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1:A7, "#",""),"(",""),"")",""),"-","")))
Konkreetse teksti eemaldamine Google Sheets'i lahtritest
Kuigi Google Sheetsi jaoks saab kasutada eespool nimetatud SUBSTITUTE funktsiooni, et eemaldada teksti lahtritest, tahaksin näidata ka teist funktsiooni - REGEXREPLACE.
Selle nimi on akronüüm sõnast 'regulaaravaldise asendamine'. Ja ma kavatsen kasutada regulaaravaldisi, et otsida stringid, mis tuleb eemaldada ja asendada need sõnadega ' mitte midagi" ( "" ).
Vihje. Kui te ei ole huvitatud regulaaravaldiste kasutamisest, kirjeldan selle blogipostituse lõpus palju lihtsamat viisi.
Vihje. Kui otsite võimalusi, kuidas leida ja eemaldada duplikaate Google Sheetsis, külastage hoopis seda blogipostitust. REGEXREPLACE(text, regular_expression, replacement)
Nagu näete, on funktsioonil kolm argumenti:
- tekst - on koht, kus te otsite eemaldatavat tekstistringi. See võib olla tekst ise topeltlauseis või viide teksti sisaldavale lahtrisse/vahemikule.
- regular_expression - teie otsingumustrit, mis koosneb erinevatest tähemärkide kombinatsioonidest. Te otsite kõik stringid, mis vastavad sellele mustrile. See argument on see, kus kogu lõbu toimub, kui ma võin nii öelda.
- asendamine - uus soovitud tekstirida.
Oletame, et minu lahtrid koos andmetega sisaldavad ka riigi nime ( USA ) kui rakkude eri kohtades:
Kuidas aitab REGEXREPLACE mul seda eemaldada?
=REGEXREPLACE(A1,"(.*)US(.*)","$1 $2")
Valem töötab täpselt järgmiselt:
- see skaneerib lahtri sisu A1
- selle maski vasteid: "(.*)US(.*)"
See mask ütleb funktsioonile, et otsida USA olenemata sellest, kui palju muid märke võib eelneda (.*) või järgige (.*) riigi nimi.
Ja kogu mask pannakse funktsiooni nõuete kohaselt topeltlause alla :)
- viimane argument - "$1 $2" - on see, mida ma tahaksin selle asemel saada. $1 ja $2 igaüks esindab ühte neist kahest tähemärgirühmast - (.*) - eelmisest argumendist. Te peaksite need rühmad mainima kolmandas argumendis sel viisil, et valem saaks tagastada kõik, mis võib olla enne ja pärast USA
Mis puutub USA ise, ma lihtsalt ei maini seda 3. argumendis - see tähendab, et ma tahan tagastada kõik alates A1 ilma . USA .
Vihje. Seal on spetsiaalne lehekülg, millele saate viidata, et koostada erinevaid regulaarseid väljendeid ja otsida teksti erinevates lahtrite positsioonides.
Vihje. Mis puudutab neid ülejäänud komasid, siis eespool kirjeldatud SUBSTITUTE funktsioon aitab neist vabaneda ;) Sa võid isegi REGEXREPLACE'i ümbritseda SUBSTITUTE'iga ja lahendada kõik ühe valemiga:
=SUBSTITUTE(REGEXREPLACE(A1,"(.*)US(.*)","$1 $2"),",",","")
Teksti eemaldamine enne/pärast teatud tähemärke kõigis valitud lahtrites
Näide 1. REGEXREPLACE funktsioon Google Sheets jaoks
Kui on vaja vabaneda kõigest enne ja pärast teatud märke, aitab ka REGEXREPLACE. Pea meeles, et funktsioon nõuab 3 argumenti:
REGEXREPLACE(text, regular_expression, replacement)Ja nagu ma eespool funktsiooni tutvustades mainisin, tuleb teist funktsiooni õigesti kasutada, et funktsioon teaks, mida leida ja eemaldada.
Kuidas siis eemaldada aadressid ja jätta lahtritesse ainult telefoninumbrid?
Siin on valem, mida ma kasutan:
=REGEXREPLACE(A1,".*\n.*(\+.*)","$1")
- Siin on regulaaravaldis, mida ma sel juhul kasutan: ".*\n.*(\+.*)"
Esimeses osas - .*\n.* - Ma kasutan backslash+n öelda, et minu lahtris on rohkem kui üks rida. Seega tahan, et funktsioon eemaldaks kõik enne ja pärast seda reavahet (sealhulgas selle).
Teine osa, mis on sulgudes (\+.*) ütleb, et ma tahan jätta plussmärgi ja kõik, mis sellele järgneb, alles. Võtan selle osa sulgudes, et seda rühmitada ja hiljem meeles pidada.
Vihje. Tagurpidi kasutatakse enne plussmärki, et muuta see otsitavaks märgiks. Ilma selleta oleks pluss lihtsalt osa väljendist, mis tähistab mõnda muud märki (nagu näiteks tärn).
- Mis puudutab viimast argumenti - $1 - siis see paneb funktsiooni tagastama ainult teise argumendi rühma: plussmärgi ja kõik, mis sellele järgneb. (\+.*) .
Samamoodi saate kustutada kõik telefoninumbrid, kuid säilitada aadressid:
=REGEXREPLACE(A1,"(.*\n).*","$1")
Ainult et seekord ütlete funktsioonile, et see grupeeriks (ja tagastaks) kõik enne reavahet ja kustutaks ülejäänud välja:
Näide 2. RIGHT+LEN+FIND
On veel mõned Google Sheetsi funktsioonid, mis võimaldavad eemaldada teksti enne teatud märki. Need on RIGHT, LEN ja FIND.
Märkus. Need funktsioonid aitavad ainult siis, kui säilitatavad kirjed on ühesuguse pikkusega, nagu minu puhul telefoninumbrid. Kui nad ei ole, kasuta selle asemel lihtsalt REGEXREPLACE'i või veel paremini lõpus kirjeldatud lihtsamat vahendit.
Selle kolmiku kasutamine konkreetses järjekorras aitab mul saada sama tulemuse ja eemaldada kogu teksti enne märki - plussmärki:
=RIGHT(A1,(LEN(A1)-(FIND("+",A1)-1)))
Lubage mul selgitada, kuidas see valem töötab:
- FIND("+",A1)-1 leiab plussmärgi positsiooninumbri A1-s ( 24 ) ja lahutatakse 1, nii et kogusumma ei sisalda plussi ennast: 23 .
- LEN(A1)-(FIND("+",A1)-1) kontrollib tähemärkide koguarvu A1-s ( 40 ) ja lahutatakse sellest 23 (loetud FINDi järgi): 17 .
- Ja siis tagastab RIGHT 17 tähemärki A1 lõpust (paremalt).
Kahjuks ei aita see viis minu puhul palju, et eemaldada tekst pärast reavahet (tühjad telefoninumbrid ja säilitada aadressid), sest aadressid on erineva pikkusega.
Noh, see on okei. Lõpus olev tööriist teeb seda tööd niikuinii paremini ;)
Esimese/viimase N tähemärgi eemaldamine stringidest Google Sheetsis
Kui teil on vaja eemaldada teatud arv erinevaid märke lahtri algusest või lõpust, on abiks ka REGEXREPLACE ja RIGHT/LEFT+LEN.
Märkus. Kuna ma juba eespool neid funktsioone tutvustasin, siis hoian selle punkti lühikeseks ja annan mõned valmis valemid. Või hüpake julgelt kõige lihtsamale lahendusele, mida kirjeldatakse päris lõpus.
Kuidas ma saan siis kustutada koodid nendest telefoninumbritest? Või teisisõnu, kuidas eemaldada esimesed 9 märki lahtritest:
- Kasutage REGEXREPLACE. Looge regulaaravaldis, mis leiab ja kustutab kõik kuni 9. märgini (sealhulgas selle 9. tähemärgi):
=REGEXREPLACE(A1,"(.{9})(.*)","$2")
.
Vihje. Viimase N tähemärgi eemaldamiseks vahetage lihtsalt rühmad regulaaravaldises:
=REGEXREPLACE(A1,"(.*)(.{9})","$1")
- RIGHT/LEFT+LEN loeb ka kustutatavate märkide arvu ja tagastab vastavalt lahtri lõpust või algusest allesjäänud osa:
=RIGHT(A1,LEN(A1)-9)
Vihje. Viimase 9 tähemärgi eemaldamiseks lahtritest asendage RIGHT tähemärgiga LEFT:
=LEFT(A1,LEN(A1)-9)
- Viimane, kuid mitte vähem tähtis on funktsioon REPLACE. Sa ütled talle, et ta võtaks 9 märki vasakult alustades ja asendaks need mitte millegi ( "" ):
=REPLACE(A1,1,9,"")
Märkus. Kuna REPLACE nõuab teksti töötlemiseks alguspositsiooni, ei sobi see, kui on vaja kustutada N märki lahtri lõpust.
Valemivaba viis konkreetse teksti eemaldamiseks Google Sheetsis - lisavõimalus Power Tools
Funktsioonid ja kõik on hea, kui sul on aega tappa. Aga kas sa tead, et on olemas spetsiaalne tööriist, mis hõlmab kõiki eelmainitud viise ja kõik, mida sa pead tegema, on valida vajalik raadionupp :) Ei mingeid valemeid, ei mingeid lisaveerge - paremat abimeest ei saakski soovida ;D
Te ei pea mulle uskuma, installige lihtsalt Power Tools ja veenduge ise:
- Esimene rühm võimaldab teil eemaldada mitu alajaotust või üksikut märki mis tahes positsioonist kõigis valitud lahtrites korraga:
Teine tööriist Power Toolsist eemaldab aja- ja kuupäevaühikud ajatemplitest. Selle nimi on Split Date & Time:
Mis pistmist on jagamisvahendil aja- ja kuupäevaühikute eemaldamisega? Noh, aja eemaldamiseks ajatemplitest valige Kuupäev kuna see on osa, mida tahate hoida ja ka ära tiksuda Asendage lähteandmed , nagu ülaltoodud ekraanipildil.
Tööriist ekstraheerib kuupäevaühiku ja asendab sellega kogu ajatempli. Või teisisõnu, see Google Sheetsi lisavahend eemaldab ajatemplist ajaühiku:
Kõik need ja üle 30 muu ajasäästja arvutustabeli jaoks saate kasutada, kui installite lisavõimaluse Google'i poest. 30 esimest päeva on täiesti tasuta ja täielikult toimiv, nii et teil on aega otsustada, kas see on investeeringut väärt.
Kui teil on küsimusi seoses selle blogipostituse mis tahes osaga, siis näen teid allpool kommentaaride sektsioonis!