Obsah
Při práci s nestrukturovanými textovými daty v pracovních listech je často potřeba je analyzovat, abyste získali relevantní informace. V tomto článku se dozvíte několik jednoduchých způsobů, jak odstranit libovolný počet znaků z levé nebo pravé strany textového řetězce.
Jak odstranit znaky vlevo v aplikaci Excel
Odstranění prvních znaků z řetězce je jednou z nejčastějších úloh v aplikaci Excel a lze jej provést pomocí 3 různých vzorců.
Odstranění prvního znaku v aplikaci Excel
Chcete-li z řetězce odstranit první znak, můžete použít funkci REPLACE nebo kombinaci funkcí RIGHT a LEN.
REPLACE( řetězec , 1, 1, "")Zde jednoduše vezmeme 1 znak z první pozice a nahradíme jej prázdným řetězcem ("").
PRAVDA( řetězec , LEN( řetězec ) - 1)V tomto vzorci použijeme funkci LEN k výpočtu celkové délky řetězce a odečteme od ní 1 znak. Rozdíl se podá na RIGHT, takže se z konce řetězce vyčlení tolik znaků.
Například pro odstranění prvního znaku z buňky A2 jsou vzorce následující:
=REPLACE(A2, 1, 1, "")
=RIGHT(A2, LEN(A2) - 1)
Odstranění znaků z levé strany
Chcete-li odstranit počáteční znaky z levé strany řetězce, použijte také funkce REPLACE nebo RIGHT a LEN, ale pokaždé zadejte, kolik znaků chcete odstranit:
REPLACE( řetězec , 1, num_chars , "")Nebo
PRAVDA( řetězec , LEN( řetězec ) - num_chars )Chcete-li například odstranit první 2 znaky z řetězce v A2 jsou vzorce následující:
=REPLACE(A2, 1, 2, "")
=RIGHT(A2, LEN(A2) - 2)
Odstranění první 3 znaky , mají vzorce tento tvar:
=REPLACE(A2, 1, 3, "")
=RIGHT(A2, LEN(A2) - 3)
Níže uvedený obrázek ukazuje vzorec REPLACE v akci. Při použití RIGHT LEN by výsledky byly naprosto stejné.
Vlastní funkce pro odstranění prvních n znaků
Pokud vám nevadí, že v pracovních listech používáte VBA, můžete si vytvořit vlastní uživatelsky definovanou funkci pro odstranění znaků ze začátku řetězce s názvem RemoveFirstChars . Kód funkce je jednoduchý jako tento:
Funkce RemoveFirstChars(str As String , num_chars As Long ) RemoveFirstChars = Right(str, Len(str) - num_chars) End FunctionPo vložení kódu do sešitu (podrobné pokyny naleznete zde) můžete pomocí tohoto kompaktního a intuitivního vzorce odstranit prvních n znaků z dané buňky:
RemoveFirstChars(string, num_chars)Chcete-li například odstranit první znak z řetězce v A2, vzorec v B2 je:
=RemoveFirstChars(A2, 1)
Svléknutí první dva znaky z A3, vzorec v B3 je:
=RemoveFirstChars(A4, 2)
Odstranění první tři znaky z A4, vzorec v B4 je:
=RemoveFirstChars(A4, 3)
Další informace o používání vlastních funkcí v aplikaci Excel.
Jak odstranit znaky zprava
K odstranění znaků z pravé strany řetězce můžete také použít nativní funkce nebo si vytvořit vlastní.
Odstranění posledního znaku v aplikaci Excel
Pro odstranění posledního znaku v buňce se použije obecný vzorec:
LEVÝ( řetězec , LEN( řetězec ) - 1)V tomto vzorci odečtete 1 od celkové délky řetězce a rozdíl předáte funkci LEFT, která z počátku řetězce vyjme tolik znaků.
Například pro odstranění posledního znaku z buňky A2 je vzorec v B2 následující:
=LEFT(A2, LEN(A2) - 1)
Odstranění znaků zprava
Obecný vzorec pro odstranění daného počtu znaků z konce buňky je:
LEVÝ( řetězec , LEN( řetězec ) - num_chars )Logika je stejná jako ve výše uvedeném vzorci a níže je uvedeno několik příkladů.
Odstranění poslední 3 znaky , použijte 3 pro num_chars :
=LEFT(A2, LEN(A2) - 3)
Odstranění posledních 5 znaků , dodávka 5 pro num_chars :
=LEFT(A2, LEN(A2) - 5)
Vlastní funkce pro odstranění posledních n znaků v aplikaci Excel
Pokud chcete mít vlastní funkci pro odstranění libovolného počtu znaků zprava, přidejte do sešitu tento kód VBA:
Funkce RemoveLastChars(str As String , num_chars As Long ) RemoveLastChars = Left(str, Len(str) - num_chars) End FunctionFunkce se jmenuje RemoveLastChars a jeho syntaxi není třeba vysvětlovat:
RemoveLastChars(string, num_chars)Abychom to mohli vyzkoušet v terénu, zbavme se tlačítka poslední znak v A2:
=RemoveLastChars(A2, 1)
Kromě toho odstraníme poslední 2 znaky z pravé strany řetězce v A3:
=RemoveLastChars(A3, 2)
Odstranění poslední 3 znaky z buňky A4 je vzorec následující:
=RemoveLastChars(A4, 3)
Jak můžete vidět na následujícím snímku obrazovky, naše vlastní funkce funguje skvěle!
Jak odstranit znaky zprava i zleva najednou
V případě, že potřebujete vymazat znaky na obou stranách řetězce, můžete buď postupně spustit oba výše uvedené vzorce, nebo optimalizovat práci pomocí funkce MID.
MID( řetězec , vlevo _ znaky + 1, LEN( řetězec ) - ( vlevo _ znaky + vpravo _ znaky )Kde:
- chars_left - počet znaků, které se mají odstranit zleva.
- chars_right - počet znaků, které se mají odstranit zprava.
Předpokládejme, že chcete extrahovat uživatelské jméno z řetězce, např. mailto:[email protected] Za tímto účelem je třeba odstranit část textu ze začátku ( mailto: - 7 znaků) a od konce ( @gmail.com - 11 znaků).
Výše uvedená čísla dosaďte do vzorce:
=MID(A2, 7+1, LEN(A2) - (7+10))
...a výsledek na sebe nenechá čekat:
Abychom pochopili, o co zde vlastně jde, připomeňme si syntaxi funkce MID, která se používá k vytažení podřetězce určité velikosti ze středu původního řetězce:
MID(text, start_num, num_chars)Na stránkách text nevyvolává žádné otázky - je to zdrojový řetězec (v našem případě A2).
Zjištění pozice prvního extrahovaného znaku ( start_num ), přičtete 1 k počtu znaků, které mají být odstraněny zleva (7+1).
Určení počtu znaků, které se mají vrátit ( num_chars ), vypočtete celkový počet odstraněných znaků (7 + 11) a tento součet odečtete od délky celého řetězce: LEN(A2) - (7+10)).
Získejte výsledek jako číslo
Ať už použijete kterýkoli z výše uvedených vzorců, výstupem je vždy text, i když vrácená hodnota obsahuje pouze čísla. výsledek jako číslo , buď zabalte základní vzorec do funkce VALUE, nebo proveďte nějakou matematickou operaci, která neovlivní výsledek, např. vynásobte 1 nebo přičtěte 0. Tato technika je užitečná zejména tehdy, když chcete výsledky dále dopočítat.
Předpokládejme, že jste z buněk A2:A6 odstranili první znak a chcete sečíst výsledné hodnoty. Triviální vzorec SUMA překvapivě vrátí nulu. Proč? Zřejmě proto, že sčítáte řetězce, nikoli čísla. Proveďte jednu z následujících operací a problém je vyřešen!
=HODNOTA(REPLACE(A2, 1, 1, ""))
=RIGHT(A2, LEN(A2) - 1) * 1
=RemoveFirstChars(A2, 1) + 0
Odstranění prvního nebo posledního znaku pomocí funkce Flash Fill
V aplikaci Excel 2013 a novějších verzích existuje ještě jeden snadný způsob, jak odstranit první a poslední znak v aplikaci Excel - funkce Bleskové vyplnění.
- Do buňky sousedící s první buňkou s původními daty zadejte požadovaný výsledek s vynecháním prvního nebo posledního znaku původního řetězce a stiskněte klávesu Enter .
- Začněte psát očekávanou hodnotu do další buňky. Pokud Excel rozpozná vzor v zadávaných datech, bude se řídit stejným vzorem i ve zbývajících buňkách a zobrazí náhled vašich dat bez prvního/posledního znaku.
- Stisknutím klávesy Enter náhled přijmete.
Odstraňování znaků podle polohy pomocí sady Ultimate Suite
Uživatelé naší sady Ultimate Suite zvládnou tento úkol tradičně několika kliknutími, aniž by si museli pamatovat několik různých vzorců.
Chcete-li z řetězce odstranit prvních nebo posledních n znaků, musíte provést následující kroky:
- Na Data Ablebits na kartě Text klikněte na tlačítko Odstranění adresy > Odstranění podle pozice .
Například pro odstranění prvního znaku nakonfigurujeme následující možnost:
To je návod, jak v Excelu odstranit podřetězec zleva nebo zprava. Děkuji vám za přečtení a těším se na vás příští týden na našem blogu!
Dostupné soubory ke stažení
Odstranění prvních nebo posledních znaků - příklady (.xlsm soubor)
Ultimate Suite - zkušební verze (.exe soubor)