Obsługa błędów w dodatku Power Query
W dodatku 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 kroku
Błąd na poziomie kroku uniemożliwia ładowanie zapytania i wyświetla składniki błędu w żółtym okienku.
- Przyczyna błędu: pierwsza sekcja przed dwukropkiem. W powyższym przykładzie przyczyną błędu jest Expression.Error.
- Komunikat o błędzie: sekcja bezpośrednio po przyczynie. W powyższym przykładzie komunikat o błędzie to Kolumna "Kolumna" tabeli nie została znaleziona.
- Szczegóły błędu: sekcja bezpośrednio po ciągu Details: . W powyższym przykładzie szczegóły błędu to Kolumna.
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 Przejdź do błędu , jeśli jest dostępny, aby wyświetlić pierwszy krok, w którym wystąpił błąd.
Nie można odnaleźć źródła — DataSource.Error
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 błąd DataSource.Error , ponieważ w swoim ś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. Jeśli przycisk Edytuj ustawienia jest dostępny w okienku błędu, możesz go wybrać i zmienić ścieżkę pliku.
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.
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. Pozwoli to na uruchomienie 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.
Ten błąd może być spowodowany wieloma przyczynami, takimi 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żliwi załadowania zapytania, ale wyświetla wartości błędów jako Błąd w komórce. Wybranie białego odstępu w komórce powoduje wyświetlenie okienka błędu poniżej podglądu danych.
Uwaga
Narzędzia profilowania danych mogą ułatwić identyfikowanie błędów na poziomie komórki za pomocą funkcji jakości kolumny. Więcej informacji: Narzędzia profilowania danych
Obsługa błędów na poziomie komórki
Podczas napotkania błędów na poziomie komórki dodatek Power Query udostępnia zestaw funkcji, które umożliwiają ich obsługę przez usunięcie, zastąpienie lub zachowanie błędów.
W następnych sekcjach podane przykłady będą używać 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.
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.
Wynikiem tej operacji będzie tabela, której szukasz.
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.
W oknie dialogowym Zastępowanie błędów wprowadź wartość 10, ponieważ chcesz zastąpić wszystkie błędy wartością 10.
Wynikiem tej operacji będzie tabela, której szukasz.
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 tym miejscu mogą być przydatne błędy Keep. 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.
Wynikiem tej operacji będzie tabela, której szukasz.
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 dodatku Power Query.
Błędy konwersji typu danych
Często wyzwalane podczas zmieniania typu danych kolumny w tabeli. Niektórych wartości znalezionych w kolumnie nie można przekonwertować 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.
Możliwe rozwiązania: po zidentyfikowaniu wiersza z błędem można zmodyfikować źródło danych, aby odzwierciedlić poprawną wartość, a nie na, albo zastosować operację Zastępowanie błędu, aby podać wartość dla wszystkich wartości NA, które powodują 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.
Możliwe rozwiązania: przed utworzeniem tej kolumny niestandardowej zmień typ danych kolumny Sales na tekst.
Zagnieżdżone wartości wyświetlane jako błędy
Podczas pracy z danymi, które zawierają zagnieżdżone wartości ustrukturyzowane (takie jak tabele, listy lub rekordy), czasami może wystąpić następujący błąd:
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 nieskalarne są automatycznie konwertowane na błędy.
- Jeśli kolumna zdefiniowana za pomocą
Any
typu danych zawiera wartości nieskalarne, takie wartości będą zgłaszane jako błędy podczas ładowania (np. w skoroszycie w programie Excel lub modelu danych w programie Power BI Desktop).
Możliwe rozwiązania:
- Usuń kolumnę zawierającą błąd lub ustaw typ danych innych
Any
niż dla takiej kolumny. - 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).