Obsah
V tomto článku se budeme zabývat najít . poslední výskyt o znak v a řetězec na adrese Excel . Náš vzorový soubor dat má tři sloupce : Název společnosti , Kód zaměstnance a Poslední výskyt . Kód zaměstnance obsahuje jméno, věk a oddělení zaměstnance.
Pro první 4 metody zjistíme polohu lomítka vpřed " / " pro všechny hodnoty v Kód zaměstnance Poté vyvedeme na výstup struny za posledním lomítkem v posledním 2 metody.
Stáhnout cvičebnici
Najít poslední výskyt znaku v řetězci String.xlsm6 způsobů, jak v aplikaci Excel najít poslední výskyt znaku v řetězci
1. Použití funkcí FIND & SUBSTITUTE v aplikaci Excel k nalezení pozice posledního výskytu znaku v řetězci
Pro první metodu použijeme příkaz VYHLEDAT funkce SUBSTITUTE funkce CHAR a funkce LEN funkce na najít . poslední pozice lomítka v našem řetězec .
Kroky:
- Nejprve zadejte následující vzorec buňka D5 .
=FIND(CHAR(134),SUBSTITUTE(C5,"/",CHAR(134),(LEN(C5)-LEN(SUBSTITUTE(C5,"/","")))/LEN("/")))))
Rozdělení vzorců
Naší hlavní funkcí je VYHLEDAT Najdeme CHAR(134) v našem řetězci.
- CHAR(134)
- Výstup: † .
- Potřebujeme nastavit znak, který se v našich řetězcích nevyskytuje. Zvolili jsme ho proto, že se v řetězcích vyskytuje zřídka. Pokud ho nějakým způsobem ve svých řetězcích máte, změňte ho na cokoli, co se v řetězcích nevyskytuje (například " @ ", " ~ " atd.).
- SUBSTITUTE(C5,"/",CHAR(134),(LEN(C5)-LEN(SUBSTITUTE(C5,"/","")))/LEN("/"))) -> se stává,
- SUBSTITUTE(C5,"/","†",(17-LEN("Mike32Marketing"))/1) -> se stává,
- SUBSTITUTE("Mike/32/Marketing","/","†",(17-15)/1)
- Výstup: "Mike/32†Marketing" .
- Nyní je náš úplný vzorec následující,
- =FIND("†", "Mike/32†Marketing")
- Výstup: 8 .
- Za druhé, stiskněte ENTER .
Uvidíme hodnotu 8 Pokud budeme počítat ručně z levé strany, získáme tyto hodnoty 8 jako pozice pro slash na adrese buňka C5 .
- Nakonec použijte Plnicí rukojeť zkopírovat vzorec dolů.
Tím jsme získali pozici poslední výskyt o znak v našem řetězec .
Přečtěte si více: Funkce aplikace Excel: FIND vs. SEARCH (srovnávací analýza)
2. Použití funkcí MATCH & SEQUENCE v aplikaci Excel k nalezení pozice posledního výskytu znaku v řetězci
Pro druhou metodu použijeme příkaz MATCH funkce SEQUENCE funkce MID a funkce LEN funkce pro zjištění polohy poslední výskyt o znak v řetězec . Pamatujte si. SEQUENCE funkce je k dispozici pouze u Excel 365 nebo Excel 2021 .
Kroky:
- Nejprve zadejte následující vzorec buňka D5 .
=MATCH(2,1/(MID(C5,SEQUENCE(LEN(C5)),1)="/"))
Rozdělení vzorců
- SEQUENCE(LEN(C5))
- Output: {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17} .
- Na stránkách LEN funkce měří délku buňka C5 . SEQUENCE funkce vrací seznam čísel postupně v poli.
- MATCH(2,1/(MID(C5,{1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17},1)=”/”))
- Výstup: 8 .
- Na stránkách Zápas je nalezení posledního 1 v našem vzorci. Je to v 8. pozice.
- Za druhé, stiskněte ENTER .
Pomocí vzorce jsme zjistili polohu lomítko vpřed jako 8 v našem řetězec .
- Nakonec použijte Plnicí rukojeť na Automatické vyplňování vzorec.
Na závěr jsme použili další vzorec pro zjištění hodnoty poslední pozice o znak v struny .
Přečtěte si více: Jak najít znak v řetězci aplikace Excel (8 snadných způsobů)
3. Využití vzorce pole v aplikaci Excel k nalezení pozice posledního výskytu znaku v řetězci
Použijeme ROW funkce INDEX funkce MATCH ... MID a LEN funkce pro vytvoření vzorce pole pro zjištění pozice poslední výskyt o znak v a řetězec .
Kroky:
- Nejprve zadejte níže uvedený vzorec buňka D5 .
=MATCH(2,1/(MID(C5,ROW($C$1:INDEX(C:C,LEN(C5))),1)="/"))
Rozdělení vzorců
Vzorec je podobný metodě 2 Používáme ROW a INDEX replikovat výstup jako SEQUENCE funkce.
- ŘÁDEK($C$1:INDEX(C:C,LEN(C5)))
- Output: {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17} .
- Vidíme, že výstup je stejný. INDEX vrací hodnotu rozsahu. LEN funkce počítá délku řetězce od buňka C5 . Konečně. ROW vrací funkci buňka hodnoty z 1 na buňka délka C5 Zbytek vzorce je stejný jako u metody 2 .
- Za druhé, stiskněte ENTER .
Máme 8 jako očekávaná hodnota. Náš vzorec fungoval bezchybně.
Poznámka: Používáme Excel 365 Pokud používáte starší verzi, musíte stisknout tlačítko CTRL + SHIFT + ENTER .
- Nakonec dvakrát klikněte nebo přetáhněte dolů Plnicí rukojeť .
Takto by měl vypadat poslední krok.
Přečtěte si více: Zjištění prvního výskytu hodnoty v rozsahu v aplikaci Excel (3 způsoby)
Podobná čtení
- Jak najít znak *, který není zástupným znakem v aplikaci Excel (2 metody)
- Jak použít vzorec aplikace Excel k nalezení čísla posledního řádku s daty (2 způsoby)
- Zjištění poslední hodnoty ve sloupci větší než nula v aplikaci Excel (2 jednoduché vzorce)
- Jak najít odkazy v aplikaci Excel
- Hledání externích odkazů v aplikaci Excel (6 rychlých metod)
4. Uživatelem definovaná funkce pro zjištění pozice posledního výskytu znaku v řetězci
V této metodě použijeme vlastní VBA vzorec pro nalezení poslední pozice znak v a řetězec . Bez dalších okolků se vrhněme do akce.
Kroky:
- Nejprve stiskněte ALT + F11 vyvolat VBA okno.
Můžete si vybrat Visual Basic z Vývojář kartu, aby tak učinil také.
- Zadruhé, od Vložte >>> vybrat Modul .
- Za třetí, kopírovat a vložit následující kód.
Funkce LOccurence(x1 As String, x2 As String) LOccurence = InStrRev(x1, x2) End Function
Vytvořili jsme vlastní funkci s názvem " LOccurence ". InStrRev je VBA funkce, která vrací koncovou pozici znak . Zadáme naše buňka hodnotu jako x1 a konkrétní znak (v našem případě je to znak lomítko vpřed ) jako x2 v této vlastní funkci.
- Poté zavřete VBA a přejděte do okna " Pozice VBA " list .
- Zadejte následující vzorec buňka D5 .
=LOccurence(C5,"/")
V této vlastní funkci jí říkáme, aby našla pozici poslední výskyt z lomítko vpřed v řetězec z buňka C5 .
- Pak stiskněte tlačítko ENTER .
Máme 8 jak se očekávalo, protože naposledy se vyskytl pozice lomítko vpřed .
- Nakonec můžeme vzorec přetáhnout dolů pomocí příkazu Plnicí rukojeť .
Použili jsme tedy další vzorec pro zjištění polohy poslední výskyt o znak .
Přečtěte si více: Jak najít znak v řetězci zprava v aplikaci Excel (4 snadné metody)
5. Použití kombinovaných funkcí v aplikaci Excel k vyhledání posledního výskytu znaku v řetězci
Až do této chvíle jsme viděli, jak zjistit poslední pozici znaku. Nyní použijeme příkaz HLEDAT funkce PRAVÁ funkce SUBSTITUTE ... LEN ... CHAR funkce pro zobrazení řetězce za posledním výskytem znaku. Zjednodušeně řečeno, vypisujeme oddělení zaměstnanců ze souboru Sloupec Kód zaměstnance .
Kroky:
- Nejprve zadejte následující vzorec buňka D5 .
=RIGHT(C5,LEN(C5)-SEARCH(CHAR(134),SUBSTITUTE(C5,"/",CHAR(134),LEN(C5)-LEN(SUBSTITUTE(C5,"/","")))))
Rozdělení vzorců
- SUBSTITUTE(C5,"/",CHAR(134),LEN(C5)-LEN(SUBSTITUTE(C5,"/",""))) -> se stává,
- SUBSTITUTE(C5,"/",CHAR(134),2)
- Výstup: "Mike/32†Marketing" .
- Na stránkách SUBSTITUTE nahradí hodnotu jinou hodnotou. V našem případě nahradí každou hodnotu. lomítko vpřed s † v první části a s prázdným místem v druhé části. Pak se LEN Funkce měří její délku. Tak jsme získali naši hodnotu.
- HLEDAT("†", "Mike/32†Marketing")
- Výstup: 8 .
- Na stránkách HLEDAT funkce najde speciální znak v našem předchozím výstupu. Následně ho najde v položce 8.
- Nakonec se náš vzorec redukuje na, RIGHT(C5,9)
- Výstup: "Marketing" .
- Na stránkách PRAVÁ funkce vrací hodnotu buňky do určitého počtu znaků z pravé strany. Zjistili jsme pozici posledního lomítko vpřed na adrese 8. Délka buňka C5 je 17 a 17 - 8 = 9 . Proto máme 9 znaky z pravé strany jako výstup.
- Za druhé, stiskněte ENTER .
Dostali jsme struny po posledním lomítko vpřed .
- Nakonec použijte Plnicí rukojeť na Automatické vyplňování vzorce do buňka rozsah D6:D10 .
Proto jsme extrahovali struny po poslední výskyt o znak .
Přečtěte si více: Jak zjistit, zda buňka obsahuje určitý text v aplikaci Excel
6. Vlastní vzorec VBA v aplikaci Excel pro vyhledání posledního výskytu znaku v řetězci
Pro poslední metodu použijeme vlastní metodu. VBA vzorec pro získání řetězec po lomítko vpřed .
Kroky:
- Nejprve stiskněte ALT + F11 vyvolat VBA okno.
Můžete si vybrat Visual Basic z Vývojář kartu, aby tak učinil také.
- Zadruhé, od Vložte >>> vybrat Modul jako jsme to udělali v metodě 4 .
- Za třetí, kopírovat a vložit následující kód.
Function LastString(cRange As Range, cString As String) Dim cLength As Integer cLength = Len(cRange) For x = cLength To 1 Step -1 If Mid(cRange, x - 1, 1) = cString Then LastString = x Exit Function End If Next x End Function
Vytváříme vlastní funkci s názvem " LastString ". Tato funkce vrátí počáteční pozici položky struny po poslední výskyt o charakter.
- Poté zadejte níže uvedený vzorec buňka D5 .
=RIGHT(C5,LEN(C5)-LastString(C5,"/")+1)
Rozdělení vzorců
- LastString(C5,"/")
- Výstup: 9 .
- Zde získáváme počáteční pozici řetězec bezprostředně po poslední lomítko vpřed .
- LEN(C5)
- Výstup: 17 .
- LEN(C5)-LastString(C5,"/")+1
- Výstup: 9.
- Musíme přidat 1 jinak získáme hodnotu se symbolem " M ".
- Náš vzorec se sníží na RIGHT(C5,9)
- Výstup: " Marketing ".
- Tisk ENTER .
Získáme hodnotu " Marketing ".
- Nakonec, Automatické vyplňování vzorec až do buňka C10 .
Dosáhli jsme svého cíle. Vzorec funguje, jak má.
Přečtěte si více: Jak najít poslední řádek s určitou hodnotou v aplikaci Excel (6 metod)
Praktická část
Vedle každé metody jsme přiložili i soubory cvičných dat. Excel pilník. V tomto úkolu se můžete zdokonalovat.
Závěr
Ukázali jsme vám 6 metody v Excel najít poslední výskyt o znak v a řetězec . Pokud máte nějaké problémy týkající se těchto témat, neváhejte se vyjádřit níže. Děkujeme za přečtení a pokračujte v excelování!