Hirdetés

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

  • Mutt

    senior tag

    válasz slemo #46215 üzenetére

    Szia,

    Microsoft 365 Insider-ben elérhetők a LAMBDA és LET függvények, amelyekkel megoldható a probléma.
    A névkezelőben a FLIP függvényt hoztam létre, amelynek az a képlete:
    =LAMBDA(
    ertek;
    elvalaszto;
    LET(
    hosszusag;HOSSZ(ertek);
    mennyi;1+(hosszusag-HOSSZ(HELYETTE(ertek;elvalaszto;"")))/hossz(elvalaszto);
    kezdo;HAHIBA(ÖSSZESÍT(15;6;SORSZÁMLISTA(hosszusag)/(KÖZÉP(ertek;SORSZÁMLISTA(hosszusag);1)=bal(elvalaszto;1));SORSZÁMLISTA(mennyi)-1);0);
    vege;HAHIBA(ÖSSZESÍT(15;6;SORSZÁMLISTA(hosszusag)/(KÖZÉP(ertek;SORSZÁMLISTA(hosszusag);1)=bal(elvalaszto;1));SORSZÁMLISTA(mennyi));hosszusag+1);
    szoveg;KIMETSZ(KÖZÉP(ertek;kezdo+1;vege-kezdo-1));
    ures;SZÖVEG.KERES(" ";szoveg);
    SZÖVEGÖSSZEFŰZÉS(elvalaszto&" ";IGAZ;KIMETSZ(KÖZÉP(szoveg;ures+1;hosszusag)&" "&BAL(szoveg;ures)))))

    Természetesen VBA-val is meg lehet oldani:
    Function FlipVBA(ertek As Range, elvalaszto As String) As String
    Dim fSplit1, fSplit2, data
    Dim result As String, flipped As String
    Dim c As Long

    fSplit1 = Split(ertek, elvalaszto)

    For Each data In fSplit1
    flipped = ""
    fSplit2 = Split(Trim(data))

    For c = UBound(fSplit2) To 0 Step -1
    If flipped = "" Then
    flipped = Trim(fSplit2(c))
    Else
    flipped = flipped & " " & Trim(fSplit2(c))
    End If
    Next c

    If result = "" Then
    result = flipped
    Else
    result = result & elvalaszto & " " & flipped
    End If
    Next data

    FlipVBA = result
    End Function

    Végül pedig Power Queryvel is megoldható. A lényeg ott ez a képletsor: Text.Combine(List.Reverse(Text.Split([Szöveg]," "))," ")

    üdv

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