Obsah
Pri práci s neštruktúrovanými textovými údajmi v pracovných hárkoch ich často potrebujete analyzovať, aby ste získali relevantné informácie. V tomto článku sa dozviete niekoľko jednoduchých spôsobov, ako odstrániť ľubovoľný počet znakov z ľavej alebo pravej strany textového reťazca.
Ako odstrániť znaky z ľavej strany v programe Excel
Odstránenie prvých znakov z reťazca je jednou z najbežnejších úloh v programe Excel a možno ho vykonať pomocou 3 rôznych vzorcov.
Odstránenie prvého znaku v programe Excel
Ak chcete odstrániť prvý znak z reťazca, môžete použiť funkciu REPLACE alebo kombináciu funkcií RIGHT a LEN.
REPLACE( reťazec , 1, 1, "")Tu jednoducho zoberieme 1 znak z prvej pozície a nahradíme ho prázdnym reťazcom ("").
PRAVDA( reťazec , LEN( reťazec ) - 1)V tomto vzorci použijeme funkciu LEN na výpočet celkovej dĺžky reťazca a odpočítame od nej 1 znak. Rozdiel sa podá na RIGHT, takže sa z konca reťazca vyčlení toľko znakov.
Ak chcete napríklad odstrániť prvý znak z bunky A2, vzorce budú nasledovné:
=REPLACE(A2, 1, 1, "")
=RIGHT(A2, LEN(A2) - 1)
Odstránenie znakov z ľavej strany
Ak chcete odstrániť úvodné znaky z ľavej strany reťazca, použite tiež funkcie REPLACE alebo RIGHT a LEN, ale zakaždým určte, koľko znakov chcete odstrániť:
REPLACE( reťazec , 1, num_chars , "")Alebo
PRAVDA( reťazec , LEN( reťazec ) - num_chars )Napríklad na odstránenie prvé 2 znaky z reťazca v A2 sú vzorce:
=REPLACE(A2, 1, 2, "")
=RIGHT(A2, LEN(A2) - 2)
Odstránenie prvé 3 znaky , vzorce majú tento tvar:
=REPLACE(A2, 1, 3, "")
=RIGHT(A2, LEN(A2) - 3)
Na nasledujúcom obrázku je zobrazený vzorec REPLACE v akcii. Pri použití RIGHT LEN by boli výsledky úplne rovnaké.
Vlastná funkcia na odstránenie prvých n znakov
Ak vám nevadí, že vo svojich pracovných hárkoch používate VBA, môžete si vytvoriť vlastnú používateľskú funkciu na odstraňovanie znakov zo začiatku reťazca s názvom RemoveFirstChars Kód funkcie je jednoduchý:
Funkcia RemoveFirstChars(str As String , num_chars As Long ) RemoveFirstChars = Right(str, Len(str) - num_chars) End FunctionPo vložení kódu do zošita (podrobné pokyny nájdete tu) môžete pomocou tohto kompaktného a intuitívneho vzorca odstrániť prvých n znakov z danej bunky:
RemoveFirstChars(string, num_chars)Ak chcete napríklad odstrániť prvý znak z reťazca v A2, vzorec v B2 je:
=RemoveFirstChars(A2, 1)
Odstránenie prvé dve znaky z A3, vzorec v B3 je:
=RemoveFirstChars(A4, 2)
Vymazanie prvé tri znaky z A4, vzorec v B4 je:
=RemoveFirstChars(A4, 3)
Viac o používaní vlastných funkcií v programe Excel.
Ako odstrániť znaky z pravej strany
Na odstránenie znakov z pravej strany reťazca môžete použiť aj natívne funkcie alebo si vytvoriť vlastnú funkciu.
Odstránenie posledného znaku v programe Excel
Ak chcete odstrániť posledný znak v bunke, všeobecný vzorec je:
LEFT( reťazec , LEN( reťazec ) - 1)V tomto vzorci od celkovej dĺžky reťazca odpočítate 1 a rozdiel odovzdáte funkcii LEFT, ktorá z neho vyberie toľko znakov na začiatku reťazca.
Ak chcete napríklad odstrániť posledný znak z bunky A2, vzorec v bunke B2 je:
=LEFT(A2, LEN(A2) - 1)
Odstránenie znakov z pravej strany
Ak chcete z konca bunky odstrániť daný počet znakov, všeobecný vzorec je:
LEFT( reťazec , LEN( reťazec ) - num_chars )Logika je rovnaká ako vo vyššie uvedenom vzorci a nižšie uvádzame niekoľko príkladov.
Odstránenie posledné 3 znaky , použite 3 pre num_chars :
=LEFT(A2, LEN(A2) - 3)
Odstránenie posledných 5 znakov , dodávka 5 pre num_chars :
=LEFT(A2, LEN(A2) - 5)
Vlastná funkcia na odstránenie posledných n znakov v programe Excel
Ak chcete mať vlastnú funkciu na odstránenie ľubovoľného počtu znakov sprava, pridajte do zošita tento kód VBA:
Funkcia RemoveLastChars(str As String , num_chars As Long ) RemoveLastChars = Left(str, Len(str) - num_chars) End FunctionFunkcia má názov RemoveLastChars a jeho syntax nie je potrebné vysvetľovať:
RemoveLastChars(string, num_chars)Aby sme to mohli otestovať v teréne, zbavme sa posledný znak v A2:
=RemoveLastChars(A2, 1)
Okrem toho odstránime posledné 2 znaky z pravej strany reťazca v A3:
=RemoveLastChars(A3, 2)
Odstránenie posledné 3 znaky z bunky A4 je vzorec:
=RemoveLastChars(A4, 3)
Ako môžete vidieť na nasledujúcom obrázku, naša vlastná funkcia funguje skvele!
Ako odstrániť znaky z pravej a ľavej strany naraz
V situácii, keď potrebujete vymazať znaky na oboch stranách reťazca, môžete buď spustiť oba vyššie uvedené vzorce postupne, alebo optimalizovať prácu pomocou funkcie MID.
MID( reťazec , vľavo _ znaky + 1, LEN( reťazec ) - ( vľavo _ znaky + vpravo _ znaky )Kde:
- chars_left - počet znakov, ktoré sa majú odstrániť zľava.
- chars_right - počet znakov, ktoré sa majú vymazať sprava.
Predpokladajme, že chcete extrahovať používateľské meno z reťazca ako mailto:[email protected] Na tento účel je potrebné odstrániť časť textu zo začiatku ( mailto: - 7 znakov) a od konca ( @gmail.com - 11 znakov).
Uvedené čísla doplňte do vzorca:
=MID(A2, 7+1, LEN(A2) - (7+10))
...a výsledok na seba nenechá čakať:
Aby sme pochopili, o čo tu vlastne ide, pripomeňme si syntax funkcie MID, ktorá sa používa na vytiahnutie podreťazca určitej veľkosti zo stredu pôvodného reťazca:
MID(text, start_num, num_chars)Stránka text argument nevyvoláva žiadne otázky - je to zdrojový reťazec (v našom prípade A2).
Získanie pozície prvého extrahovaného znaku ( start_num ), pripočítate 1 k počtu znakov, ktoré majú byť odstránené zľava (7+1).
Určenie počtu znakov, ktoré sa majú vrátiť ( num_chars ), vypočítate celkový počet odstránených znakov (7 + 11) a tento súčet odpočítate od dĺžky celého reťazca: LEN(A2) - (7+10)).
Získajte výsledok ako číslo
Nech použijete ktorýkoľvek z uvedených vzorcov, výstupom je vždy text, aj keď vrátená hodnota obsahuje len čísla. výsledok ako číslo , buď zabalte základný vzorec do funkcie VALUE, alebo vykonajte nejakú matematickú operáciu, ktorá nemá vplyv na výsledok, napr. vynásobte 1 alebo pripočítajte 0. Táto technika je užitočná najmä vtedy, keď chcete výsledky ďalej vypočítať.
Predpokladajme, že ste z buniek A2:A6 odstránili prvý znak a chcete zhrnúť výsledné hodnoty. Triviálny vzorec SUM prekvapivo vráti nulu. Prečo? Zrejme preto, že sčítavate reťazce, nie čísla. Vykonajte jednu z nasledujúcich operácií a problém je vyriešený!
=HODNOTA(NAHRADIŤ(A2, 1, 1, ""))
=RIGHT(A2, LEN(A2) - 1) * 1
=RemoveFirstChars(A2, 1) + 0
Odstránenie prvého alebo posledného znaku pomocou funkcie Flash Fill
V programe Excel 2013 a novších verziách existuje ešte jeden jednoduchý spôsob, ako odstrániť prvé a posledné znaky v programe Excel - funkcia Flash Fill.
- Do bunky susediacej s prvou bunkou s pôvodnými údajmi zadajte požadovaný výsledok s vynechaním prvého alebo posledného znaku z pôvodného reťazca a stlačte kláves Enter .
- Začnite písať očakávanú hodnotu do ďalšej bunky. Ak program Excel rozpozná vzor v zadávaných údajoch, bude postupovať podľa rovnakého vzoru v ostatných bunkách a zobrazí náhľad vašich údajov bez prvého/posledného znaku.
- Stlačením tlačidla Enter prijmite náhľad.
Odstránenie znakov podľa pozície pomocou balíka Ultimate Suite
Užívatelia nášho balíka Ultimate Suite môžu túto úlohu zvládnuť niekoľkými kliknutiami bez toho, aby si museli pamätať hŕbu rôznych vzorcov.
Ak chcete z reťazca odstrániť prvých alebo posledných n znakov, musíte urobiť toto:
- Na Údaje Ablebits na karte Text kliknite na položku Odstránenie stránky > Odstrániť podľa pozície .
Ak chcete napríklad odstrániť prvý znak, nakonfigurujte nasledujúcu možnosť:
To je spôsob, ako odstrániť podreťazec zľava alebo sprava v programe Excel. Ďakujem vám za prečítanie a teším sa na vás na našom blogu budúci týždeň!
Dostupné súbory na stiahnutie
Odstránenie prvých alebo posledných znakov - príklady (.xlsm súbor)
Ultimate Suite - skúšobná verzia (.exe súbor)