Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power Query w Excelu, Power BI i Fabric
Scalone komórki w Excelu dają puste wartości w Power Query - Wypełnij w dół
Scalone komórki spotkasz w Power Query przy raportach przygotowanych do druku, a nie do analizy: miasto, region albo dział stoi raz, a obok jest kilka wierszy szczegółów. Pokazujemy, co Power Query widzi w takim arkuszu, jak uzupełnić puste wartości poleceniem Wypełnij w dół i jak nie zepsuć przy tym kolumn, które powinny zostać puste. Zachowanie poleceń sprawdziliśmy w polskim Excelu na raporcie sprzedaży sklepów Nordvelli.
W arkuszu źródłowym kolumna Miasto wygląda na pełną: Warszawa obejmuje scaloną komórką trzy sklepy, Kraków dwa. W Power Query wartość ma tylko pierwszy wiersz każdej grupy, a pozostałe pokazują null. W naszym pliku testowym kolumna Miasto miała po wczytaniu wartości Warszawa, null, null, Kraków, null, Wrocław.
Skutki widać dopiero w wynikach. Grupowanie po mieście dało cztery grupy zamiast trzech: Warszawa ze sprzedażą 120, osobną grupę null z sumą 245 oraz Kraków ze sprzedażą 110 zamiast 180. Filtr Miasto równe Warszawa zostawia jeden sklep z trzech, a scalanie ze słownikiem miast nie znajduje dopasowania dla wierszy z null. Ten sam efekt dają scalone nagłówki: kolumna pod scaloną komórką Sprzedaż, obejmującą dwie kolumny, dostała po promowaniu nagłówków nazwę Column3.
Dokumentacja Excela opisuje scalanie wprost: w scalonej komórce zostaje zawartość tylko jednej komórki, lewej górnej, a zawartość pozostałych jest usuwana. Scalenie to w praktyce sposób wyświetlania. W pliku dalej istnieją osobne komórki, z których tylko pierwsza ma wartość.
Power Query czyta arkusz komórka po komórce i nie interpretuje formatowania, więc komórki objęte scaleniem, poza pierwszą, dostają wartość null. Tak samo traktuje każdą pustą komórkę arkusza. Polecenie Wypełnij, W dół wywołuje funkcję Table.FillDown, która według swojego opisu przenosi wartość z poprzedniej komórki do komórek z wartością null położonych niżej w tej samej kolumnie. Wypełnia wszystkie null bez wyjątku, więc nie odróżni null ze scalenia od prawdziwego braku danych.
Table.FillDown(#"Nagłówki o podwyższonym poziomie", {"Miasto"}). W naszym teście kolumna dostała wartości Warszawa, Warszawa, Warszawa, Kraków, Kraków, Wrocław.Table.FillDown traktuje pusty tekst jak wartość: w naszym teście pusty tekst pod Warszawą został skopiowany w dół zamiast miasta. Zamień go najpierw na null: zaznacz kolumnę, na karcie Przekształć kliknij Zamienianie wartości, pole Wartość do znalezienia zostaw puste, a w polu Zamień na wpisz null. Dopiero potem wypełnij w dół.
Otwórz filtr wypełnionej kolumny i sprawdź, że na liście wartości nie ma już pozycji null. Potem pogrupuj dane po tej kolumnie poleceniem Grupowanie według i porównaj sumy z raportem źródłowym: w naszym teście po wypełnieniu grupy miały sprzedaż 295 dla Warszawy, 180 dla Krakowa i 90 dla Wrocławia, zgodnie z arkuszem. Krok grupowania usuń po sprawdzeniu.
Kolumny, których nie wypełniałeś, powinny mieć tyle samo wartości null co przed zmianą. Żeby problem nie wrócił, poproś autorów raportu o dane bez scalonych komórek, z wartością powtórzoną w każdym wierszu. Jeśli raport musi zostać w formie do druku, zostaw w zapytaniu krok wypełniania w dół, bo zadziała przy każdym odświeżeniu, także na nowych grupach.
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...