Hirdetés

Keresés

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

  • Mutt

    senior tag

    válasz zsolti_20 #45217 üzenetére

    Szia,

    Power Query-s megoldás VBA-mentesen.

    1. Alakítsd át a listát és a szűrőt 2 táblázattá.

    2. Ezek után Adatok -> Táblázatból vagy tartományból opcióval töltsd be Power Query-be az egyik táblázatot.

    3. Kezdőlap -> Bezárás és betöltés -> ... adott helyre majd válaszd a csak kapcsolatot.
    4. 2-3-as lépést csináld meg a szűrővel
    5. Kapcsolatok alatt jobb klikk a lista lekérdezésen és Szerkesztéssel menjünk vissza a Power Query szerkesztőbe.

    6. Most számoljuk meg hogy hány eleme van az egyes csoportoknak. Ehhez a Kezdőlapon a Csoportosítási szempontot használd. Itt elég a sorokat megszámolni, de ha nem bánod akkor haladó üzemmódban inkább ezt állítsd be:

    7. Az Elemek egy beágyazott tábla, ami tartalmazza az eredeti listádat és ebből ki fogjuk nyerni a tételeket.
    (Természetesen lehet ezt sima lekérdezés egyesítéssel helyettesíteni, ha a hagyományos utat választanád.) Adj egy új oszlopot a táblázathoz, aminek ez legyen a képlete: =[Elemek][Tetel]

    8. A Tetel oszlop jobb felső sarkában lévő ikonra kattints és válaszd a kibontást új sorokba. Ezzel visszakaptuk az eredeti listát, csak most már tudjuk hogy hány elem van egy csoportban.

    9. Jöhet a Kezdőlap -> Lekérdezések egyesítése. Itt kiválasztjük a szűrő lekérdezést és a közös oszlopot kijelöljük. Alul javasolt a Belső (egyező sorok) opciót használni.

    10. Most megint meg kell számolnunk, hogy egyes csoportokban hány elem van. Hasonlót csinálunk mint a 6-os lépésben.

    11. Megint lett egy beágyazott táblánk, amiből megint kellenek a tételek, de nyerjük ki még az eredeti elemszámot is. A tételeket ugyanúgy mint a 7-es lépésben egy új oszloppal kapjuk meg.
    12. Az eredeti elemszámhoz szintén egy új oszlop kell, aminek a képlete ez: =List.Min([Tetelek][Elemszám])

    13. Már látszik, hogy nekünk csak azok a sorok kellenek, ahol az eredeti és az új elemszám azonos. Ehhez megint kell egy új oszlop. Képlete: =[Elemszám]=[EredetiElemszám]

    14. Az új oszlopban szűrjünk rá a TRUE sorokra.
    15. Töröljük a felesleges oszlopokat (csak a csoport és a tétel kell)
    16. Tétel oszlop jobb felső sarkában megint kibontás sorokba.
    17. Eredmény visszatöltése Excelbe, Kezdőlap -> Bezárás és betöltés.
    18. Jobb klikk megint a Lista lekérdezésen és válasszuk a Betöltés helyét, majd Táblázat.

    Ez lett a végeredmény.

    üdv

    Ps. VBA-val limitáltan lehet módosítani a Power Query-t.

  • Delila_1

    veterán

    válasz zsolti_20 #45217 üzenetére

    Felteszem, hogy az A oszlopban eredetileg nem 1; 2 stb, hanem Csoport 1; Csoport 2 és így tovább szerepelt.

    Vegyél fel egy segédoszlopot, aminek a képlete
    =JOBB(A2;HOSSZ(A2)-7)*1, majd az új oszlop képleteit irányítottan, értékként illeszd be az eredeti helyére.

  • Fferi50

    Topikgazda

    válasz zsolti_20 #45217 üzenetére

    Szia!
    Lehet, hogy túl késő van már, de én nem látom, honnan származik az inkriminált sorod és melyik táblát szeretnéd használni.
    Üdv.

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

Hirdetés