Oldal: 1 / 1
[Megoldva] Cellában az utolsó vessző utáni rész
Elküldve: 2013. szeptember 18., szerda 2:48
Szerző: sutyika
Sziasztok!
Ki kellene nyernem egy adott oszlop celláiból az utolsó vessző utáni részt.
Az is segítene, ha meg tudnám kerestetni az utolsó vesszőt egy cellában. Onnan már a "jobb" és a "hossz" függvény már megoldja.
Előre is köszönöm.
András
Re: cellában az utolsó vessző utáni rész
Elküldve: 2013. szeptember 18., szerda 12:33
Szerző: Zizi64
Basic makrófüggvénnyel (...írnod kell egyet...) a legcélszerűbb ezt megvalósítani. Paraméterként átadod a cella tartalmát a függvénynek, és ciklikusan végigpásztázod a stringet az utolsó vesszőig, és aztán veszed az adott pozíciótól a végéig terjedő részt, amit a függvény kimenetén visszaadsz a hívó cellának...
Ha fix (mindig ugyanolyan) számú vessző fordulhat csak elő a szövegekben, akkor cellafüggvényekkel is operálhatsz.
Például, ha lehet tudni előre, hogy pontosan 3 db vessző van (valahol) az A1 cellában található stringben, akkor használhatod a:
Kód: Egész kijelölése
=RIGHT(A1;LEN(A1)-FIND(",";A1;FIND(",";A1;FIND(",";A1;1)+1)+1))
képletet.
Egyéb ötlet nem jut az eszembe.
Re: cellában az utolsó vessző utáni rész
Elküldve: 2013. szeptember 18., szerda 17:34
Szerző: Zizi64
Itt egy működő példa a makrófüggvényre.
Paraméterek:
Keresendo : a karakter, aminek az utolsó előfordulását keressük
Szoveg : a szöveg, amiben a Karakter utolsó előfordulását keressük.
A függvény visszatérési értéke a keresett karakter utolsó előfordulása utáni szövegrész. Ha egyetlen egyszer sem fordul elő a karakter a szövegben, akkor a visszatérési érték "", azaz üres string.
Kód: Egész kijelölése
Function Jobbrol(Keresendo, Szoveg as string) as string
Dim Hossz as integer
Dim i as integer
Hossz = len(Szoveg)
for i = Hossz to 1 Step -1
If Mid(Szoveg,i,1) = Keresendo then
Jobbrol = Right(Szoveg, Hossz - i)
Exit function
End if
next i
Jobbrol = ""
End function
Használata (a fönti példából kiindulva, amikor is a szöveg az A1 cellában van):
Módosíthatod kódot úgy is, hogy nem egy karaktert figyel, hanem az egy karakternél hosszabb keresendő szövegrészt figyeli a hosszú szövegben.
A fenti példakód nem vizsgája, csak feltételezi, hogy EGYETLEN karaktert adsz át keresésre.
Re: [Megoldva] Cellában az utolsó vessző utáni rész
Elküldve: 2013. szeptember 19., csütörtök 14:47
Szerző: Zizi64
Látom, megjelölted a témát, hogy "MEGOLDVA", de esetleg szóban is visszajelezhettél volna, hogy melyik megoldás volt a számodra a megfelelő (a makró, vagy a cellafüggvényes...)