Új hozzászólás Aktív témák

  • Mutt

    aktív tag

    válasz biker #18683 üzenetére

    Hello,

    ...feldarabolni a / jeleknél, és a tömb utolsó eleme kell...

    A Munka1 lapon lévő A1 cellában lévő szövegből adja vissza az utolsó "/" utáni szövegrészt. CSE képlet!

    {=KÖZÉP(Munka1!A1;MAX((KÖZÉP(Munka1!A1;SOR(INDIREKT("1:"&HOSSZ(Munka1!A1)));1)="/")*SOR(INDIREKT("1:"&HOSSZ(Munka1!A1))))+1;6^6)}

    Az alábbiak szerint működik:
    1. A KÖZÉP(Munka1!A1;SOR(INDIREKT("1:"&HOSSZ(Munka1!A1)));1) rész a szöveget 1 betüs tömbre bontja. Az eredmény ez lesz:
    ={"h";"t";"t";"p";":";"/";"/";"w";"w";"w";".";"n";"o";"m";"a";"d";"s";"p";"o";"r";"t";".";"e";"u";"/";"/";"u";"p";"l";"o";"a";"d";"/";"t";"e";"r";"m";"e";"k";"/";"k";"e";"p";"e";"k";"/";"b";"i";"g";"/";"_";"0";"/";"5";"8";"4";"3";"/";"5";"6";"8";"9";"8";"/";"e";"s";"b";"i";"t";"-";"g";"y";"u";"j";"t";"o";"k";"o";"c";"k";"a";".";"j";"p";"g"}

    2. Majd megnézzük hogy ez mikor azonos "/"-el. Az eredmény ez:
    ={HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;IGAZ;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS;HAMIS}

    3. Ezt szorozzuk a pozicíónak megfelelő számmal (vagyis 1, 2, 3 stb). Ez lesz:
    ={0;0;0;0;0;6;7;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;25;26;0;0;0;0;0;0;33;0;0;0;0;0;0;40;0;0;0;0;0;46;0;0;0;50;0;0;53;0;0;0;0;58;0;0;0;0;0;64;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0}

    4. Kikeressük a maximumot és hozzáadunk egyet.
    5. A kapott pozicíótól a maradék részt kiíratjuk. =KÖZÉP(Munka1!A1;65;6^6)

    Ha érdekel akkor kapsz egy saját függvényt is.
    Használata egyszerű: =szovegresz(Munka1!A1;"/";2^12)
    Első paraméter a vizsgálandó cella, a második az elválasztó jel, a harmadik a kért rész (jó nagy számot megadva az utolsó részt kapod).

    Function szovegresz(bemenet As Range, Optional elvalaszto As String = " ", Optional resz As Integer)
    'az elvalaszto ha nincs megadva akkor szóközként értelmezzük

    Dim arraySplit
    Dim vFelsoMeret As Long

    'szétszedjük a szöveget az elválasztójel alapján
    arraySplit = Split(bemenet, elvalaszto)
    'megnézzük hogy hányrészre szedhető
    vFelsoMeret = UBound(arraySplit)

    'ha az utolsó utáni darabot kérik, akkor is az utolsót adjuk
    If resz >= vFelsoMeret + 1 Then
    szovegresz = arraySplit(vFelsoMeret)
    End If

    'ha a legelső darab előtti kell, akkor is az elsőt adjuk vissza
    If resz <= 0 Then
    szovegresz = arraySplit(0)
    End If

    'megadjuk a kért részt
    If resz > 0 And resz < vFelsoMeret Then
    szovegresz = arraySplit(resz - 1)
    End If

    End Function

    üdv

    A tanácsaimat ingyen adom. Ha nem tetszik, akkor kérlek ne kritizáld! / https://github.com/viszi/codes/tree/master/Excel

Új hozzászólás Aktív témák