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 :lol:

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ě :bigups:

EDIT 17.4.20011

Př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í.