Kezdőlap › Fórumok › Excel témák › [Resolved] Power Query dinamikus adatforrás dinamikus adattítpus › Hozzászólás: [Resolved] Power Query dinamikus adatforrás dinamikus adattítpus
Szia Imre
köszönöm szépen az ötletet.
nem lehet nevek alapján állítani, mert az adatszerkezete változik, attól függően, hogy melyik oldalt nyitom meg. egy csonkolt listát adtam meg, ennél több oszlopból áll az adathalmaz, és lehetnek benne ismeretlen minták is. ezekre felkészülve keresek, kerestem dinamikus megoldást.
tehát az aapl/finance adatszerkezete más lehet mint a ko/finance mert nem konszolidált beszámolókat adnak meg a cégek, üres sorokkal ahol nincs érték, hanem egyszerűen nem adják meg az üres sort kompletten.
időközben találtam egy megoldást.
létrehozok egy másolatot az adott lekérdezésről, (előtte törölve a típus módosítva sort) letisztítom 2 sorra, majd feltételes oszlopot adok hozzá és listává alakítom
a DataType lekérdezés kódja:
let
…
Data0 = Forrás{0}[Data],
#”Lefokozott fejlécek” = Table.DemoteHeaders(Data0),
#”Tábla transzponálva” = Table.Transpose(#”Lefokozott fejlécek”),
#”ezres elválasztó cseréje” = Table.ReplaceValue(#”Tábla transzponálva”, „,”, „”, Replacer.ReplaceText, Table.ColumnNames(#”Tábla transzponálva”)),
#”Utolsó sorok eltávolítva” = Table.RemoveLastN(#”ezres elválasztó cseréje”, 1),
#”Érték felülírva1″ = Table.ReplaceValue(#”Utolsó sorok eltávolítva”, „.”, „,”, Replacer.ReplaceText, Table.ColumnNames(#”Utolsó sorok eltávolítva”)),
#”Előléptetett fejlécek” = Table.PromoteHeaders(#”Érték felülírva1″, [PromoteAllScalars=true]),
Egyéni1 = Table.FirstN(#”Előléptetett fejlécek”,1),
#”Lefokozott fejlécek2” = Table.DemoteHeaders(Egyéni1),
Egyéni2 = Table.Transpose(#”Lefokozott fejlécek2”),
#”Feltételes oszlop hozzáadva” = Table.AddColumn(Egyéni2, „Egyéni”, each if Text.Contains([Column2], „%”) then Percentage.Type else Int64.Type),
#”Oszlopok eltávolítva” = Table.RemoveColumns(#”Feltételes oszlop hozzáadva”,{„Column2″}),
Egyéni3 = Table.Transpose( #”Oszlopok eltávolítva”),
Egyéni4 = Table.ToColumns(Egyéni3)
in
Egyéni4
majd a donor lekérdezésben, egyszerűen, erre a lekérdezésre hivatkozok:
…
#”Előléptetett fejlécek” = Table.PromoteHeaders(#”Érték felülírva1″, [PromoteAllScalars=true]),
#”Típus módosítva” = Table.TransformColumnTypes(#”Előléptetett fejlécek”,income_10k_DataType)
in
#”Típus módosítva”
így működik jelenleg, de tesztelem még, hogy hiba nélkül abszolválja-e a feladatot vagy sem