Blog JSystems - uwalniamy wiedzę!

Szukaj

Power Query w Excelu, Power BI i Fabric

Grupowanie gubi pozostałe kolumny - opcja Wszystkie wiersze w Power Query

W skrócie

  • Po kliknięciu Grupowanie według znikają kolumny, których nie było w grupowaniu ani w agregacjach, na przykład numer paragonu czy data. W Power Query grupowanie z operacją Wszystkie wiersze pozwala je zachować.
  • Grupowanie zwraca jeden wiersz na grupę, więc zostają tylko kolumny grupujące i wyniki agregacji. Operacja Wszystkie wiersze zamiast liczby oddaje dla każdej grupy tabelę z jej wierszami.
  • Dodaj agregację Wszystkie wiersze i rozwiń ją albo licz na niej, pojedyncze wartości pobieraj operacjami Maksimum i Minimum, a sumy grup dołączaj do szczegółów scalaniem zapytań.

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.

Jak to wygląda w praktyce

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.

Dlaczego tak się dzieje

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ż netto

Operacja 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.

Jak to rozwiązać krok po kroku

  1. Kliknij ikonę koła zębatego przy kroku Pogrupowano wiersze, żeby otworzyć okno Grupowanie według, i przełącz je w tryb Zaawansowane. Przyciskiem Dodawanie agregacji dodaj wiersz, w polu Nazwa nowej kolumny wpisz na przykład Wiersze, a w polu Operacja wybierz Wszystkie wiersze. Pole Kolumna nie jest dla tej operacji potrzebne.
  2. Kliknij OK. Obok sumy pojawi się kolumna z wartościami Table. Kliknięcie w puste miejsce komórki pokazuje na dole okna podgląd wierszy danej grupy.
  3. Żeby wrócić do szczegółów z sumą sklepu w każdym wierszu, kliknij ikonę z dwiema strzałkami w nagłówku kolumny Wiersze, zaznacz potrzebne kolumny i odznacz Użyj oryginalnej nazwy kolumny jako prefiksu. W naszym teście po rozwinięciu wróciły 3 wiersze z kolumnami Sklep, Sprzedaż sklepu, Nr paragonu, Data i Wartość netto.
  4. Żeby wybrać jeden wiersz z każdej grupy, na przykład najdroższy paragon, dodaj kolumnę niestandardową z formułą = 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.
  5. Numer kolejny w grupie dodasz w pasku formuły kroku grupowania, zamieniając 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.
  6. Gdy z pominiętej kolumny potrzebujesz tylko jednej wartości, nie rozwijaj tabel. Dodaj w oknie grupowania agregację Maksimum albo Minimum na tej kolumnie, na przykład najpóźniejszą datę jako ostatnią sprzedaż. W naszym teście dla Wrocławia była to data 09.01.2026.
  7. Jeśli szczegóły mają zostać w osobnym zapytaniu, scal tabelę szczegółową z wynikiem grupowania poleceniem Scal zapytania po kolumnie Sklep i rozwiń kolumnę z sumą. Z sumą sklepu w każdym wierszu policzysz udział paragonu: w naszym teście paragon za 250 miał udział 0,7143 w sprzedaży sklepu.
Okno Grupowanie według w Power Query w trybie Zaawansowane z grupowaniem po kolumnach Sklep i Początek miesiąca oraz agregacjami Suma i Zlicz wiersze
Okno Grupowanie według w trybie Zaawansowane: dwie kolumny grupujące, Sklep i Początek miesiąca, oraz dwie agregacje, Sprzedaż netto i Liczba pozycji. Kolejną agregację dodaje przycisk Dodawanie agregacji.

Jak sprawdzić, że zadziałało

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

Baner szkolenia Microsoft Excel - Power Query w JSystems z edytorem Power Query na ekranie laptopa

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

Najczęściej zadawane pytania

Dlaczego po grupowaniu w Power Query znikają inne kolumny?
Grupowanie zwraca jeden wiersz na grupę, więc zostają tylko kolumny grupujące i wyniki agregacji. Kolumna, której nie ma w żadnej z tych list, nie ma jednej wartości dla całej grupy. Dodaj dla niej agregację, na przykład Maksimum, albo użyj operacji Wszystkie wiersze.
Co robi operacja Wszystkie wiersze w oknie Grupowanie według?
Zamiast liczby zwraca dla każdej grupy tabelę ze wszystkimi jej wierszami. Taką kolumnę można rozwinąć z powrotem do szczegółów albo przetwarzać formułą, na przykład wybrać najdroższy paragon funkcją Table.Max. To sposób na operacje, których okno grupowania nie oferuje.
Jak zachować wszystkie wiersze i dodać obok sumę grupy?
W oknie grupowania dodaj dwie agregacje: Suma na kolumnie z wartościami i Wszystkie wiersze. Potem rozwiń kolumnę z tabelami ikoną z dwiema strzałkami w nagłówku. Każdy wiersz szczegółowy dostanie sumę swojej grupy, co w naszym teście dało 3 wiersze z sumą sklepu w każdym.
Jak ponumerować wiersze w obrębie każdej grupy?
Pogrupuj z operacją Wszystkie wiersze, a potem w pasku formuły zamień agregację each _ na wyrażenie, które sortuje grupę funkcją Table.Sort i dodaje kolumnę indeksu od 1 funkcją Table.AddIndexColumn. Po rozwinięciu każdy wiersz ma swoją pozycję w grupie. W naszym teście najdroższy paragon w każdym sklepie dostał pozycję 1.

Komentarze (0)

Musisz być zalogowany by móc dodać komentarz. Zaloguj się przez Google

Brak komentarzy...