
Obecný vzorec
=LEFT(txt,FIND("#",SUBSTITUTE(txt," ","#",n))-1)
souhrn
Chcete-li oříznout text na určitý počet slov, můžete použít vzorec založený na funkcích SUBSTITUTE, FIND a LEFT. V zobrazeném příkladu je vzorec v xxx:
=LEFT(B5,FIND("#",SUBSTITUTE(B5," ","#",C5))-1)
Vysvětlení
Potřebujeme způsob, jak rozdělit text na určitou značku, která odpovídá určitému počtu slov. Excel nemá vestavěnou funkci pro analýzu textu po slovech, takže používá argument „instance“ funkce SUBSTITUTE k nahrazení znaku „n-té mezery“ znakem libry (#), poté pomocí FIND a LEFT zahodí text za značkou.
Při práci zevnitř ven je SUBSTITUTE nakonfigurován tak, aby nahradil n-tý výskyt znaku mezery, kde n pochází ze sloupce C, text pochází ze sloupce B a znak „#“ je pevně zakódován.
=SUBSTITUTE(B5," ","#",C5) =SUBSTITUTE("The cat sat on the mat."," ","#",3) ="The cat sat#on the mat."
Výsledný řetězec je vrácen do funkce FIND, nakonfigurován tak, aby hledal „#“.
=FIND("#","The cat sat#on the mat.)
Protože „#“ je 12. znak v textu, funkce FIND vrátí 12. Nechceme do něj zahrnout samotný znak mezery, takže odečteme 1:
=LEFT(B5,12-1) =LEFT(B5,11)
VLEVO vrátí konečný výsledek ze vzorce „Kočka seděla“.
Poznámka: Znak libry („#“) je libovolný a lze jej nahradit jakýmkoli znakem, který se v textu neobjeví.
Přidejte elipsy nebo jiný znak
Chcete-li na konec oříznutého textu přidat „…“, použijte toto zřetězení:
=LEFT(B5,FIND("#",SUBSTITUTE(B5," ","#",C5))-1)&"… "
„…“ Můžete nahradit čímkoli, co se vám líbí.