Problém není složitý. Mezera má v ASCII (i v UNICODE) číslo 32. Takže hledáme CODE(32), nebo CHAR(32). Ze zkušenosti ale vím, že to může být i jiný znak. Zejména po tom exportu. Potvrďte, že ta Vaše mezera má číslo tohoto znaku. Zjistíte to dotazem SERACH, nebo FIND.
Například text v A1 ošetříme vzorcem v B1 : =FIND(CHAR(32);A1;1)
Kde hledáme pomocí CHAR v buňce A1 a sice od první pozice. Vzorec vyhodí číslo pozice na které najde mezeru, ale vrátí jen první nalezenou. Takže pak se hledá dalším vzorcem právě od té první dál. Když najdeme první mezeru na 5. pozici, druhé hledání začíná od 6. pozice. Takže jde vlastně o to, najít tu správnou mezeru z několika možných - pokud tam je mezer více.
Po nalezení pozice mezery dáme vzorec například do C1 : = LEFT(A1;5) - dostaneme první část výrazu.
Pro získání druhé části dáme do D1 : = RIGHT(A1;LEN(A1)-5). Správně odečteme od délky řetězce číslo 6, protože pokud je první část dlouhá 5 znaků, pak je mezera 6. znak a nám stačí vrátit znaky za touto mezerou a pak bychom vraceli jen řetězec bez 7 znaků (5+2).
Pak už stačí vzorce načíst do paměti, vložit zpět ve formě hodnot a sloupce A a B odstranit. Praktické hledání poslední mezery obnáší vyhledávání pomocí podmínky IF. Hledáme LEN(A1) - X(nejmenší počet znaků druhé části) - až do Y(největší počet znaků druhé části). Určitě je to možné udělat i jinak. Pro dlouhé řetězce a mnoho řádků bychom použili makro.
Pokud Vám tento popis stačí, uveďte jen v názvu "VYŘEŠENO", v opačném případě potvrďte, že to co vypadá jako mezera je CHAR(32). Číslo znaku se hledá jako CODE(). Takže doporučuji hledaný znak samostatně zkopírovat do nějaké buňky - řekněme do C3 a v D3 zadáte : =CODE(C3). Výsledkem je číslo znaku.
Editoval neutr (13. 12. 2012 11:29:56)
Moje e-mailová adresa
Pokud je Váš problém vyřešen, označte prosím svůj příspěvek za "VYŘEŠENÝ"
Zlepšíte orientaci při vyhledávání řešení JAK OZNAČIT TÉMA ZA VYŘEŠENÉ