Excel vzorec: Extrahujte poslední dvě slova z buňky -

Obsah

Obecný vzorec

=MID(A1,FIND("@",SUBSTITUTE(A1," ","@",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))-1))+1,100)

souhrn

Chcete-li z buňky extrahovat poslední dvě slova, můžete použít vzorec vytvořený s několika funkcemi aplikace Excel, včetně MID, FIND, SUBSTITUTE a LEN. V zobrazeném příkladu je vzorec v C5:

=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1))+1,100)

Vysvětlení

Tento vzorec v jádru používá funkci MID k extrahování znaků začínajících od druhé do poslední mezery. Funkce MID má 3 argumenty: text, se kterým se pracuje, počáteční pozice a počet znaků, které se mají extrahovat.

Text pochází ze sloupce B a počet znaků může být libovolný velký počet, který zajistí extrahování posledních dvou slov. Úkolem je určit výchozí pozici, která je těsně po druhém až posledním prostoru. Chytrá práce se provádí primárně pomocí funkce SUBSTITUTE, která má volitelný argument s názvem číslo instance. Tato funkce slouží k nahrazení předposlední mezery v textu znakem „@“, který je poté umístěn pomocí funkce FIND.

Při práci zevnitř ven úryvek níže zjistí, kolik mezer je v textu celkem, od čehož se odečte 1.

LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-1

V ukázaném příkladu je v textu 5 mezer, takže výše uvedený kód vrátí 4. Toto číslo je vloženo do vnější funkce SUBSTITUTE jako číslo instance:

SUBSTITUTE(B5," ","@",4)

To způsobí, že SUBSTITUTE nahradí čtvrtý znak mezery znakem „@“. Volba @ je libovolná. Můžete použít libovolný znak, který se neobjeví v původním textu.

Dále FIND najde v textu znak „@“:

FIND("@","A stitch in time@saves nine")

Výsledkem FIND je 17, ke kterému se přidá 1, aby získal 18. Toto je výchozí pozice a jde do funkce MID jako druhý argument. Pro zjednodušení je počet znaků, které chcete extrahovat, napevno nastaven na 100. Tento počet je libovolný a lze jej upravit tak, aby odpovídal situaci.

Extrahujte posledních N slov z buňky

Tento vzorec lze zobecnit tak, aby extrahoval posledních N slov z buňky nahrazením napevno 1 v příkladu za (N-1). Kromě toho, pokud extrahujete mnoho slov, možná budete chtít nahradit pevně zakódovaný argument v MID, 100, větším počtem. Abyste měli jistotu, že je číslo dostatečně velké, můžete jednoduše použít funkci LEN následujícím způsobem:

=MID(B5,FIND("@",SUBSTITUTE(B5," ","@",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))-(N-1)))+1,LEN(B5))

Zajímavé články...