Keresés

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

  • ny.janos

    tag

    válasz bela85 #53559 üzenetére

    Még mielőtt elfelejteném: a számlaszámokon kívül más szám nem lehet a cellában, mert akkor a kód nem fog megfelelően működni!

    Az előző bejegyzésemben írt eredményhez az alábbit kellene tenned (a megoldást 2019-es excelben készítettem ,csak remélni tudom, hogy a PQ függvényei működnek a 2016-os verzióban is).
    1. A fájlod adott munkalapjának egyetlen oszlopát (melyben az adataid vannak) alakítsd táblázattá, az oszlop fejlécét írd át Adat-ra, a táblázat neve pedig Táblázat1 legyen.
    2. A táblázat bármely részén állva az Adatok menü Táblázatból vagy tartományból pontját válaszd.
    3. A PQ felugró menüjének kezdőlapján balra fent rákattints a Speciális szerkesztő-re, majd kijelölve az ott található kódot, az alábbira cseréld:

    let
        Forrás = Excel.CurrentWorkbook(){[Name="Táblázat1"]}[Content],
        #"Indexoszlop hozzáadva" = Table.AddIndexColumn(Forrás, "Index", 1, 1, Int64.Type),
        #"Érték felülírva" = Table.ReplaceValue(#"Indexoszlop hozzáadva","-","",Replacer.ReplaceText,{"Adat"}),
        #"Érték felülírva1" = Table.ReplaceValue(#"Érték felülírva"," ","a",Replacer.ReplaceText,{"Adat"}),
        #"Hozzáadott előtag" = Table.TransformColumns(#"Érték felülírva1", {{"Adat", each "a" & _, type text}}),
        #"Hozzáadott utótag" = Table.TransformColumns(#"Hozzáadott előtag", {{"Adat", each _ & "a", type text}}),
        #"Oszlop felosztása karakterátalakítás alapján2" = Table.SplitColumn(#"Hozzáadott utótag", "Adat", Splitter.SplitTextByCharacterTransition((c) => not List.Contains({"0".."9"}, c), {"0".."9"}), {"Adat.1", "Adat.2", "Adat.3", "Adat.4"}),
        #"Oszlopok eltávolítva2" = Table.RemoveColumns(#"Oszlop felosztása karakterátalakítás alapján2",{"Adat.1"}),
        #"Oszlop felosztása karakterátalakítás alapján3" = Table.SplitColumn(#"Oszlopok eltávolítva2", "Adat.2", Splitter.SplitTextByCharacterTransition({"0".."9"}, (c) => not List.Contains({"0".."9"}, c)), {"Adat.2.1", "Adat.2.2"}),
        #"Oszlop felosztása karakterátalakítás alapján4" = Table.SplitColumn(#"Oszlop felosztása karakterátalakítás alapján3", "Adat.3", Splitter.SplitTextByCharacterTransition({"0".."9"}, (c) => not List.Contains({"0".."9"}, c)), {"Adat.3.1", "Adat.3.2"}),
        #"Oszlop felosztása karakterátalakítás alapján5" = Table.SplitColumn(#"Oszlop felosztása karakterátalakítás alapján4", "Adat.4", Splitter.SplitTextByCharacterTransition({"0".."9"}, (c) => not List.Contains({"0".."9"}, c)), {"Adat.4.1", "Adat.4.2"}),
        #"Oszlopok eltávolítva3" = Table.RemoveColumns(#"Oszlop felosztása karakterátalakítás alapján5",{"Adat.2.2", "Adat.3.2", "Adat.4.2"}),
        #"Hozzáadott utótag2" = Table.TransformColumns(#"Oszlopok eltávolítva3", {{"Adat.2.1", each _ & "00000000", type text}}),
        #"Hozzáadott utótag3" = Table.TransformColumns(#"Hozzáadott utótag2", {{"Adat.3.1", each _ & "00000000", type text}}),
        #"Hozzáadott utótag4" = Table.TransformColumns(#"Hozzáadott utótag3", {{"Adat.4.1", each _ & "00000000", type text}}),
        #"Többi oszlop elemi értékekre bontva" = Table.UnpivotOtherColumns(#"Hozzáadott utótag4", {"Index"}, "Attribútum", "Érték"),
        #"Oszlopok eltávolítva4" = Table.RemoveColumns(#"Többi oszlop elemi értékekre bontva",{"Attribútum"}),
        #"Kinyert első karakterek1" = Table.TransformColumns(#"Oszlopok eltávolítva4", {{"Érték", each Text.Start(_, 24), type text}}),
        #"Típus módosítva" = Table.TransformColumnTypes(#"Kinyert első karakterek1",{{"Index", type text}}),
        #"Oszlop felosztása pozíció alapján" = Table.SplitColumn(#"Típus módosítva", "Érték", Splitter.SplitTextByRepeatedLengths(8), {"Érték.1", "Érték.2", "Érték.3"}),
        #"Oszlopok egyesítve" = Table.CombineColumns(#"Oszlop felosztása pozíció alapján",{"Érték.1", "Érték.2", "Érték.3"},Combiner.CombineTextByDelimiter("-", QuoteStyle.None),"Érték"),
        #"Sorok csoportosítva1" = Table.Group(#"Oszlopok egyesítve", {"Érték"}, {{"Előfordulás száma", each Table.RowCount(_), Int64.Type}, {"Indexsorok száma", each Text.Combine([Index],","), type nullable text}}),
        Egyéni1 = #"Oszlopok egyesítve",
        #"Egyesített lekérdezések" = Table.NestedJoin(Egyéni1, {"Érték"}, #"Sorok csoportosítva1", {"Érték"}, "Egyéni1", JoinKind.LeftOuter),
        #"Kibontott Egyéni1" = Table.ExpandTableColumn(#"Egyesített lekérdezések", "Egyéni1", {"Előfordulás száma", "Indexsorok száma"}, {"Előfordulás száma", "Indexsorok száma"}),
        #"Oszlopok átnevezve" = Table.RenameColumns(#"Kibontott Egyéni1",{{"Index", "Sorszám"}}),
        #"Típus módosítva1" = Table.TransformColumnTypes(#"Oszlopok átnevezve",{{"Sorszám", Int64.Type}, {"Előfordulás száma", type text}}),
        #"Sorok rendezve" = Table.Sort(#"Típus módosítva1",{{"Sorszám", Order.Ascending}}),
        #"Típus módosítva2" = Table.TransformColumnTypes(#"Sorok rendezve",{{"Előfordulás száma", type text}}),
        #"Sorok csoportosítva" = Table.Group(#"Típus módosítva2", {"Sorszám"}, {{"Számlaszámok", each Text.Combine([Érték]," ; "), type text}, {"Előfordulások száma számlaszámonként", each Text.Combine([Előfordulás száma]," ; "), type nullable number}, {"Indexsorok száma számlaszámonként", each Text.Combine([Indexsorok száma]," ; "), type nullable text}}),
        #"Típus módosítva3" = Table.TransformColumnTypes(#"Sorok csoportosítva",{{"Előfordulások száma számlaszámonként", type text}})
    in
        #"Típus módosítva3"

    4. A menüben a Bezárás és betöltés - Bezárás és betöltés adott elyre parancsot válaszd, majd a táblázatot kijelölve adj meg egy olyan cellát a munkalapodon, ahol már nincs adat, amit felülírnál. Ugyanabba a sorba tedd, ahol a táblázatod fejadatai vannak.

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