Hirdetés

Keresés

Hirdetés

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

  • lappy

    őstag

    válasz slemo #46215 üzenetére

    Nézd meg ezt
    https://www.google.com/url?sa=t&source=web&rct=j&url=https://www.extendoffice.com/documents/excel/4244-excel-swap-data-around-one-cell.html&ved=2ahUKEwjqgtPK1p7vAhUiBhAIHUmoALkQFjAAegQIAxAD&usg=AOvVaw2N2m8MqnDqH2DjY5uQLu6N&cshid=1615137225608

    Bámulatos hol tart már a tudomány!

  • 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

    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