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

  • Mutt
    senior tag

    Szia!

    A választ köszönöm!
    Nos a megoldás így vagy úgy, de megvolt. A névtartományok dinamikussága a táblázat formátumból ered, így elegendő a névtartományokat egy lépésben a felső sor nevéből létrehoznom, ahogy írtam is (Ctrl + Shift + F3). Így viszont az egyetlen üres érték zavart valamennyi névtartományban.
    Az átlalad javasolt megoldás közel azonos lépésből áll, mint a táblázatom egyes oszlopait külön-külön betölteni PQ-vel. Azonban ez utóbbi esetben működik a Ctrl + Shift + F3 megoldás a választéklistában megjelenő üres érték nélkül.
    Az O365 dinamikus kiömlési tömbjeiből viszont tapasztalatom szerint fenti módszerrel nem lehetséges a névtartományok egyetlen lépésben történő létrehozása, vagyis az nem visz közelebb a megoldáshoz.
    Maradok az eredetileg kigondolt módszernél, nekem az egyszerűbb, mint a névtartományok hivatkozását módosítgatni.

    Ez pedig egy félig Power Query-s megoldás, de csiszolni kell.

    1) A második sorban kategória neveket adtam meg.
    2) PQ-ben csinálunk egy Transpose-t, majd Unpivot és csoportosÍtunk. A hasonló kategória elemeit összefűzzük egy hosszú szöveggé (itt a pipe jelet használtam, mert az ritkán szokott előfordulni hétkönapi szövegben). Majd visszaforgatjuk és munkalapra töltjük. E1:G2-ben lévő érték.
    3) A végén a TEXTSPLIT (SZÖVEGFELOSZTÁSSAL) sorokba szedjük az értékekeket és
    adatérvényesítéshez az =E5# képletet használjuk.

    A PQ kód:
    let
        Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Név", type text}, {"Nem", type text}, {"Kereső", type text}}),
        #"Transposed Table" = Table.Transpose(#"Changed Type"),
        #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Transposed Table", {"Column1"}, "Attribute", "Value"),
        #"Removed Columns" = Table.RemoveColumns(#"Unpivoted Columns",{"Attribute"}),
        #"Grouped Rows" = Table.Group(#"Removed Columns", {"Column1"}, {{"AllData", each _, type table [Column1=text, Value=text]}}),
        #"Added Custom" = Table.AddColumn(#"Grouped Rows", "List", each Text.Combine( List.Distinct([AllData][Value]), "|")),
        #"Removed Columns1" = Table.RemoveColumns(#"Added Custom",{"AllData"}),
        #"Transposed Table1" = Table.Transpose(#"Removed Columns1"),
        #"Promoted Headers" = Table.PromoteHeaders(#"Transposed Table1", [PromoteAllScalars=true])
    in
        #"Promoted Headers"

    Ha sok adatod van (50k sor felett) akkor ez talán jobb megoldás, mert a GROUPBY nekem sokszor fagyasztotta le a gépemet. Persze PQ is megizzad sok adat transzponálásával és unpivottal (egyedi értékekre bontás).

    Ez ugye nem frissül automatikusan (még csak tesztelőknek van kint az automatikus frissítés opció), míg a másik valósidejű.
    Sok adat esetén a fájl mérete is megnő a PQ változat esetén, míg a másiknal szinten nincs fájlméret változás.

    üdv

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