Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power Query w Excelu, Power BI i Fabric
Kolumna z przykładów wybiera złą regułę - jak to sprawdzić i poprawić
Na ten problem trafiasz, gdy wyciągasz fragment tekstu, na przykład kod sklepu z numeru paragonu, bez pisania formuły. W Power Query kolumna z przykładów zgaduje regułę z tego, co wpiszesz, i po jednym przykładzie potrafi wybrać regułę, która działa tylko w części wierszy. Pokazujemy, jak rozpoznać złą regułę przed zatwierdzeniem, jak ją poprawić i co oznacza komunikat o braku pasującej transformacji.
Nowa kolumna wygląda dobrze w pierwszych wierszach, ale w innych zwraca ucięte albo błędne wartości. Przykład z kursu: z numeru paragonu w postaci WAW1-202601-00001 wyciągasz kod sklepu. Reguła „pierwsze cztery znaki” daje WAW1 i KRK2, ale gdyby pojawił się sklep z pięcioznakowym kodem, na przykład GDA10, z numeru GDA10-202601-00001 zostałoby GDA1. Sprawdziliśmy to w polskim Excelu: Text.Start z liczbą 4 zwróciło dla tych dwóch numerów WAW1 i GDA1, a Text.BeforeDelimiter z myślnikiem WAW1 i GDA10. Wynik jest błędny bez żadnego komunikatu.
Druga odsłona problemu to komunikat w trakcie wpisywania przykładów, gdy żadne przekształcenie nie pasuje do wszystkich przykładów naraz:
Nie można odnaleźć transformacji zgodnej z podanymi przykładami.
Zmień lub usuń istniejące przykłady przed określeniem nowych.Angielski oryginał to We could not find a transform that matches the examples you provided. Please change or remove the existing examples before specifying new ones.
Kolumna z przykładów nie zapamiętuje wpisanych wartości, tylko szuka przekształcenia, które daje je z kolumn źródłowych. Gdy Power Query je znajdzie, według dokumentacji Microsoft wypełnia pozostałe wiersze wynikami i pokazuje nad podglądem tekst formuły M, w kursie Przekształć: Text.BeforeDelimiter([Nr paragonu], "-"). Po zatwierdzeniu formuła trafia do kroku i działa na danych z kolejnych miesięcy, także tych, których nikt nie oglądał.
Jeden przykład może pasować do kilku reguł naraz: dla WAW1-202601-00001 wynik WAW1 dają i pierwsze cztery znaki, i tekst przed pierwszym myślnikiem. Dlatego w kursie dopisujemy drugi przykład z innej grupy danych. Druga granica: według dokumentacji kolumna z przykładów działa tylko na pierwszych 100 wierszach podglądu, więc nietypowy wiersz z dalszej części danych nie bierze udziału w doborze reguły.
Text.Start([Nr paragonu], 4), a fragmenty w danych mogą mieć różną długość, nie zatwierdzaj jeszcze kolumny.Text.BeforeDelimiter([Nr paragonu], "-"), czyli tekst przed pierwszym myślnikiem.Text.Start([Nr paragonu], 4) na Text.BeforeDelimiter([Nr paragonu], "-").
Na karcie Widok włącz Rozkład kolumn i Profil kolumny, przełącz profilowanie na cały zestaw danych i obejrzyj wartości nowej kolumny. Liczba wartości odrębnych powinna odpowiadać liczbie obiektów, które kolumna opisuje, na przykład sklepów, a w liście wartości filtra nie powinno być uciętych kodów. Dokładniejszy test: dodaj tymczasową kolumnę niestandardową z formułą = [Kod sklepu] <> Text.BeforeDelimiter([Nr paragonu], "-") i odfiltruj wartość true. W naszym teście taki filtr wskazał jedyny wiersz, w którym reguła czterech znaków się myliła.
Żeby problem nie wrócił, czytaj formułę nad siatką przy każdej kolumnie z przykładów i pamiętaj, że zatwierdzona reguła obejmie także przyszłe pliki. Jeśli w danych może zabraknąć ogranicznika, sprawdź i ten przypadek: Text.BeforeDelimiter("WAW1", "-") zwróciło w naszym teście cały tekst WAW1.
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...