Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power Query w Excelu, Power BI i Fabric
Grupowanie gubi pozostałe kolumny - opcja Wszystkie wiersze w Power Query
Na ten problem trafiasz, gdy po zsumowaniu sprzedaży chcesz zobaczyć jeszcze numer największego paragonu, datę ostatniej sprzedaży albo wszystkie wiersze z sumą sklepu obok. W Power Query grupowanie zostawia tylko kolumny grupujące i wyniki, a resztę odrzuca. Pokazujemy, jak operacja Wszystkie wiersze zachowuje szczegóły grup, i kilka sposobów odzyskania potrzebnych kolumn na danych sprzedaży fikcyjnej sieci Nordvella z naszego kursu.
Na karcie Strona główna klikasz Grupowanie według, grupujesz po kolumnie Sklep i ustawiasz operację Suma na kolumnie Wartość netto. Po kliknięciu OK tabela ma jeden wiersz na sklep i tylko dwie kolumny. Kolumny Nr paragonu, Data i pozostałe zniknęły bez ostrzeżenia.
Sprawdziliśmy to w polskim Excelu na trzech paragonach z dwóch sklepów: po grupowaniu z sumą zostały kolumny Sklep i Sprzedaż netto. W kursie grupowanie po sklepie i początku miesiąca zamienia 9250 linii paragonów w 60 wierszy, czyli 15 sklepów razy 4 miesiące. Do raportu realizacji budżetu to wystarcza, ale do analizy pojedynczych paragonów już nie.
Grupowanie zwraca jeden wiersz na grupę. Kolumna, której nie ma w grupowaniu ani w żadnej agregacji, nie ma jednej wartości dla całej grupy, więc nie trafia do wyniku. W kodzie M widać to w funkcji Table.Group: zostaje tylko lista kolumn grupujących i lista agregacji.
Table.Group(Źródło, {"Sklep"}, {
{"Sprzedaż netto", each List.Sum([Wartość netto]), type nullable number}
})
// kolumny wyniku: Sklep, Sprzedaż nettoOperacja Wszystkie wiersze działa inaczej niż suma czy średnia. Według dokumentacji Microsoft zwraca wszystkie wiersze grupy w postaci tabeli, bez agregacji. W każdej komórce nowej kolumny jest wartość Table, którą można rozwinąć albo przetwarzać formułą. W kodzie M taką kolumnę daje agregacja each _, czyli cała grupa.
= Table.Max([Wiersze], "Wartość netto"), jak w przykładzie z dokumentacji Microsoft. Wynik to rekord, który rozwiniesz ikoną w nagłówku. W naszym teście dla sklepu we Wrocławiu został wybrany paragon WRO1-202601-00002 o wartości 250.each _ na each Table.AddIndexColumn(Table.Sort(_, {{"Wartość netto", Order.Descending}}), "Pozycja", 1, 1). Po rozwinięciu każdy paragon dostał w naszym teście pozycję w swoim sklepie: 1 dla najdroższego, 2 dla kolejnego.
Porównaj liczby. Suma z kolumny agregacji powinna być równa sumie wartości po rozwinięciu kolumny Wiersze, a liczba wierszy po rozwinięciu ma wrócić do liczby wierszy przed grupowaniem, w naszym teście do 3. Na danych z kursu oznacza to 60 wierszy po grupowaniu i z powrotem 9250 linii paragonów po rozwinięciu wszystkich wierszy.
Żeby problem nie wracał, przed grupowaniem ustal, które kolumny będą potrzebne później, i od razu dodaj dla nich agregację albo kolumnę Wszystkie wiersze. Pamiętaj, że rozwinięcie takiej kolumny przywraca pełną liczbę wierszy, więc zestawienia, które mają mieć jeden wiersz na grupę, licz na tabelach w komórkach albo agregacjami, bez rozwijania.
Wróć do listy: 88 najczęstszych pytań i problemów związanych z Power Query
Szkolenie Microsoft Excel - Power Query --> Dwa dni warsztatów z Excela: pobieranie danych z plików, folderów, SharePointa i baz SQL, ich czyszczenie i łączenie w Power Query, praca w języku M, a na koniec model danych i oparta na nim tabela przestawna. Prowadzi Sebastian Stasiak.
To szkolenie może być dofinansowane dla Ciebie z KFS lub BUR.
★★★★★Średnia ocena naszych szkoleń w Google: 5/5
Komentarze (0)
Brak komentarzy...