< návrat zpět

MS Excel


Téma: vyříznutí části textu rss

Zaslal/a 12.1.2010 18:09

nevěděl by někdo, jak z takového řetězce

C:\\\\dokumenty\\\\nevim\\\\ahoj.exe

dostat pomocí excelovských funkcí (NE VBA!) řetězec \\\"nevim\\\" ? adresa může ale vypadat i jinak. třeba

D:\\\\xx\\\\neco.txt ..... odsuď dostat \\\"xx\\\"
X:\\\\foto.jpg .... rady by měl být výsledek \\\"\\\"
Z:\\\\aaa\\\\bbb\\\\ccc\\\\ddd\\\\eee\\\\dalsi.png ..... tady \\\"eee\\\"

diky za navrhy

Zaslat odpověď >

#001032
Jeza.m
Asi by to šlo, ale bylo by tam hodně KDYŽ :-), myslím že excel 2003 jich dovolí maximálně 7 za sebou, což by byl limit, pak pole vzorce je omezeno jistým počtem znaků (z hlavy teď nevím kolika), tak ani nevím jestli by se to vešlo. Žadný jednoduchý způsob mě nenapadá.

M@citovat
icon #001034
Poki
Souhlasim s Jezou v tom, ze by tam bylo hodne KDYZ (maximum je 7 vnoreni) a delka vzorce je 1024 znaku (E 2003) nebo 8 192 znaků (E 2007). Myslim, ze v Excelu2003 by se ten vzorec ani nevesel a doporucoval bych:
1) napsat vlastni funkci ve VBA
2) zvazit, jestli cil, proc to delat neni zbytecny vzhledem k jinym resenim celkoveho vysledkucitovat
#001052
avatar
no, schanel sem to pro kamaradku. chteli to po ni ve skole. samozrejme, ze by bylo VBA lehci, ale tak to delat nemohli. odpoved na to, jak to udelat, sem dostal v jednom zahranicnim foru. vubec by me nenapadlo to tak delat. tak prikladam jen tak pro zajmavost (je to pro anglickej excel)

Or maybe?

=IF(LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))<=1,"",TRIM(MID(SUBSTITUTE(A1,"\",REPT(" ",100)),(LEN(A1)-LEN(SUBSTITUTE(A1,"\",""))-1)*100,100)))

if you want the last set before the .xxx part...citovat
#001065
Jeza.m
Tak jsem si řekl, že když to zvládne někdo na zahraničním foru, že to snad zvládnem taky a tak jsem si udělal rozbor toho vzorce, česky je to:
=KDYŽ(DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))<=1;"";PROČISTIT(ČÁST(DOSADIT(B1;"\";OPAKOVAT(" ";100));(DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1)*100;100)))
a došel jsem k závěru, že není až tak úplně univerzální a tak jsem si zkusil napsat vlastní vzorec, bylo to teda tak na hodinu přemýšlení :-), ale výsledek je na světě (trochu delší než ten ze zahraničního fóra):
=KDYŽ(DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))<=1;"";ČÁST(DOSADIT(DOSADIT(B1;"\";"#pp";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);"\";"#po";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);HLEDAT("#pp";DOSADIT(DOSADIT(B1;"\";"#pp";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);"\";"#po";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);1)+3;HLEDAT("#po";DOSADIT(DOSADIT(B1;"\";"#pp";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);"\";"#po";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);1)-(HLEDAT("#pp";DOSADIT(DOSADIT(B1;"\";"#pp";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);"\";"#po";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);1)+3)))

V příloze přikládám i rozbor obou vzorců - třeba se někomu bude hodit.

S pozdravem
M@
Příloha: zip1065_cesta.zip (10kB, staženo 37x)
citovat
icon #001069
Poki
Zdravim,
ten zahranicni vzorec neni uplne idealni, zalezi ovsem na ucelu pouziti, kazdopadne jsem se na tom naucil zase jednu fintu. Jezovi gratuluju k tomu "monstru", co stvoril - diky vam obema... :)citovat
#001071
Jeza.m
Ono to zas takový monstrum jak to vypadá není :-)

Kdybych použil mezivýpočet, tak mám
vzorec 1 (označit poslední a předposlední "\"):
=DOSADIT(DOSADIT(B1;"\";"#pp";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1);"\";"#po";DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))-1)

vzorec 2 (získat z výsledku vzorce 1 požadovanou hodnotu):
=KDYŽ(DÉLKA(B1)-DÉLKA(DOSADIT(B1;"\";""))<=1;"";ČÁST(B48;HLEDAT("#pp";B48;1)+3;HLEDAT("#po";B48;1)-(HLEDAT("#pp";B48;1)+3)))

což jsou krátké vzorce :-).

To monstrum vzikne tím že nechci použít mezivýpočet, tudíž ve vzorci 2 místo odkazu na výsledek (B48) musím vždy napsat celý vzorec 1, tzn. 4x.

M@
Příloha: zip1071_cesta.zip (10kB, staženo 35x)
citovat

Uživatelské menu

Nejste přihlášen(a)
avatar\n

Menu

Formulář Faktura

Formulář Faktura IV

Oblíbený formulář Faktura byl vylepšen a rozšířen.
Více se dočtete zde.

Helios iNuvio

Používáte podnikový systém Helios iNuvio? Potřebujete pomoci se správou nebo vyvinout SQL proceduru? Více informací naleznete na stránce Helios iNuvio.

On-line nástroje