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?
Funkce "Hledat" hledá jen zleva do prava, lze to obráceně?
Funkce "Hledat" hledá jen zleva do prava, lze to obráceně?
- Přílohy
-
- zjisteni pripon.xls
- (13.5 KiB) Staženo 91 x
Re: Funkce "Hledat" hledá jen zleva do prava, lze to obrácen
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
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
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-
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-
-
- Level 4.5
- Příspěvky: 1544
- Registrován: březen 11
- Bydliště: Drsná Vysočina :D
- Pohlaví:
- Stav:
Offline
Re: Funkce "Hledat" hledá jen zleva do prava, lze to obrácen
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á.
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
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.cmuch píše:Budem doufat, že budeš mít koncovku vždy v posledních čtyřech znacích
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
- Přílohy
-
- pokus.xlsm
- (14.32 KiB) Staženo 27 x
-
- Level 4.5
- Příspěvky: 1544
- Registrován: březen 11
- Bydliště: Drsná Vysočina :D
- Pohlaví:
- Stav:
Offline
Re: Funkce "Hledat" hledá jen zleva do prava, lze to obrácen
Tak jsem zase tady
Na jednom zahraničním servru bylo toto.
Funguje parádně
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
To jen pro doplnění.
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.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í.
-
- Mohlo by vás zajímat
- Odpovědi
- Zobrazení
- Poslední příspěvek
-
- 5
- 2858
-
od mmmartin
Zobrazit poslední příspěvek
13 črc 2023 18:44
-
- 11
- 2629
-
od WolfGunCZ
Zobrazit poslední příspěvek
09 lis 2023 13:16
Kdo je online
Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti