Tartalomjegyzék
Ez a következő darab a műveletek a szöveggel a táblázatokban a kivonatolásnak szentelt. Ismerje meg a különböző adatok - szöveg, karakterek, számok, URL-címek, e-mail címek, dátum & idő, stb. - különböző pozíciókból egyszerre több Google Sheets cellában.
Google Sheets képletek szöveg és számok kivonására karakterláncokból
A Google Sheets képletei mindent tartalmaznak. Míg egyes kombinációk szöveget és számokat adnak hozzá, és különböző karaktereket távolítanak el, addig egyesek szöveget, számokat, különálló karaktereket stb. is kivesznek.
Adatok kivonása pozíció szerint: első/legutolsó/középső N karakterek
A legkönnyebben kezelhető függvények, ha a Google Sheets celláiból akarsz adatokat kivenni, a LEFT, RIGHT és MID. Ezek bármely adatot pozíció szerint kapnak.
Adatok kivonása a Google Sheets cellák elejéről
Az első N karaktert könnyen kihúzhatja a LEFT funkcióval:
LEFT(string,[number_of_characters])- string az a szöveg, amelyből az adatokat ki akarja vonni.
- number_of_characters a balról kiindulva kivehető karakterek száma.
Íme a legegyszerűbb példa: vegyük ki az országkódokat a telefonszámokból:
Mint látható, az országkódok 6 szimbólumot foglalnak el a cellák elején, így a szükséges képlet a következő:
=LEFT(A2,6)
Tipp: Az ArrayFormula lehetővé teszi, hogy egyszerre 6 karaktert kapjunk a teljes tartományból:
=ArrayFormula(LEFT(A2:A7,6))
Adatok kivonása a Google Sheets cellák végéből
Ha az utolsó N karaktert szeretné kihúzni a cellákból, használja helyette a RIGHT funkciót:
RIGHT(string,[karakterek száma])- string továbbra is a szöveg (vagy egy cellahivatkozás), amelyből az adatokat ki kell vonni.
- number_of_characters szintén a jobbról kivehető karakterek száma.
Szerezzük meg, hogy az országnevek ugyanazokból a telefonszámokból:
Csak 2 karaktert vesznek fel, és pontosan ezt említem a képletben:
=RIGHT(A2,2)
Tipp: Az ArrayFormula segítségével egyszerre az összes Google Sheets-cella végéből is kiveheti az adatokat:
=ArrayFormula(RIGHT(A2:A7,2))
Adatok kinyerése a Google Sheets cellák közepéből
Ha vannak függvények a cellák elejéről és végéről történő adatkiragadásra, akkor lennie kell egy függvénynek a közepéről történő adatkiragadásra is. És igen - van is egy.
Ezt MID-nek hívják:
MID(string, starting_at, extract_length)- string - a szöveget, amelyből ki akarja venni a középső részt.
- starting_at - annak a karakternek a pozíciója, amelytől kezdve az adatokat le akarja kérni.
- extract_length - a kihúzandó karakterek száma.
Ugyanezen telefonszámok példáján keressük meg magukat a telefonszámokat az országkódok és az ország rövidítése nélkül:
Mivel az országkódok a 6. karakterrel végződnek, a 7. pedig a kötőjel, a számokat a 8. számjegytől kezdve húzom ki. És összesen 8 számjegyet kapok:
=MID(A2,8,8,8)
Tipp: Ha egy cellát megváltoztatunk a teljes tartományra, és az ArrayFormulába csomagoljuk, akkor minden egyes cellára egyszerre kapjuk meg az eredményt:
=ArrayFormula(MID(A2:A7,8,8))
Szöveg/számok kivonása karakterláncokból
Néha a szöveg pozíció szerinti kivonása (a fentiek szerint) nem lehetséges. A szükséges karakterláncok a cellák bármelyik részében lehetnek, és különböző számú karakterből állhatnak, ami arra kényszeríti, hogy minden egyes cellához más képleteket hozzon létre.
De a Google Sheets nem lenne Google Sheets, ha nem rendelkezne más olyan funkciókkal, amelyek segítenek a szöveg kivonásában a karakterláncokból.
Tekintsünk át néhány lehetséges módszert, amelyet a táblázatkezelők kínálnak.
Adatok kinyerése egy bizonyos szöveg előtt - LEFT+KERESÉS
Amikor egy bizonyos szöveget megelőző adatokat szeretne kinyerni, használja a LEFT + SEARCH billentyűkombinációt:
- LEFT arra szolgál, hogy a cellák elejétől (balról) bizonyos számú karaktert adjon vissza.
- KERESÉS megkeres bizonyos karaktereket/stringeket, és megkapja a pozíciójukat.
Ezeket kombinálva - és a LEFT a SEARCH által javasolt karakterek számát adja vissza.
Íme egy példa: hogyan lehet kivenni a szöveges kódokat minden egyes "ea" előtt?
Ez az a képlet, amely hasonló esetekben segíteni fog:
=LEFT(A2,SEARCH("ea",A2)-1)
A képletben a következők történnek:
- SEARCH("ea",A2) megkeresi az A2-ben az 'ea'-t, és visszaadja azt a pozíciót, ahol az 'ea' kezdődik minden egyes cellában - 10.
- Tehát a 10. pozíció az, ahol az 'e' található. De mivel mindent közvetlenül az 'ea' előtt akarok, ebből a pozícióból ki kell vonnom 1-t. Különben az 'e' is visszakerül. Így végül 9-et kapok.
- LEFT megnézi az A2-t, és megkapja az első 9 karaktert.
Adatok kivonása a szöveg után
Vannak olyan eszközök is, amelyekkel egy bizonyos szöveges karakterlánc után mindent megkaphatunk. De ezúttal a RIGHT nem segít. Helyette a REGEXREPLACE kerül sorra.
Tipp. A REGEXREPLACE reguláris kifejezéseket használ. Ha nem áll készen arra, hogy ezekkel foglalkozzon, van egy sokkal egyszerűbb megoldás, amelyet alább ismertetünk. REGEXREPLACE(text, regular_expression, replacement)
- szöveg egy karakterlánc vagy egy cella, ahol változtatásokat szeretne végrehajtani
- regular_expression a keresett szövegrészt jelölő karakterkombináció.
- csere az, amit szeretnél kapni ahelyett, hogy szöveg
Tehát, hogyan használjuk arra, hogy egy bizonyos szöveg - az én példámban az "ea" - után adatokat nyerjünk ki?
Egyszerű - ezzel a képlettel:
=REGEXREPLACE(A2,"(.*)ea(.*)","$2")
Hadd magyarázzam el, hogyan működik pontosan ez a képlet:
- A2 egy cella, amelyből az adatokat kivonom.
- "(.*)ea(.*)" az én reguláris kifejezésem (vagy nevezhetjük maszknak is). Keresem az 'ea'-t, és minden más karaktert zárójelbe teszek. 2 karaktercsoport van - minden, ami az 'ea' előtt van, az első csoport (.*), és minden, ami az 'ea' után van, a második (.*). Maga a teljes maszk dupla idézőjelbe kerül.
- "$2" az, amit meg akarok kapni - a második csoportot (ezért a 2-es szám) az előző argumentumból.
Tipp: A reguláris kifejezésekben használt összes karaktert ezen a speciális oldalon gyűjti össze.
Számok kivonása a Google Sheets cellákból
Mi van, ha csak számokat akarsz kinyerni, amikor a pozíciójuk és bármi, ami előtte & utána nem számít?
A maszkok (más néven reguláris kifejezések) szintén segítenek. Valójában ugyanazt a REGEXREPLACE függvényt fogom használni, és megváltoztatom a reguláris kifejezést:
=REGEXREPLACE(A2,"[^[:digit:]]", "")
- A2 egy cella, ahonnan ezeket a számokat szeretném megkapni.
- "[^[[:digit:]]" egy reguláris kifejezés, amely mindent elfogad, kivéve a számjegyeket. A ^caret szimbólum az, ami kivételt tesz a számjegyek esetében.
- "" a numerikus karakterek kivételével mindent "semmivel" helyettesít. Vagy más szóval, teljesen eltávolítja, és csak számok maradnak a cellákban. Vagy kivonja a számokat :)
Szöveg kivonása a számok és egyéb karakterek figyelmen kívül hagyásával
Hasonló módon a Google Sheets celláiból csak alfabetikus adatokat vehet ki. A szöveget jelölő reguláris kifejezés rövidítése ennek megfelelően - alpha:
=REGEXREPLACE(A2,"[^[:alpha:]]", "")
Ez a képlet a betűkön kívül mindent kivesz (A-Z, a-z), és szó szerint "semmivel" helyettesíti. Vagy másképpen fogalmazva, csak a betűket veszi ki.
Formulamentes módszerek adatok kinyerésére a Google Sheets celláiból
Ha egy egyszerű, képletmentes módot keres a különböző típusú adatok kinyerésére, akkor a legjobb helyen jár. A Power Tools kiegészítőnk pontosan a megfelelő eszközöket tartalmazza a feladathoz.
Különböző típusú adatok kinyerése a Power Tools bővítmények segítségével
Az első eszköz, amit szeretném, ha megismernél, a neve Extract. Pontosan azt teszi, amit ebben a cikkben keresel - különböző típusú adatokat von ki a Google Sheets celláiból.
Felhasználóbarát beállítások
A fent leírt összes eset nem csak a kiegészítővel oldható meg. Az eszköz felhasználóbarát így csak annyit kell tennie, hogy kiválasztja a feldolgozni kívánt tartományt, és bejelölje a szükséges jelölőnégyzeteket. Nincsenek képletek, nincsenek reguláris kifejezések.
Emlékszel a cikk második pontjára a REGEXREPLACE és a reguláris kifejezésekkel kapcsolatban? Íme, milyen egyszerű a bővítmény:
Extra opciók
Amint láthatja, van néhány extra lehetőségek (csak jelölőnégyzetek), amelyeket gyorsan be/ki kapcsolja be/ki a legpontosabb eredmény elérése érdekében:
- Csak a kívánt szöveges esetek karakterláncainak kinyerése.
- Húzza ki az összes előfordulást az egyes cellákból, és helyezze őket egy cellába vagy külön oszlopokba.
- Az eredménnyel egy új oszlop beillesztése a forrásadatoktól jobbra.
- Törli a kivonatolt szöveget a forrásadatokból.
Különböző adattípusok kivonása
A Power Tools nem csak bizonyos szöveges karakterláncok és az első/utolsó N karakter előtt/után/között lévő adatokat szedi ki, hanem a következőket is:
- Számok a tizedesjegyekkel együtt, a tizedes/ezres elválasztójelek érintetlenül hagyásával:
Bármilyen adatsor kivonása mindenhonnan
Lehetőség van saját pontos minta beállítására is, és annak használatára a kivonáshoz. Kivonat maszkkal és a helyettesítő karakterek - * és ? - megteszi a hatását:
- Például a következő maszk segítségével mindent kiemelhet a zárójelek között: (*)
- Vagy szerezze be azokat a SKU-kat, amelyeknek csak 5 szám van az azonosítójukban: SKU?????
- Vagy, ahogyan az alábbi képernyőképen mutatom, húzzon ki mindent az egyes cellákban minden egyes "ea" után: ea*
Dátum és idő kivonása időbélyegekből
Bónuszként van egy kisebb eszköz, amely az időbélyegekből kivonja a dátumot és az időt - a neve Split Date &; Time.
Bár elsősorban az időbélyegek felosztására jött létre, tökéletesen alkalmas arra, hogy a kívánt egységek egyikét külön-külön is megkapja:
Csak válassza ki az egyik jelölőnégyzetet attól függően, hogy mit szeretne kinyerni - dátumot vagy időt - a Google Sheets időbélyegzőiből, és nyomja meg a Split A kívánt egység átmásolódik egy új oszlopba (vagy az eredeti adatok helyébe lép, ha az utolsó jelölőnégyzetet is bejelöli):
Ez az eszköz is része a Power Tools bővítménynek, így ha egyszer telepíted, hogy bármilyen adatot megkapj a Google Sheets celláiból, akkor teljesen le van fedve. Ha nem, kérlek hagyj egy megjegyzést, és segítünk neked :)