Ynhâldsopjefte
Learje formules en formulefrije manieren om wite spaasjes te trimmen, spesjale symboalen te ferwiderjen (sels de earste/lêste N tekens) en deselde tekststrings foar/nei bepaalde tekens út meardere sellen tagelyk.
Itselde diel fan 'e tekst fuorthelje út ferskate sellen tagelyk kin like wichtich en lestich wêze as it tafoegjen. Sels as jo guon fan 'e manieren kenne, sille jo grif nije fine yn' e hjoeddeistige blogpost. Ik diel in protte funksjes en har klearebare formules en, lykas altyd, bewarje ik de maklikste - formulefrije - foar it lêst ;)
Formules foar Google Blêden om tekst út sellen te ferwiderjen
Ik sil begjinne mei de standertfunksjes foar Google Sheets dy't jo tekststrings en karakters út sellen ferwiderje. D'r is gjin universele funksje foar dit, dus ik sil ferskate formules en harren kombinaasjes foar ferskate gefallen leverje.
Google Sheets: wite romte fuortsmite
Witromte kin maklik yn sellen glide nei de ymport of as meardere brûkers bewurkje it blêd tagelyk. Yn feite binne ekstra spaasjes sa gewoan dat Google Sheets in spesjaal Trim-ark hat om alle wite spaasjes te ferwiderjen.
Selektearje gewoan alle Google Sheets-sellen wêr't jo wite spaasjes fuortsmite wolle en kies Data > Trim wite romte yn it spreadsheetmenu:
As jo op de opsje klikke, wurde alle foarste en efterste spaasjes yn 'e seleksje folslein fuorthelle, wylst alle ekstra spaasjes yn-wurden, dizze add-on foar Google Sheets sil de tiidienheid fan it tiidstempel fuortsmite:
Jo kinne al dizze en mear as 30 oare tiidbesparers hawwe foar spreadsheets troch it ynstallearjen fan de tafoeging fan 'e Google Store. De earste 30 dagen binne folslein fergees en folslein funksjoneel, dus jo hawwe de tiid om te besluten oft it in ynvestearring wurdich is.
As jo fragen hawwe oer in diel fan dizze blogpost, dan sjoch ik dy yn de kommentaar seksje hjirûnder!
tusken de gegevens wurde fermindere ta ien:
Fuortsmite oare spesjale tekens út tekststrings yn Google Sheets
Och, Google Sheets biedt gjin ark om oare karakters as spaasjes te 'trimmen'. Jo moatte hjir mei formules omgean.
Tip. Of brûk ús ark ynstee - Power Tools sille jo berik befrije fan alle karakters dy't jo yn in klik opjaan, ynklusyf wite romte.
Hjir haw ik oansprutsen mei hashtags foar de appartemintnûmers en telefoannûmers mei streepkes en heakjes dertusken:
Ik sil formules brûke om dy spesjale tekens te ferwiderjen.
De SUBSTITUTE-funksje sil my dêrmei helpe. It wurdt normaal brûkt om it iene karakter te ferfangen troch in oar, mar jo kinne dat yn jo foardiel draaie en de net-winske karakters ferfange troch... goed, neat :) Mei oare wurden, fuortsmite.
Litte wy sjen hokker argumint de funksje is. fereasket:
SUBSTITUTE(text_to_search, search_for, replace_with, [occurrence_number])- text_to_search is of de te ferwurkjen tekst of in sel dy't dy tekst befettet. Ferplicht.
- sykje_nei is dat karakter dat jo fine en wiskje wolle. Ferplicht.
- ferfange_mei - in karakter dat jo ynfoegje ynstee fan it net winske symboal. Ferplicht.
- occurrence_number - as der ferskate eksimplaren binne fan it karakter wêr't jo nei sykje, kinne jo hjir oanjaan hokker te ferfangen. It is folslein opsjoneel,en as jo dit argumint weilitte, wurde alle eksimplaren ferfongen troch wat nijs ( ferfange_foar ).
Sa litte wy spylje. Ik moat in hashtag ( # ) fine yn A1 en ferfange troch 'neat' dat yn spreadsheets markearre is mei dûbele oanhalingstekens ( "" ). Mei dat alles yn gedachten kin ik de folgjende formule bouwe:
=SUBSTITUTE(A1,"#","")
Tip. De hashtag is ek yn dûbele oanhalingstekens, om't dit de manier is wêrop jo tekststrings moatte neame yn formules fan Google Sheets.
Kopieer dan dizze formule nei ûnderen yn 'e kolom as Google Sheets dit net automatysk biedt, en jo krije jo adressen sûnder de hashtags:
Mar wat oer dy streepkes en heakjes? Moatte jo ekstra formules oanmeitsje? Heulendal net! As jo meardere SUBSTITUTE-funksjes yn ien formule fan Google Blêden nestele, sille jo al dizze tekens út elke sel fuortsmite:
=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"#",""),"(",""),")",""),"-","")
Dizze formule ferwideret karakters ien foar ien en elke FERGESE, begjinnend fan 'e midden , wurdt it berik om nei te sjen foar de folgjende FERGESE:
Tip. Wat mear is, jo kinne dit yn ArrayFormula ferpakke en de heule kolom tagelyk dekke. Feroarje yn dit gefal ek de selreferinsje ( A1 ) nei jo gegevens yn kolom ( A1:A7 ):
=ArrayFormula(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1:A7,"#",""),"(",""),")",""),"-",""))
Speciale tekst fuortsmite fan sellen yn Google Spreadsheets
Hoewol jo de earderneamde SUBSTITUTE-funksje foar Google Spreadsheets brûke kinne om tekst út sellen te ferwiderjen, wol ik it sjen litteek in oare funksje - REGEXREPLACE.
De namme is in akronym fan 'reguliere ekspresje ferfange'. En ik sil de reguliere útdrukkingen brûke om te sykjen nei de stringen om se te ferwiderjen en te ferfangen troch ' neat' ( "" ).
Tip. As jo net ynteressearre binne yn it brûken fan reguliere útdrukkingen, beskriuw ik in folle maklikere manier oan 'e ein fan dizze blogpost.
Tip. As jo nei manieren sykje om duplikaten te finen en te ferwiderjen yn Google Sheets, besykje dan dizze blogpost ynstee. REGEXREPLACE(tekst, reguliere_útdrukking, ferfanger)
Sa't jo sjen kinne, binne d'r trije arguminten foar de funksje:
- tekst - is wêr't jo nei de tekst sykje string te ferwiderjen. It kin de tekst sels wêze yn dûbele oanhalingstekens of in ferwizing nei in sel/berik mei tekst.
- reguliere_ekspresje - jo sykpatroan dat bestiet út ferskate karakterkombinaasjes. Jo sille sykje nei alle snaren dy't oerienkomme mei dit patroan. Dit argumint is wêr't alle wille bart, as ik it sizze mei.
- ferfanging - in nije winske tekststring.
Litte wy oannimme dat myn sellen mei gegevens binne befetsje ek de lânnamme ( US ) as ferskate plakken yn sellen:
Hoe sil REGEXREPLACE my helpe om it te ferwiderjen?
=REGEXREPLACE(A1,"(.*)US(.*)","$1 $2")
Hjir is hoe't de formule krekt wurket:
- it scant de ynhâld fan 'e sel A1
- foar oerienkomsten mei dit masker: "(.*)US(.*)"
Dit masker fertelt de funksje omsykje nei de US , nettsjinsteande it oantal oare tekens dat foar (.*) kin of folgje (.*) de namme fan it lân.
En it hiele masker wurdt set op dûbele oanhalingstekens neffens de funksje easken :)
- it lêste argumint - "$1 $2" - is wat ik wol krije ynstee. $1 en $2 fertsjintwurdigje elk ien fan dy 2 groepen karakters - (.*) - fan it foarige argumint. Jo moatte dizze groepen yn it tredde argumint op dizze manier neame, sadat de formule alles kin weromjaan dat mooglik foar en nei de US
stiet Wat de US sels oanbelanget, doch ik gewoan' t neame it yn it 3e argumint - dat betsjut, ik wol alles weromjaan fan A1 sûnder de US .
Tip. D'r is in spesjale side dy't jo kinne ferwize om ferskate reguliere útdrukkingen te bouwen en te sykjen nei de tekst yn ferskate posysjes fan sellen.
Tip. Wat de oerbleaune komma's oanbelanget, sil de hjirboppe beskreaune SUBSTITUTE-funksje helpe om se kwyt te reitsjen ;) Jo kinne sels REGEXREPLACE ynslute mei de SUBSTITUTE en alles oplosse mei ien formule:
=SUBSTITUTE(REGEXREPLACE(A1,"(.*)US(.*)","$1 $2"),",","")
Tekst foar/nei fuortsmite bepaalde tekens yn alle selektearre sellen
Foarbyld 1. REGEXREPLACE-funksje foar Google Blêden
As it giet om it kwytreitsje fan alles foar en nei bepaalde tekens, helpt REGEXREPLACE ek. Unthâld, de funksje fereasket 3 arguminten:
REGEXREPLACE(tekst,regular_expression, replacement)En, lykas ik hjirboppe neamde doe't ik de funksje yntrodusearre, is it de twadde dy't jo korrekt moatte brûke, sadat de funksje wit wat te finen en te ferwiderjen.
Dus hoe ferwiderje ik de adressen en allinich telefoannûmers yn sellen hâlde?
Hjir is de formule dy't ik sil brûke:
=REGEXREPLACE(A1,".*\n.*(\+.*)","$1")
- Hjir is de reguliere ekspresje dy't ik yn dit gefal brûk: ".*\n.*(\+.*)"
Yn it earste diel — .*\n .* — Ik brûk backslash+n om te fertellen dat myn sel mear as ien rige hat. Dat ik wol dat de funksje alles foar en nei dy rigelbreuk (ynklusyf it) fuorthellet.
It twadde diel dat tusken heakjes stiet (\+.*) seit dat ik behâlde wol. it plusteken en alles wat derop folget yntakt. Ik nim dit diel tusken heakjes om it te groepearjen en yn gedachten te hâlden foar letter.
Tip. De backslash wurdt brûkt foar de plus om it te feroarjen yn in karakter wêr't jo nei sykje. Sûnder it soe de plus mar in diel wêze fan 'e útdrukking dy't foar guon oare karakters stiet (lykas bygelyks in asterisk docht).
- Wat it lêste argumint oanbelanget - $1 - makket it dat de funksje dy ienige groep werombringt fan it twadde argumint: it plusteken en alles dat folget (\+.*) .
Op in fergelykbere manier kinne jo alle telefoannûmers wiskje en dochs de adressen behâlde:
=REGEXREPLACE(A1,"(.*\n).*","$1")
Allinnich dizze kear fertelle jo de funksje om te groepearjen (en werom) alles foar deline break en wiskje de rest:
Foarbyld 2. RIGHT+LEN+FIND
D'r binne in pear mear Google Spreadsheets-funksjes wêrmei jo de tekst foar in bepaald karakter. Se binne RJOCHTS, LEN en FYN.
Opmerking. Dizze funksjes sille allinich helpe as de te hâlden records fan deselde lingte binne, lykas telefoannûmers yn myn gefal. As se net binne, brûk dan gewoan de REGEXREPLACE ynstee of, noch better, it makliker ark dat oan 'e ein beskreaun is.
It brûken fan dit trio yn in bepaalde folchoarder sil my helpe om itselde resultaat te krijen en de hiele tekst foar in karakter te ferwiderjen - in plusteken:
=RIGHT(A1,(LEN(A1)-(FIND("+",A1)-1)))
Lit my útlizze hoe't dizze formule wurket:
- FIND("+",A1)-1 fynt it posysjenûmer fan it plusteken yn A1 ( 24 ) en trekt 1 ôf sadat it totaal de plus sels net omfettet: 23 .
- LEN(A1)-(FIND("+",A1)- 1) kontrolearret it totale oantal karakters yn A1 ( 40 ) en lûkt 23 (telt troch FIND) derfan ôf: 17 .
- En dan RJOCHTS jout 17 tekens werom fan 'e ein (rjochts) fan A1.
Spitigernôch sil dizze manier net folle helpe om de tekst nei de rigelbreuk yn myn gefal te ferwiderjen (telefoannûmers wiskje en adressen bewarje), want de adressen binne fan ferskillende lingte.
No, dat is goed. It ark oan 'e ein docht dit wurk yn elts gefal better ;)
Fuortsmite de earste/lêste N karakters út tekenrige yn Google Blêdwizers
Wannear't jo in fuortsmite moattebepaald oantal ferskillende tekens fan it begjin of it ein fan in sel, REGEXREPLACE en RIGHT/LEFT+LEN sille ek helpe.
Opmerking. Om't ik dizze funksjes hjirboppe al yntrodusearre, sil ik dit punt koart hâlde en wat klearmakke formules leverje. Of fiel jo frij om te springen nei de maklikste oplossing beskreaun oan 'e ein.
Dus, hoe kin ik de koades fan dizze telefoannûmers wiskje? Of, mei oare wurden, ferwiderje de earste 9 tekens út sellen:
- Gebrûk REGEXREPLACE. Meitsje in reguliere ekspresje dy't alles sil fine en wiskje oant it 9e karakter (ynklusyf dat 9e karakter):
=REGEXREPLACE(A1,"(.{9})(.*)","$2")
.
Tip. Om de lêste N karakters te ferwiderjen, wikselje gewoan de groepen yn 'e reguliere ekspresje:
=REGEXREPLACE(A1,"(.*)(.{9})","$1")
- RIGHT/LEFT+LEN tel ek it oantal tekens om te wiskjen en it oerbleaune diel werom te jaan fan it ein of it begjin fan in sel respektivelik:
=RIGHT(A1,LEN(A1)-9)
Tip. Om de lêste 9 karakters út sellen te ferwiderjen, ferfange RJOCHTS mei LEFT:
=LEFT(A1,LEN(A1)-9)
- Last but not least is de REPLACE-funksje. Jo fertelle it om de 9 karakters te nimmen, begjinnend fan links en ferfange se mei neat ( "" ):
=REPLACE(A1,1,9,"")
Opmerking. Sûnt REPLACE fereasket in startposysje foar it ferwurkjen fan de tekst, it sil net dwaan as jo moatte wiskje N karakters út 'e ein fan in sel.
Formulefrije manier om spesifike tekst yn Google Sheets te ferwiderjen - Power Toolsadd-on
Funsjes en alles is goed as jo tiid hawwe om te deadzjen. Mar wite jo dat d'r in spesjaal ark is dat alle boppeneamde manieren omfettet en alles wat jo hoege te dwaan is de fereaske radioknop te selektearjen? :) Gjin formules, gjin ekstra kolommen - in bettere sidekick kinst net winskje ;D
Jo hoege myn wurd net te nimmen, gewoan Power Tools ynstallearje en it sels sjen:
- De earste groep lit jo meardere substrings of yndividuele tekens fuortsmite fan elke posysje yn alle selektearre sellen tagelyk:
In oar ark fan Power Tools sil tiid- en datum-ienheden fan tiidstempels fuortsmite. It hjit Split Datum & amp; Tiid:
Wat hat it splitting-ark te krijen mei it fuortheljen fan tiid- en datum-ienheden? No, om tiid te ferwiderjen fan tiidstempels, selektearje Datum , om't it in diel is dat jo behâlde wolle en ek Boarnegegevens ferfange oankrûpe, krekt lykas op 'e skermprint hjirboppe.
It ark sil de datum-ienheid ekstrahearje en de folsleine tiidstempel dêrmei ferfange. Of, yn oare