Uważaj na usuwanie duplikatów tuż po sortowaniu w Power Query

Wyobraź sobie następujący scenariusz. Posiadasz numer faktury kilka razy w tabeli, ale tylko przy jednym numerze jest data. Sortujesz zatem w Power Query po numerach i datach malejąco (tak jak w Excelu), aby puste wartości spadły na dół tabeli. Następnie usuwasz duplikaty. Efekt? Prawdopodobnie nie działa prawidłowo. Z tym scenariuszem można spotkać się na co dzień i jest często komentowany przez społeczność, która zastanawia się: bug or feature?  Jak sobie z nim poradzić?

Opcja 1: Table.Buffer na ratunek zapytania Power Query

Aby obejść to ograniczenie, dopisz w pasku formuły Table.Buffer przed operacją sortowania.

Uważaj na usuwanie duplikatów tuż po sortowaniu w Power Query 1

Ryzyko: Table.Buffer wczytuje całą tabelę do pamięci, więc może znacznie spowolnić zapytanie. Jeśli tak jest, przetestuj opcję 2.

Opcja 2: Kolumna indeksu

Drugą opcją jest ponumerowanie wierszy za pomocą kolumny indeksu. Dodanie tego dodatkowego kroku także gwarantuje właściwą kolejność usuwania duplikatów.

Uważaj na usuwanie duplikatów tuż po sortowaniu w Power Query 2

Znasz inne nietypowe funkcjonalności (błędy?) Power Query?

Podziel się w komentarzu.

Bartosz Czapiewski

Bartosz Czapiewski

Założyciel SkuteczneRaporty.pl, doświadczony ekspert oraz trener Excela, Power Query, Power BI i DAX. Od ponad 15 lat pomaga specjalistom i firmom lepiej pracować z danymi, automatyzować raporty oraz rozwijać kompetencje analityczne.

Jest autorem programów szkoleniowych dla Analityków: JUNIOR, POWER PRO i EXPERT oraz twórcą społeczności I❤️DATA, w której poprzez mentoring, spotkania LIVE z ekspertami i praktyczne wyzwania pomaga rozwijać umiejętności, budować portfolio, przygotować się do rekrutacji i zrobić kolejny krok w stronę pracy jako Analityk Danych.

Na blogu dzieli się praktycznym podejściem do analityki: od układania danych w Excelu, przez automatyzację pracy z Power Query, aż po zaawansowane raportowanie w Power BI, DAX i rozwój kariery Analityka Danych.

Brak komentarzy

  1. Niestety PQ trzeba pilnować 🙁 Ja wyłożyłem się dzisiaj np. na tym, że w PQ w pierwszym wierszu był KOT a w drugim KOD, natomiast po eksporcie do tabeli w excelu w pierwszym wierszu był KOD a drugim KOT (odwrotnie niż w PQ). Niewłaściwie zachował się też wybierając w PQ usuń 1 pierwszy wiersz – nie usuwał pierwszego (jak było na ekranie PQ) tylko drugi (czyli 1 wg załadowanej tabeli do excela!!). Pomogło przesortowanie tabeli przed usunięciem. (Oczywiście podany przykład jest „z czapy” dla opisania problemu – realnie zestawienie miało ostatecznie kilkadziesiąt pozycji i powstało z wykonania różnych kroków w PQ)

    Pewne problemy też sprawiało mi rozwijanie po scaleniu (nie do końca wiem, co było problemem) i zamiast połączyć tysiące wierszy okazywało się, że spójne było tylko kilkadziesiąt. Dopiero wstawienie kolumny indeksu (jak artykule) pomogło. Temat opisany na http://www.excelforum.pl/topics22/scalanie-pq-odnajduje-wynik-ale-rozwija-null-vt65136.htm

  2. Hej Andrzej, dzięki za cenny komentarz. Potwierdzam, że trzeba na bieżąco sprawdzać działanie zapytań. Ja zawsze tworzę sporo zapytań sprawdzających (np. Scalanie Lewe Anty), żeby wyłapywać różnice. Pytanie, czego jeszcze o Power Query nie wiemy… 😉

  3. Dzięki za tę poradę, index sprawdza się w moim przypadku perfekcyjnie! Mam w swoim query powtarzający się numer dokumentu, który ma przypisanych kilka dat, interesuje mnie ta najwcześniejsza więc sortuję rosnąco najpierw po nr dokumentu a potem po dacie, dodaję index, usuwam duplikaty i jest elegancko!

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *