Stránka 1 z 1
Funkce "Hledat" hledá jen zleva do prava, lze to obráceně?
Napsal: 07 dub 2011 11:25
od atari
Pomocí funkce Hledat v Excelu zjišťuji přípony souborů. Funkcí "Hledat" najdu kde je v názvu souboru tečka, a zbytek považuji za příponu - viz příloha.
Jelikož to hledá od leva, tak nastane problém když je v názvu souboru více teček. Má někdo nápad jak to vyřešit, aniž bych používal VBA?
Re: Funkce "Hledat" hledá jen zleva do prava, lze to obrácen
Napsal: 07 dub 2011 11:31
od X
Můžeš název odříznout od konce a hledat v něm, prohledej příkazy text:
zprava(text;znaky)
Vrátí zadaný počet znaků od konce textového řetězce
Re: Funkce "Hledat" hledá jen zleva do prava, lze to obrácen
Napsal: 07 dub 2011 11:44
od atari
To bych musel dělat metodou pokus omyl: Vezmu tři znaky od konce - prozkoumám jestli tam je tečka, pak 4 znaky - prozkoumám jestli tam je tečka atd.. to si nějak neumím moc dobře představit bez VBA.
Ještě mě napadlo, jestli to nemumí nějaká funkce třeba z verze 2007 nebo 2010, já tohle dělám na PC kde je verze XP-
Re: Funkce "Hledat" hledá jen zleva do prava, lze to obrácen
Napsal: 07 dub 2011 19:22
od cmuch
Ahoj,
Budem doufat, že budeš mít koncovku vždy v posledních čtyřech znacích.
A pokud to nechceš řešit pomocí makra tak snad asi takto:
Za sloupec C se soubory (viz soubor výše) vlož další se vzorcem
=ZPRAVA(C4;4)
Za tento pak
=DÉLKA(D4)
Potom tento
=HLEDAT(".";D4)
A nakonec získáš příponu souboru
=ZPRAVA(D4;E4-F4)
Jinak mě nic nenapadá.
Re: Funkce "Hledat" hledá jen zleva do prava, lze to obrácen
Napsal: 07 dub 2011 20:12
od atari
cmuch píše:Budem doufat, že budeš mít koncovku vždy v posledních čtyřech znacích
No právě, to doufat nemůžu..... Takže chtě nechtě jsem se rozhodl pro to makro. ale mám tam jednu chybu, až ji vyřeším, tak to sem dám.
Funkce On error mi funguje jenom jednou a při druhém průchodu už nezafunguje. (Neboli při i = 1, to projde, ale při i= 2 to už neprojde) Poradí někdo??? Přidávám kod i soubor do přílohy. (Kod jsem zjednodušil, jen pro nalezení chyby)
Kód: Vybrat vše
Option Explicit
Sub Makro2()
Dim pozice As Byte, i As Long
For i = 1 To 3
On Error GoTo konec 'pokud v dalším řádku není tečka, hodí to chybu jde to na konec
pozice = WorksheetFunction.Search(".", "bbbbb") 'zjistí zda v řetezci je tečka - pokud tečka není, příkaz dává chybu
konec:
Next i
End Sub
Re: Funkce "Hledat" hledá jen zleva do prava, lze to obrácen
Napsal: 15 dub 2011 18:02
od cmuch
Tak jsem zase tady
Na jednom zahraničním servru bylo toto.
Kód: Vybrat vše
=KDYŽ(JE.ČISLO(NAJÍT(".";A1));ČÁST(A1;1+NAJÍT("*";DOSADIT(A1;".";"*";DÉLKA(A1)-DÉLKA(DOSADIT(A1;".";""))));255);"")
Funguje parádně
EDIT 17.4.20011Předchozí vzorec zanechá i mezeru za poslední tečkou - asdfasf.agf. bmp --> "mezera"bmp
A tady je jeste jedna moznost, ktera odstrani i tu mezeru - sdfasf.agf. bmp --> bmp
Kód: Vybrat vše
=KDYŽ(JE.ČISLO(NAJÍT(".";A1));PROČISTIT(ZPRAVA(DOSADIT(A1;".";OPAKOVAT(" ";100));100));"")
To jen pro doplnění.