0
0 Produkty w koszyku

No products in the cart.

W dzisiejszym artykule pokażę, jak skutecznie usunąć puste kolumny z danych w Power Query, co znacznie usprawni analizę i przetwarzanie informacji. Ta automatyczna metoda pozwala zaoszczędzić czas przy pracy z rozbudowanymi zestawami danych, eliminując konieczność ręcznego usuwania pustych kolumn.

Power Query traktuje różnie puste komórki — niektóre jako wartości null, inne jako puste ciągi tekstowe, co wymaga odpowiedniego podejścia przy ich identyfikacji i usuwaniu.

W moim wideo pokazuję krok po kroku, jak poradzić sobie z tym wyzwaniem:

Dlaczego warto automatycznie usuwać puste kolumny?

Podczas pracy z danymi w Excelu często spotykamy się z sytuacją, gdy niektóre kolumny są całkowicie puste lub zawierają tylko wartości null czy puste ciągi tekstowe. Takie kolumny nie wnoszą żadnej wartości analitycznej, a jedynie zaśmiecają nasz zestaw danych i utrudniają pracę. Ręczne usuwanie tych kolumn może być czasochłonne, szczególnie gdy pracujemy z dużymi zestawami danych zawierającymi wiele kolumn.

Co więcej, w Power Query musimy zwrócić szczególną uwagę na różnicę między wartościami null (całkowicie pustymi komórkami w Excelu) a pustymi ciągami tekstowymi (komórkami zawierającymi formułę zwracającą pusty ciąg). Power Query traktuje te wartości odmiennie, co oznacza, że musimy zastosować bardziej złożone podejście, aby skutecznie usunąć wszystkie puste kolumny.

Importowanie danych do Power Query

Pierwszym krokiem jest zaimportowanie danych do Power Query. W Excelu przechodzimy do karty "Dane", a następnie wybieramy opcję "Pobierz dane z pliku", dalej "Z pliku Excel". Po odnalezieniu i wybraniu naszego pliku, wskazujemy arkusz zawierający dane, które chcemy przetworzyć.

Po zaimportowaniu danych możemy zauważyć, że niektóre kolumny zawierają:

  • Puste komórki (wartości null)
  • Komórki z pustym ciągiem tekstowym (zwracane przez formuły)
  • Komórki z wartościami wklejonymi jako puste ciągi tekstowe

Wszystkie te typy pustych wartości musimy wziąć pod uwagę przy usuwaniu niepotrzebnych kolumn. W Power Query możemy użyć zaawansowanego kodu, aby automatycznie wykryć i usunąć kolumny zawierające tylko puste wartości, niezależnie od ich typu.

Tworzenie kodu do usuwania pustych kolumn

Po przekształceniu danych w Power Query, dodajemy nowy krok niestandardowy, który będzie zawierał nasz kod do usuwania pustych kolumn. Kod ten będzie odwoływał się do poprzedniego kroku, najczęściej do kroku "Zmieniono typ", aby pracować na aktualnych danych.

Pełny kod, który usuwa puste kolumny, składa się z kilku kluczowych elementów, które omówię szczegółowo:

Pobieranie nazw kolumn

Pierwszym elementem jest pobranie listy wszystkich nazw kolumn w naszej tabeli. Używamy do tego funkcji Table.ColumnNames, która zwraca listę nazw kolumn:

Table.ColumnNames(#"Zmieniono typ")

Ta funkcja jest niezbędna, ponieważ musimy wiedzieć, które kolumny są dostępne w naszych danych, aby następnie sprawdzić, które z nich są puste i powinny zostać usunięte.

Sprawdzanie pustych wartości w kolumnach

Następnie dla każdej kolumny musimy sprawdzić, czy zawiera ona wyłącznie wartości puste (null) lub puste ciągi tekstowe (""). W tym celu używamy kombinacji funkcji List.Select i List.RemoveItems:

Dla każdej kolumny usuwamy wszystkie wartości null i puste ciągi, a następnie liczymy pozostałe elementy. Jeśli wynik jest równy 0, oznacza to, że kolumna zawiera wyłącznie puste wartości i powinna zostać usunięta.

Używamy funkcji Table.Column do wyodrębnienia danych z konkretnej kolumny:

Table.Column(#"Zmieniono typ", _)

gdzie "_" jest zmienną reprezentującą nazwę kolumny w naszej pętli. Następnie usuwamy wartości null i puste ciągi:

List.RemoveItems(Table.Column(#"Zmieniono typ", _), {null, ""})

i liczymy pozostałe elementy:

List.Count(List.RemoveItems(Table.Column(#"Zmieniono typ", _), {null, ""}))

Filtrowanie i usuwanie pustych kolumn

Po zidentyfikowaniu pustych kolumn używamy funkcji List.Select do utworzenia listy kolumn, które powinny zostać usunięte:

List.Select(Table.ColumnNames(#"Zmieniono typ"), each List.Count(List.RemoveItems(Table.Column(#"Zmieniono typ", _), {null, ""})) = 0)

Ta funkcja wybiera z listy nazw kolumn tylko te, dla których liczba niepustych wartości jest równa 0.

Na końcu używamy funkcji Table.RemoveColumns, aby usunąć zidentyfikowane puste kolumny z naszej tabeli:

Table.RemoveColumns(#"Zmieniono typ", List.Select(Table.ColumnNames(#"Zmieniono typ"), each List.Count(List.RemoveItems(Table.Column(#"Zmieniono typ", _), {null, ""})) = 0))

Pełny kod do automatycznego usuwania pustych kolumn

Pełny kod, który można wkleić do niestandardowego kroku w Power Query, wygląda następująco:

= Table.RemoveColumns(#"Zmieniono Typ",
List.Select(
Table.ColumnNames(#"Zmieniono Typ"),
each List.Count(
List.RemoveMatchingItems(
Table.Column(#"Zmieniono Typ", _),
{null, ""}
)
) = 0
)
)

Pamiętaj, aby zastąpić "#"Zmieniono typ"" nazwą ostatniego kroku w twoim zapytaniu Power Query, przed dodaniem niestandardowego kroku do usuwania pustych kolumn.

Testowanie rozwiązania

Po zaimplementowaniu kodu, możemy przetestować jego działanie, zamykając edytor Power Query i ładując dane do arkusza Excel. Jeśli wszystko zostało poprawnie skonfigurowane, zobaczymy, że puste kolumny zostały automatycznie usunięte z naszego zestawu danych.

Możemy również dodać więcej danych lub zmienić nazwy niektórych kolumn, aby sprawdzić, czy nasze rozwiązanie działa poprawnie w różnych scenariuszach. Co ważne, jeśli kolumna zawiera jakiekolwiek niepuste wartości, nie zostanie usunięta, co potwierdza precyzyjne działanie naszego kodu.

Warto pamiętać, że przy aktualizacji danych może być konieczne dostosowanie niektórych kroków w Power Query, szczególnie jeśli zmieniły się nazwy kolumn lub struktura danych. Jednak sam mechanizm usuwania pustych kolumn będzie działał niezawodnie, dopóki odwołujemy się do właściwego kroku w naszym zapytaniu.