Udostępnij za pośrednictwem


Radzenie sobie z błędami w Power Query

W programie Power Query można napotkać dwa typy błędów:

  • Błędy na poziomie kroku
  • Błędy na poziomie komórki

Ten artykuł zawiera sugestie dotyczące naprawiania najbardziej typowych błędów, które można znaleźć na każdym poziomie, oraz opisuje przyczynę błędu, komunikat o błędzie i szczegóły błędu dla każdego z nich.

Błąd na poziomie danego kroku

Błąd na poziomie kroku uniemożliwia ładowanie zapytania i wyświetla składniki błędu w żółtym okienku.

Zrzut ekranu przedstawiający błąd na poziomie kroku, w którym nie znaleziono kolumny.

  • Przyczyna błędu: pierwsza sekcja przed dwukropkiem. W poprzednim przykładzie przyczyną błędu jest Expression.Error.
  • Komunikat o błędzie: sekcja znajdująca się bezpośrednio po opisie przyczyny. W poprzednim przykładzie komunikat o błędzie to kolumna „Kolumna” tabeli nie została znaleziona.
  • Szczegóły błędu: sekcja znajdująca się bezpośrednio po ciągu znaków 'Details:'. W poprzednim przykładzie szczegół błędu to Kolumna.

Usługa Power Query Online wyświetla nieco inne szczegóły. Szczegóły błędu to wciąż Column, ale komunikat o błędzie online zawiera również przyczynę błędu (Expression.Error) i kod błędu (10224).

Zrzut ekranu pokazujący błąd na poziomie etapu online, w którym nie znaleziono kolumny.

Typowe błędy na poziomie kroku

We wszystkich przypadkach zalecamy zapoznanie się z przyczyną błędu, komunikatem o błędzie i szczegółami błędu, aby zrozumieć, co powoduje błąd. Możesz wybrać przycisk Pokaż szczegóły , jeśli jest dostępny, aby wyświetlić więcej szczegółów na temat błędu.

Zrzut ekranu przedstawiający komunikat o błędzie z wyróżnionym przyciskiem Pokaż szczegóły

Nie można odnaleźć źródła – Źródło danych: Nie znaleziono

Ten błąd występuje często, gdy źródło danych jest niedostępne dla użytkownika, użytkownik nie ma poprawnych poświadczeń dostępu do źródła danych lub źródło zostało przeniesione do innego miejsca.

Przykład: masz zapytanie z kafelka tekstowego znajdującego się na dysku D i utworzone przez użytkownika A. Użytkownik A udostępnia zapytanie użytkownikowi B, który nie ma dostępu do dysku D. Gdy ta osoba spróbuje wykonać zapytanie, otrzyma element DataSource.NotFound , ponieważ w swoim środowisku nie ma dysku D.

Zrzut ekranu przedstawiający błąd źródła danych, który nie może odnaleźć pliku, ponieważ w bieżącym środowisku nie ma dysku D.

Możliwe rozwiązania: możesz zmienić ścieżkę pliku tekstowego na ścieżkę, do której obaj użytkownicy mają dostęp. Jako użytkownik B możesz zmienić ścieżkę pliku na lokalną kopię tego samego pliku tekstowego.

Nie można odnaleźć kolumny tabeli

Ten błąd jest często wyzwalany, gdy krok wykonuje bezpośrednie odwołanie do nazwy kolumny, która nie istnieje w zapytaniu.

Przykład: masz zapytanie z pliku tekstowego, w którym jedna z nazw kolumn to Kolumna. W zapytaniu istnieje krok, który zmienia nazwę tej kolumny na Date. Nastąpiła jednak zmiana oryginalnego pliku tekstowego i nie ma już nagłówka kolumny o nazwie Kolumna , ponieważ została ręcznie zmieniona na Date. Dodatek Power Query nie może odnaleźć nagłówka kolumny o nazwie Kolumna, więc nie może zmienić nazwy żadnych kolumn. Zostanie wyświetlony błąd pokazany na poniższej ilustracji.

Zrzut ekranu przedstawiający błąd wyrażenia, w którym nie znaleziono kolumny tabeli, ponieważ nazwa kolumny została ręcznie zmieniona.

Możliwe rozwiązania: w tym przypadku istnieje wiele rozwiązań, ale wszystkie te rozwiązania zależą od tego, co chcesz zrobić. W tym przykładzie, ponieważ prawidłowy nagłówek kolumny Date już pochodzi z pliku tekstowego, możesz usunąć krok, który zmienia nazwę kolumny. Ta zmiana umożliwia uruchamianie zapytania bez tego błędu.

Inne typowe błędy na poziomie kroku

Podczas łączenia lub scalania danych między wieloma źródłami danych może wystąpić błąd Formula.Firewall , taki jak pokazany na poniższej ilustracji.

Zrzut ekranu przedstawiający błąd zapory formuły z informacją, że zapytanie odwołuje się do innych zapytań lub kroków, więc może nie uzyskiwać bezpośredniego dostępu do źródła danych.

Ten błąd występuje z różnych powodów, takich jak poziomy prywatności danych między źródłami danych lub sposób łączenia lub scalania tych źródeł danych. Aby uzyskać więcej informacji na temat diagnozowania tego problemu, zobacz Zapora prywatności danych.

Błąd na poziomie komórki

Błąd na poziomie komórki nie uniemożliwia załadowania zapytania, ale wyświetla wartości błędów jako Błąd w komórce. Wybranie białej przestrzeni w komórce powoduje wyświetlenie panelu błędu poniżej podglądu danych.

Zrzut ekranu przedstawiający wyświetlanie komunikatu o błędzie przez wybranie białych znaków w komórce tabeli zawierającej błąd.

Uwaga / Notatka

Narzędzia do profilowania danych mogą ułatwić identyfikowanie błędów na poziomie komórki dzięki funkcji oceny jakości kolumny. Aby uzyskać więcej informacji, zobacz Narzędzia profilowania danych.

Obsługa błędów na poziomie komórki

Jeśli napotkasz jakiekolwiek błędy na poziomie komórki, Power Query zapewnia zestaw funkcji do ich obsługi przez usunięcie, zastąpienie lub zachowanie błędów.

W następnych sekcjach podane przykłady używają tego samego przykładowego zapytania co punkt początkowy. W tym zapytaniu masz kolumnę Sales zawierającą jedną komórkę z błędem spowodowanym błędem konwersji. Wartość wewnątrz tej komórki to NA, ale po przekształceniu tej kolumny na liczbę całkowitą dodatek Power Query nie może przekonwertować wartości NA na liczbę, dlatego zostanie wyświetlony następujący błąd.

Zrzut ekranu przedstawiający błąd formatu danych, zawierający błąd „nie można przekonwertować na typ danych” w okienku błędu.

Usuwanie błędów

Aby usunąć wiersze z błędami w dodatku Power Query, najpierw wybierz kolumnę zawierającą błędy. Na karcie Narzędzia główne w grupie Zmniejsz wiersze wybierz pozycję Usuń wiersze. Z menu rozwijanego wybierz pozycję Usuń błędy.

Zrzut ekranu przedstawiający przycisk Usuń błędy na karcie Narzędzia główne.

Wynik tej operacji daje poniższą tabelę.

Zrzut ekranu przedstawiający tabelę, która wcześniej zawierała pięć wierszy, zawiera teraz wiersz zawierający usunięty błąd, pozostawiając cztery wiersze w tabeli.

Zastępowanie błędów

Jeśli zamiast usuwać wiersze z błędami, możesz również zastąpić błędy stałą wartością. Aby zastąpić wiersze o błędach, najpierw wybierz kolumnę zawierającą błędy. Na karcie Przekształć w grupie Dowolna kolumna wybierz pozycję Zamień wartości. Z menu rozwijanego wybierz pozycję Zamień błędy.

Zrzut ekranu przedstawiający przycisk Zamień błędy na karcie Przekształć.

W oknie dialogowym Zastępowanie błędów wprowadź wartość 10 , ponieważ chcesz zastąpić wszystkie błędy wartością 10.

Zrzut ekranu przedstawiający okno dialogowe zastępowania błędów z wartością ustawioną na 10.

Wynik tej operacji daje poniższą tabelę.

Zrzut ekranu przedstawiający tabelę, w której trzeci wiersz zawierał błąd w kolumnie Sales (Sprzedaż) został zastąpiony wartością 10.

Zachowaj błędy

Dodatek Power Query może służyć jako dobre narzędzie do inspekcji w celu zidentyfikowania wierszy z błędami, nawet jeśli nie naprawisz błędów. W takiej sytuacji błędy keep mogą być przydatne. Aby zachować wiersze z błędami, najpierw wybierz kolumnę zawierającą błędy. Na karcie Narzędzia główne w grupie Zmniejsz wiersze wybierz pozycję Zachowaj wiersze. Z menu rozwijanego wybierz pozycję Zachowaj błędy.

Zrzut ekranu przedstawiający przycisk Zachowaj błędy na karcie Strona główna.

Wynik tej operacji daje poniższą tabelę.

Zrzut ekranu przedstawiający końcową tabelę, która przechowuje tylko wiersze zawierające błędy.

Typowe błędy na poziomie komórki

Podobnie jak w przypadku dowolnego błędu na poziomie kroku, zalecamy przyjrzenie się bliżej przyczynom błędów, komunikatom o błędach i szczegółom błędu podanym na poziomie komórki, aby zrozumieć, co powoduje błędy. W poniższych sekcjach omówiono niektóre z najczęstszych błędów na poziomie komórki w Power Query.

Błędy konwersji typu danych

Często wyzwalane podczas zmieniania typu danych kolumny w tabeli. Nie można przekonwertować niektórych wartości w kolumnie na żądany typ danych.

Przykład: masz zapytanie zawierające kolumnę o nazwie Sales(Sprzedaż). Jedna komórka w tej kolumnie ma wartość NA jako wartość komórki, a pozostałe mają liczby całkowite jako wartości. Decydujesz się przekonwertować typ danych kolumny z tekstu na liczbę całkowitą, ale komórka z wartością NA powoduje błąd.

Zrzut ekranu przedstawiający szczegóły błędu

Możliwe rozwiązania: Po zidentyfikowaniu wiersza z błędem, można zmodyfikować źródło danych, aby odzwierciedlić poprawną wartość zamiast NA, albo zastosować operację Zastępowanie błędu, aby podać wartość dla każdej wartości NA, która powoduje błąd.

Błędy operacji

Podczas próby zastosowania operacji, która nie jest obsługiwana, na przykład pomnożenie wartości tekstowej przez wartość liczbową, występuje błąd.

Przykład: chcesz utworzyć kolumnę niestandardową dla zapytania, tworząc ciąg tekstowy zawierający frazę "Total Sales:" połączoną z wartością z kolumny Sales . Wystąpił błąd, ponieważ operacja łączenia obsługuje tylko kolumny tekstowe, a nie liczbowe.

Zrzut ekranu przedstawiający błąd wyrażenia w okienku błędu spowodowany próbą zastosowania operatora logicznego AND do tekstu i liczby z kolumny Sprzedaży.

Możliwe rozwiązania: przed utworzeniem tej kolumny niestandardowej zmień typ danych kolumny Sales na tekst.

Zrzut ekranu przedstawiający tabelę z kolumną sales przekonwertowaną z liczby na typ tekstowy oraz nową kolumnę zawierającą oba wyrażenia.

Zagnieżdżone wartości wyświetlane jako błędy

Podczas pracy z danymi zawierającymi zagnieżdżone wartości ustrukturyzowane (takie jak tabele, listy lub rekordy) może wystąpić następujący błąd:

Zrzut ekranu przedstawiający błąd dla zagnieżdżonych wartości wywołany działaniem zapory formuły.

Expression.Error: We cannot return a value of type {value} in this context

Details: In the past we would have returned a text value of {value}, but we now return this error. Please see https://go.microsoft.com/fwlink/?linkid=2099726 for more information.

Te błędy zwykle występują z dwóch powodów:

  • Gdy zapora prywatności danych buforuje źródło danych, zagnieżdżone wartości niemające prostych typów są automatycznie zamieniane na błędy.
  • Gdy kolumna zdefiniowana za pomocą Any typu danych zawiera wartości nieskalarne, takie wartości są zgłaszane jako błędy podczas ładowania (np. w skoroszycie programu Excel lub modelu danych programu Power BI Desktop).

Możliwe rozwiązania:

  • Usuń kolumnę zawierającą błąd lub ustaw dla niej typ danych inny niż Any.
  • Zmień poziomy prywatności źródeł danych na taki, który umożliwia ich łączenie bez buforowania.
  • Spłaszczanie tabel przed wykonaniem scalania w celu wyeliminowania kolumn zawierających zagnieżdżone wartości ustrukturyzowane (takie jak tabela, rekord lub lista).