INHOUDSOPGAWE
Hierdie volgende stukkie van ons bedrywighede met teks in sigblaaie word gewy aan onttrekking. Vind maniere uit om verskeie data te onttrek - teks, karakters, syfers, URL's, e-posadresse, datum en amp; tyd, ens. — vanaf verskeie posisies in verskeie Google Blaaie-selle gelyktydig.
Google Blaaie-formules om teks en syfers uit stringe te onttrek
Formules in Google Lakens is alles. Terwyl sommige kombinasies teks byvoeg & amp; nommers en verwyder verskeie karakters, sommige van hulle onttrek ook teks, nommers, aparte karakters, ens.
Onttrek data volgens posisie: eerste/laaste/middel N karakters
Die maklikste funksies om te hanteer wanneer jy op die punt is om data uit Google Blaaie uit te haal, is selle LINKS, REGS en MIDDEL. Hulle kry enige data volgens posisie.
Onttrek data uit die begin van selle in Google Blaaie
Jy kan maklik die eerste N karakters uittrek deur die LEFT-funksie te gebruik:
LEFT(string, [aantal_karakters])- string is die teks waaruit jy data wil onttrek.
- aantal_karakters is die aantal karakters om uit te neem vanaf van links.
Hier is die eenvoudigste voorbeeld: kom ons haal die landkodes uit die telefoonnommers:
Soos jy kan sien, land kodes neem 6 simbole aan die begin van selle, so die formule wat jy nodig het is:
=LEFT(A2,6)
Wenk. ArrayFormula sal dit moontlik maak om 6 karakters van diehele reeks gelyktydig:
=ArrayFormula(LEFT(A2:A7,6))
Onttrek data uit die einde van selle in Google Blaaie
Om die laaste N karakters uit selle te trek, gebruik eerder die REGTE funksie:
REGS(string,[aantal_karakters])- string is steeds die teks (of 'n selverwysing) om data uit te onttrek.
- aantal_karakters is ook die aantal karakters om van regs af te neem.
Kom ons kry daardie landname van dieselfde telefoonnommers af:
Hulle neem net 2 karakters en dit is presies wat ek in die formule noem:
=RIGHT(A2,2)
Wenk. ArrayFormula sal jou ook help om data uit die einde van alle Google Blaaie-selle gelyktydig te onttrek:
=ArrayFormula(RIGHT(A2:A7,2))
Onttrek data uit die middel van selle in Google Blaaie
As daar funksies is om data van die begin en die einde van selle te onttrek, moet daar 'n funksie wees om data ook uit die middel te onttrek. En ja — daar is een.
Dit word MID genoem:
MID(string, begin_by, extract_length)- string — die teks waar jy wil uithaal die middelste deel van.
- begin_by — die posisie van die karakter waaruit jy die data wil begin kry.
- extract_length — die getal van karakters wat jy moet uittrek.
Deur die voorbeeld van dieselfde telefoonnommers, kom ons vind die telefoonnommers self sonder hul landkodes en landafkorting:
Aangesien die landkodes eindig met die 6de karakter en die 7de die strepie is, sal ek nommers trek wat vanaf die 8ste syfer begin. En ek sal altesaam 8 syfers kry:
=MID(A2,8,8)
Wenk. Deur een sel na die hele reeks te verander en dit in ArrayFormula toe te draai, sal u die resultaat vir elke sel gelyktydig voorsien:
=ArrayFormula(MID(A2:A7,8,8))
Onttrek teks/nommers uit stringe
Soms is die onttrekking van teks volgens posisie (soos hierbo getoon) nie 'n opsie nie. Die vereiste stringe kan in enige deel van jou selle wees en bestaan uit 'n ander aantal karakters wat jou dwing om verskillende formules vir elke sel te skep.
Maar Google Sheets sou nie Google Sheets wees as dit nie het nie. ander funksies wat sal help om teks uit stringe te onttrek.
Kom ons hersien 'n paar moontlike maniere waarop sigblaaie bied.
Onttrek data voor 'n sekere teks — LINKS+SOEK
Wanneer jy wil data onttrek wat 'n sekere teks voorafgaan, gebruik LINKS + SOEK:
- LINKS word gebruik om 'n sekere aantal karakters vanaf die begin van selle terug te gee (van hul linkerkant)
- SOEK soek vir sekere karakters/stringe en kry hul posisie.
Kombineer hierdie — en LINKS sal die aantal karakters wat deur SOEK voorgestel is, terugstuur.
Hier is 'n voorbeeld: hoe onttrek jy tekstuele kodes voor elke 'ea'?
Dit is die formule wat jou sal help in soortgelykegevalle:
=LEFT(A2,SEARCH("ea",A2)-1)
Hier is wat in die formule gebeur:
- SOEK("ea",A2 ) soek vir 'ea' in A2 en gee die posisie terug waar daardie 'ea' vir elke sel begin — 10.
- Dus 10de posisie is waar 'e' is. Maar aangesien ek alles reg wil hê voor 'ea', moet ek 1 van daardie posisie aftrek. Andersins sal 'e' ook teruggestuur word. So ek kry uiteindelik 9.
- LINKS kyk na A2 en kry die eerste 9 karakters.
Onttrek data na die teks
Daar is ook middele om alles na 'n sekere teksstring te kry. Maar hierdie keer sal REG nie help nie. In plaas daarvan kom REGEXREPLACE aan die beurt.
Wenk. REGEXREPLACE gebruik gereelde uitdrukkings. As jy nie gereed is om hulle te hanteer nie, is daar 'n baie makliker oplossing wat hieronder beskryf word. REGEXREPLACE(teks, gereelde_uitdrukking, vervanging)
- teks is 'n string of 'n sel waar jy veranderinge wil maak
- reëlmatige_uitdrukking is die kombinasie van karakters wat staan vir 'n deel van die teks waarna jy soek
- vervanging is wat jy ook al wil kry in plaas van daardie teks
So, hoe gebruik jy dit om data na 'n sekere teks te onttrek — 'ea' in my voorbeeld?
Maklik — deur hierdie formule te gebruik:
=REGEXREPLACE(A2,"(.*)ea(.*)","$2")
Kom ek verduidelik hoe hierdie formule presies werk:
- A2 is 'n sel wat ek onttrek die data van.
- "(.*)ea(.*)" is my gereeldeuitdrukking (of jy kan dit 'n masker noem). Ek soek 'ea' en plaas alle ander karakters tussen hakies. Daar is 2 groepe karakters — alles voor 'ea' is die eerste groep (.*) en alles na 'ea' is die tweede een (.*). Die hele masker self word in dubbele aanhalingstekens geplaas.
- "$2" is wat ek wil kry — die tweede groep (dus sy nommer 2) van die vorige argument.
Wenk. Alle karakters wat in gewone uitdrukkings gebruik word, word op hierdie spesiale bladsy versamel.
Onttrek nommers uit Google Blaaie-selle
Wat as jy net nommers wil onttrek wanneer hul posisie en wat ook al voorgaan & na maak nie saak nie?
Makers (ook bekend as gewone uitdrukkings) sal ook help. Trouens, ek sal dieselfde REGEXREPLACE-funksie neem en die gereelde uitdrukking verander:
=REGEXREPLACE(A2,"[^[:digit:]]", "")
- A2 is 'n sel waar ek daardie getalle vandaan wil kry.
- "[^[:syfer:]]" is 'n gereelde uitdrukking wat alles behalwe syfers neem. Daardie ^karet-simbool is wat 'n uitsondering vir syfers maak.
- "" vervang alles behalwe numeriese karakters met "niks". Of, met ander woorde, verwyder dit heeltemal en laat slegs getalle in selle. Of haal nommers uit :)
Uittrek teks wat syfers en ander karakters ignoreer
Op 'n soortgelyke manier kan jy slegs alfabetiese data uit Google Blaaie-selle uithaal. Die sametrekking vir die gereelde uitdrukking watstaan vir teks word dienooreenkomstig genoem — alfa:
=REGEXREPLACE(A2,"[^[:alpha:]]", "")
Hierdie formule neem alles behalwe letters (A-Z, a-z) en vervang dit letterlik met "niks" . Of, om dit anders te stel, haal net letters uit.
Formulevrye maniere om data uit Google Blaaie-selle te onttrek
As jy op soek is na 'n maklike formulevrye manier om verskillende tipes data onttrek, het jy op die regte plek gekom. Ons Power Tools-byvoeging het net die gereedskap vir die taak.
Uittrek verskillende tipes data uit deur Power Tools-byvoegings te gebruik
Die eerste hulpmiddel wat ek wil hê jy moet weet, word Uittreksel genoem . Dit doen presies waarna jy in hierdie artikel kom soek het — onttrek verskillende soorte data uit Google Blaaie-selle.
Gebruikersvriendelike instellings
Al die gevalle wat ek hierbo gedek het, is nie net oplosbaar met die byvoeging. Die instrument is gebruikersvriendelik so al wat jy hoef te doen is om die reeks te kies wat jy wil verwerk en die vereiste merkblokkies af te merk. Geen formules, geen reëlmatige uitdrukkings.
Onthou jy die tweede punt van hierdie artikel met REGEXREPLACE en gereelde uitdrukkings? Hier is hoe eenvoudig dit is vir die byvoeging:
Ekstra-opsies
Soos jy kan sien, is daar 'n paar ekstra opsies (net merkblokkies) wat jy vinnig kan aan-/afskakel om die mees presiese resultaat te kry:
- Kry slegs die stringe van die vereiste tekskassie.
- Trek alle gevalle uit elkeen uitsel en plaas dit in een sel of aparte kolomme.
- Voeg 'n nuwe kolom in met die resultaat regs van die brondata.
- Vee die onttrekte teks uit die brondata uit.
Onttrek verskillende datatipes
Nie net Power Tools onttrek data voor/na/tussen sekere teksstringe en die eerste/laaste N karakters nie; maar dit haal ook die volgende uit:
- Nommers saam met hul desimale wat die desimale/duisende skeiers ongeskonde hou:
Onttrek enige string data van oral af
Daar is ook 'n opsie om jou eie presiese patroon op te stel en dit vir die onttrekking te gebruik. Uittreksel deur masker en sy jokertekens — * en ? — doen die truuk:
- Jy kan byvoorbeeld uitbring alles tussen die hakies deur die volgende masker te gebruik: (*)
- Of kry daardie SKU's wat net 5 nommers in hul ID's het: SKU?????
- Of, soos ek op die kiekie hieronder wys, trek alles na elke 'ea' in elke sel: ea*
Onttrek datum en tyd uit tydstempels
As 'n bonus is daar 'n kleiner instrument wat datum en tyd van tydstempels sal onttrek — dit word Split Date & Tyd.
Alhoewel dit in die eerste plek geskep is om tydstempels te verdeel, is dit perfekin staat om een van die verlangde eenhede individueel te kry:
Kies net een van die merkblokkies, afhangende van wat jy wil onttrek — datum of tyd — van tydstempels in Google Blaaie en druk Verdeel . Die vereiste eenheid sal na 'n nuwe kolom gekopieer word (of dit sal die oorspronklike data vervang as jy ook die laaste merkblokkie kies):
Hierdie hulpmiddel is ook deel van die Power Tools-byvoeging, so sodra jy dit installeer om enige data van Google Sheets-selle af te kry, het dit jou heeltemal gedek. Indien nie, los asseblief 'n opmerking en ons sal jou help :)