Liste în Power Query - cum, când și de ce BLOGUL SELF-SERVICE-BI

Limbajul M are așa-numitele valori structurate, cărora le aparțin listele, înregistrările și tabelele. Fiecare tip de valoare are scopuri specifice, iar această postare este destinată să ofere o introducere a listelor. Această postare face parte dintr-o serie despre liste, înregistrări și tabele din M. Am inclus câteva capturi de ecran cu codul M în această postare. Puteți descărca codul din capturile de ecran ca fișier txt aici. Descărcarea nu necesită o parolă. Dacă totuși vi se solicită parola OneDrive, schimbați browserul la Edge.

În M există două tipuri de valori: valorile primitive și structurate. Exemple pentru valorile primitive sunt:

  • "A",
  • 1,
  • Adevărat.

Ele sunt primitive în acest fel, încât nu sunt construite din alte valori. Spre deosebire de valorile primitive, am numit valori structurate în M, care sunt compuse din alte valori, primitive și structurate. O listă este una dintre acele valori structurate (celelalte sunt înregistrări și tabele) și este descrisă ca „o succesiune ordonată de valori”. O listă definită este introdusă cu o paranteză cu deschidere ". Chiar dacă liste poate fi gol (se pare că acest „<>”), listele sunt nu este limitat ca mărime, deoarece M acceptă liste infinit de mari.

Un exemplu de reprezentant foarte simplu al unei liste este:

Înainte de a arunca o privire mai detaliată asupra listelor cu ce sunt și la ce servesc, să discutăm de ce să folosim deloc listele.

În marea majoritate a cazurilor, o listă va fi utilizată ca produs intermediar pentru alte interogări. În orice caz, este extrem de rar ca o listă să fie încărcată în modelul de date.

Sunt mulți nativi funcții în M care oferă funcționalități utile și așteptați liste ca unul sau mai mulți dintre ei parametrii. Pentru aceste cazuri este important să știți cum să creați liste, astfel încât să puteți furniza acele funcții cu parametrii necesari într-un mod adecvat.

În plus, sunt multe funcții in m care returnează listele ca valori returnate. Din aceste motive, este necesar să știm cum să le abordăm pentru a utiliza limba M în siguranță.

Să aruncăm o privire asupra modului de creare a listelor.

O listă în M are de obicei un început și un sfârșit și, din experiența mea, există 3 căi in m pentru a crea o listă:

1. Utilizarea sintaxei de inițializare a listei cu acolade

Puteți defini o listă utilizând o paranteză buclă de deschidere „item-list” și o puteți încheia cu o paranteză buclă de închidere „>”. Cea mai simplă listă este o listă goală.

Liste goale

lista goală este cea mai simplă dintre toate listele, în care lista de articole este goală:

Un caz practic de utilizare a unei liste goale este, de exemplu, crearea unui tabel în modelul de date Power BI care conține doar măsuri. Spre deosebire de un tabel gol creat în Power Query (pe care îl puteți crea astfel: = #table (<>, <>)), care pur și simplu nu apare în modelul de date, un lista goală este importată ca tabel în modelul de date cu o coloană și fără rânduri. Pur și simplu ascundeți coloana rezultată în modelul de date și utilizați acest tabel gol ca tabel de măsuri.

când
Crearea unui tabel de măsuri, folosind o listă goală în M

O listă goală este, desigur, mai degrabă un caz special, deoarece listele conțin în mod normal valori, așa-numitele elemente.

Liste cu elemente separate prin virgulă

Pentru a crea un ne-gol listă, pot adăuga valori separate prin virgulă de orice tip la listă după cum urmează:

Crearea manuală a unei liste ne-goale

Dacă vreau să adaug un număr mare de valori contigue la o listă, definiția separată prin virgulă este destul de complexă. Dar există ajutor pentru asta ...

Liste cu numere contigue

De exemplu, dacă vreau să creez o listă care să afișeze întreg numere de la 1 la 100, Nu trebuie să adaug manual toate aceste numere pe listă. În schimb există urmând abrevierea:

Dacă, de exemplu, aș dori ca numerele întregi să fie listate de la 1 la 100, cu exceptia numărul 48 ar trebui să fie exclus, atunci acest lucru funcționează după cum urmează:

O astfel de succesiune de valori contigue nu trebuie să aibă mai mult de 2 ^ 31 (2.147.483.647) valori. De exemplu, priviți următoarea definiție a listei:

Datorită faptului că aici se face referire la o serie de numere mai mari de 2.147.483.647, se returnează următorul mesaj de eroare:

Numerele adiacente nu trebuie să fie pe termen nelimitat

Cu toate acestea, acest lucru nu înseamnă că lista în sine poate să nu aibă mai multe articole, deoarece așa cum am menționat deja, listele pot fi infinit de mari. Următoarea definiție returnează un rezultat valid:

Sintaxa „.” pentru un interval contiguu de numere întregi poate fi de asemenea aplicată personaje.

Liste cu caractere alăturate

Procedura pe care tocmai am arătat-o ​​pentru numerele consecutive este posibilă și pentru litere și caractere. De exemplu, este valid să se definească următoarea listă:

Rezultatul arată astfel:

Este posibil să nu fie surprinzător faptul că Power Query „știe” că după „a” apare „b”, dar uită-te la listă și la rezultatul acesteia:

Între literele „Z” și „a” există și un număr de personaje speciale. Deci, care este baza acestei liste și este un fel de ordine?

Listele de caractere se bazează pe Unicode

Funcția M Character.ToNumber () dezvăluie secretul:

Listele de caractere se bazează pe Unicode