Blog JSystems - uwalniamy wiedzę!
Blog JSystems - uwalniamy wiedzę!
Power Query w Excelu, Power BI i Fabric
Expression.Error: Nie możemy przekonwertować wartości typu List na typ Text
Komunikat „Nie możemy przekonwertować wartości typu List na typ Text” widzi każdy, kto dzieli tekst funkcją Text.Split, wczytuje plik JSON z zagnieżdżonymi listami albo grupuje wiersze tak, że w komórce ląduje lista kodów. Funkcje tekstowe pracują na jednym tekście, a w komórce jest ich kilka. Pokazujemy, jak rozpoznać kolumnę z listami i jak zamienić listę na tekst albo na osobne wiersze.
Kolumna, na której liczy formuła, ma w komórkach napis List zamiast wartości. Formuła z funkcją tekstową, na przykład Text.Upper([Części]), daje Error w każdym wierszu, a kliknięcie w puste miejsce obok napisu pokazuje komunikat:
Expression.Error: Nie możemy przekonwertować wartości typu List na typ Text.Angielski oryginał to Expression.Error: We cannot convert a value of type List to type Text. Zapytanie się nie zatrzymuje, błąd siedzi w komórkach nowej kolumny. Sprawdziliśmy w Excelu kilka pokrewnych komunikatów, które mają tę samą przyczynę:
& dla typów Text i List. pojawia się, gdy listę doklejasz do tekstu operatorem łączenia,Text.Combine dostaje listę liczb zamiast tekstów.Oprócz wartości prostych, takich jak tekst czy liczba, Power Query ma wartości złożone: List, Record i Table. W siatce podglądu widać je jako klikalne napisy. Lista powstaje na przykład wtedy, gdy:
Text.Split([Nr paragonu], "-") zamienia WAW1-202601-00001 na listę trzech elementów,each [Kod produktu], zamiast je liczyć.Funkcje z rodziny Text oczekują jednego tekstu. Power Query nie zamienia listy na tekst sam, bo nie wie, czy wziąć pierwszy element, wszystkie, ani jakim znakiem je rozdzielić. Tę decyzję musisz podjąć Ty, a od niej zależy liczba wierszy wyniku.

Text.Combine(List.Transform([Ilości], Text.From), ","), przy czym List.Transform z Text.From jest potrzebne, gdy lista zawiera liczby.Text.Split([Nr paragonu], "-"){0} zwraca WAW1. Przy wycinaniu fragmentu tekstu prościej od razu użyć funkcji, która zwraca tekst, na przykład Text.BeforeDelimiter([Nr paragonu], "-"), bo lista w ogóle nie powstaje.each [Kod produktu] wpisz each Text.Combine([Kod produktu], ", "). W naszym teście sklep dostał wtedy jeden tekst BEX-1021, KEL-1029.W poprawionej kolumnie nie ma już napisów List ani Error, a ikona typu w nagłówku pokazuje tekst. Po rozwinięciu do nowych wierszy porównaj liczbę wierszy z oczekiwaną: zamówienia razy liczba ich pozycji. Liczbę wierszy pokaże profil kolumny po przełączeniu profilowania na cały zestaw danych.
Po rozwinięciu do nowych wierszy kolumny z poziomu zamówienia powtarzają się w każdym wierszu pozycji. Jeśli w tabeli jest wartość całego zamówienia, jej suma po rozwinięciu będzie zawyżona, więc sumuj wartości pozycji, a wartość zamówienia trzymaj w osobnym zapytaniu. Żeby błąd nie wrócił, decyzję o liście podejmuj od razu w kroku, w którym lista powstaje, a nie w formułach kilka kroków dalej.
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...