Data Analysis Expressions (DAX) sună puțin intimidant la început, dar nu lăsați numele să vă păcălească. Noțiunile de bază despre DAX sunt foarte ușor de înțeles. Primul lucru mai întâi - DAX NU este un limbaj de programare. DAX este un limbaj pentru formule. Puteți utiliza DAX pentru a defini calcule particularizate pentru Coloane calculateși măsuri ( denumite și câmpuri calculate). DAX include unele dintre funcțiile utilizate în formulele Excel și funcții suplimentare proiectate să funcționeze cu datele relaționale și să efectueze agregarea dinamică.
Înțelegerea formulelor DAX
Formulele DAX sunt foarte asemănătoare cu formulele Excel. Pentru a crea unul, tastați un semn egal, urmat de un nume de funcție sau o expresie și orice valori sau argumente necesare. La fel ca Excel, DAX furnizează o varietate de funcții pe care le puteți utiliza pentru a lucra cu șiruri, a efectua calcule utilizând date și ore sau a crea valori condiționale.
Cu toate acestea, formulele DAX sunt diferite în următoarele moduri importante:
-
Dacă doriți să particularizați calculele pe rând, DAX include funcții care vă permit să utilizați valoarea rândului curent sau o valoare asociată pentru a efectua calcule care variază în funcție de context.
-
DAX include un tip de funcție care returnează un tabel ca rezultat, nu o singură valoare. Aceste funcții pot fi utilizate pentru a furniza intrări altor funcții.
-
Funcții time intelligenceîn DAX permit calcule utilizând intervale de date și compară rezultatele în perioade paralele.
Unde se utilizează formulele DAX
Puteți crea formule în Power Pivot fie în olumecalculate, fie în câmpurif calculate.
Coloane calculate
O coloană calculată este o coloană pe care o adăugați la un tabel Power Pivot existent. În loc să lipiți sau să importați valori în coloană, creați o formulă DAX care definește valorile de coloană. Dacă includeți Power Pivot tabel într-un raport PivotTable (sau PivotChart), coloana calculată poate fi utilizată la fel ca orice altă coloană de date.
Formulele din coloanele calculate seamănă foarte mult cu formulele pe care le creați în Excel. Totuși, spre deosebire de Excel, nu puteți crea o formulă diferită pentru rânduri diferite într-un tabel; în schimb, formula DAX se aplică automat la întreaga coloană.
Atunci când o coloană conține o formulă, valoarea se calculează pentru fiecare rând. Rezultatele sunt calculate pentru coloană imediat ce creați formula. Valorile de coloană sunt recalculate numai dacă datele subiacente sunt reîmprospătate sau dacă se utilizează recalcularea manuală.
Puteți crea coloane calculate care se bazează pe măsuri și alte coloane calculate. Totuși, evitați să utilizați același nume pentru o coloană calculată și o măsură, deoarece acest lucru poate duce la rezultate derutante. Atunci când faceți referire la o coloană, se recomandă să utilizați o referință de coloană complet calificată, pentru a evita invocarea accidentală a unei măsuri.
Pentru informații mai detaliate, consultați Coloane calculate în Power Pivot.
Măsurile
O măsură este o formulă creată special pentru a fi utilizată într-un raport PivotTable (sau PivotChart) care utilizează date Power Pivot. Măsurile se pot baza pe funcții de agregare standard, cum ar fi COUNT sau SUM, sau vă puteți defini propria formulă utilizând DAX. O măsură este utilizată în zona Valori dintr-un raport PivotTable. Dacă doriți să plasați rezultatele calculate într-o altă zonă a unui raport PivotTable, utilizați în schimb o coloană calculată.
Atunci când definiți o formulă pentru o măsură explicită, nu se întâmplă nimic până când nu adăugați măsura într-un raport PivotTable. Când adăugați măsura, formula este evaluată pentru fiecare celulă din zona Valori a raportului PivotTable. Deoarece se creează un rezultat pentru fiecare combinație de anteturi de rând și coloană, rezultatul măsurii poate fi diferit în fiecare celulă.
Definiția măsurii pe care o creați este salvată cu tabelul său de date sursă. Aceasta apare în lista Câmpuri PivotTable și este disponibilă tuturor utilizatorilor registrului de lucru.
Pentru informații mai detaliate, consultați Măsuri în Power Pivot.
Crearea formulelor utilizând bara de formule
Power Pivot, cum ar fi Excel, oferă o bară de formule pentru a simplifipa crearea și editarea formulelor și funcționalitatea de Completare automată, pentru a minimiza erorile de tastare și de sintaxă.
Pentru a introduce numele unui tabel Începeți să tastați numele tabelului. Completare automată formulă furnizează o listă verticală care conține nume valide care încep cu acele litere.
Pentru a introduce numele unei coloane Tastați o paranteză, apoi alegeți coloana din lista de coloane din tabelul curent. Pentru o coloană din alt tabel, începeți să tastați primele litere ale numelui tabelului, apoi alegeți coloana din lista verticală Completare automată.
Pentru mai multe detalii și o prezentare generală a modului de creare a formulelor, consultați Crearea de formule pentru calcule în Power Pivot.
Sfaturi pentru utilizarea Completării automate
Puteți utiliza Completare automată formulă în mijlocul unei formule existente cu funcții imbricate. Textul de dinaintea punctului de inserare este utilizat pentru a afișa valorile în lista verticală și tot textul de după punctul de inserare rămâne neschimbat.
Numele definite pe care le creați pentru constante nu se afișează în lista verticală Completare automată, dar le puteți tasta în continuare.
Power Pivot nu adaugă paranteza de închidere a funcțiilor și nu se potrivește automat cu parantezele. Trebuie să vă asigurați că fiecare funcție este corectă sintactic sau că nu puteți să salvați sau să utilizați formula.
Utilizarea funcțiilor multiple într-o formulă
Puteți imbrica funcții, ceea ce înseamnă că utilizați rezultatele unei funcții ca argument al altei funcții. Puteți imbrica până la 64 de niveluri de funcții în coloane calculate. Cu toate acestea, imbricarea poate îngreuna crearea sau depanarea formulelor.
Multe funcții DAX sunt proiectate pentru a fi utilizate doar ca funcții imbricate. Aceste funcții returnează un tabel care nu poate fi salvat direct ca rezultat; ar trebui să fie furnizată ca intrare pentru o funcție de tabel. De exemplu, funcțiile SUMX, AVERAGEX și MINX necesită un tabel ca prim argument.
Notă: Există unele limite pentru imbricarea funcțiilor în cadrul măsurilor, pentru a vă asigura că performanța nu este afectată de numeroasele calcule necesare dependențelor între coloane.
Compararea funcțiilor DAX și a funcțiilor Excel
Biblioteca de funcții DAX se bazează pe biblioteca de funcții Excel, dar bibliotecile au multe diferențe. Această secțiune rezumă diferențele și asemănările dintre funcțiile Excel și funcțiile DAX.
-
Multe funcții DAX au același nume și același comportament general ca funcțiile Excel, dar au fost modificate pentru a prelua diferite tipuri de intrări și, în unele cazuri, pot returna un alt tip de date. În general, nu puteți să utilizați funcții DAX într-o formulă Excel sau să utilizați formule Excel în Power Pivot fără modificări.
-
Funcțiile DAX nu iau niciodată ca referință o referință de celulă sau o zonă, dar în schimb funcțiile DAX iau ca referință o coloană sau un tabel.
-
Funcțiile DAX pentru dată și oră returnează un tip de date dată-oră. În schimb, funcțiile de dată și oră din Excel returnează un număr întreg care reprezintă o dată calendaristică ca număr serial.
-
Multe dintre noile funcții DAX fie returnează un tabel de valori, fie efectuează calcule pe baza unui tabel de valori ca intrare. În schimb, Excel nu are funcții care să returneze un tabel, dar unele funcții pot funcționa cu matrice. Capacitatea de a face referire cu ușurință la tabele și coloane complete este o caracteristică nouă în Power Pivot.
-
DAX oferă funcții de căutare noi, similare cu funcțiile de căutare matrice și vector din Excel. Cu toate acestea, funcțiile DAX necesită stabilirea unei relații între tabele.
-
Se așteaptă ca datele dintr-o coloană să fie întotdeauna de același tip de date. Dacă datele nu sunt de același tip, DAX transformă întreaga coloană în tipul de date care cuprinde cel mai bine toate valorile.
Tipuri de date DAX
Puteți importa date într-un model de date Power Pivot din mai multe surse de date diferite, care pot accepta tipuri de date diferite. Atunci când importați sau încărcați datele, apoi utilizați datele în calcule sau în rapoarte PivotTable, datele se transformă într-unul dintre tipurile de date Power Pivot. Pentru o listă a tipurilor de date, consultați Tipurile de date din modelele de date.
Tipul de date de tabel este un nou tip de date din DAX, care este utilizat ca intrare sau ieșire pentru multe funcții noi. De exemplu, funcția FILTER preia un tabel ca intrare și ieșire din alt tabel care conține doar rândurile care îndeplinesc condițiile de filtrare. Prin combinarea funcțiilor de tabel cu funcții de agregare, puteți efectua calcule complexe asupra seturilor de date definite dinamic. Pentru mai multe informații, consultați Agregări în Power Pivot.
Formule și modelul relațional
Fereastra Power Pivot este o zonă în care puteți să lucrați cu mai multe tabele de date și să conectați tabelele într-un model relațional. În acest model de date, tabelele sunt conectate între ele prin relații, care vă permit să creați corelații cu coloanele din alte tabele și să creați calcule mai interesante. De exemplu, puteți să creați formule care însumează valori pentru un tabel asociat, apoi să salvați acea valoare într-o singură celulă. Sau, pentru a controla rândurile din tabelul asociat, puteți aplica filtre la tabele și coloane. Pentru mai multe informații, consultați Relațiile între tabelele dintr-un model de date.
Deoarece puteți lega tabele utilizând relații, rapoartele PivotTable pot include și date din mai multe coloane care provin din tabele diferite.
Totuși, deoarece formulele pot funcționa cu tabele și coloane întregi, trebuie să proiectați calcule diferit față de cele din Excel.
-
În general, o formulă DAX dintr-o coloană se aplică întotdeauna la întregul set de valori din coloană (niciodată la câteva rânduri sau celule).
-
Tabelele din Power Pivot trebuie să aibă întotdeauna același număr de coloane pe fiecare rând și toate rândurile dintr-o coloană trebuie să conțină același tip de date.
-
Atunci când tabelele sunt conectate printr-o relație, vă așteptați să vă asigurați că cele două coloane utilizate ca taste au valori care se potrivesc, în cea mai mare parte. Deoarece Power Pivot nu impune integritatea referențială, este posibil să aveți valori care nu se potrivesc într-o coloană cheie și să creați în continuare o relație. Totuși, prezența valorilor necompletate sau care nu se potrivesc poate afecta rezultatele formulelor și aspectul rapoartelor PivotTable. Pentru mai multe informații, consultați Căutările în formulele Power Pivot.
-
Când legați tabele utilizând relații, măriți domeniul sau cpetext în care sunt evaluate formulele. De exemplu, formulele dintr-un raport PivotTable pot fi afectate de orice filtre sau titluri de coloană și de rând din Raportul PivotTable. Puteți să scrieți formule care să manipuleze contextul, dar contextul poate determina, de asemenea, modificarea rezultatelor în moduri pe care este posibil să nu le anticipați. Pentru mai multe informații, consultați Contextul în formulele DAX.
Actualizarea rezultatelor formulelor
Data r efresh and recalculation are two separate but related operations that you should understand when designing a data model that contains complex formulas, large amounts of data, or data that is obtained from external data sources.
Reîmprospătarea datelor este procesul de actualizare a datelor din registrul de lucru cu date noi de la o sursă de date externă. Puteți reîmprospăta datele manual la intervalele pe care le specificați. Sau, dacă ați publicat registrul de lucru pe un site SharePoint, puteți planifica o reîmprospătare automată din surse externe.
Recalcularea este procesul de actualizare a rezultatelor formulelor pentru a reflecta modificările formulelor propriu-zise și pentru a reflecta modificările respective în datele subiacente. Recalcularea poate afecta performanța în următoarele moduri:
-
Pentru o coloană calculată, rezultatul formulei trebuie să fie întotdeauna recalculat pentru întreaga coloană, de fiecare dată când modificați formula.
-
Pentru o măsură, rezultatele unei formule nu sunt calculate până când măsura nu este plasată în contextul raportului PivotTable sau PivotChart. Formula va fi recalculată, de asemenea, atunci când modificați orice titlu de rând sau de coloană care afectează filtrele din date sau atunci când reîmprospătați manual raportul PivotTable.
Depanarea formulelor
Erori la scrierea formulelor
Dacă primiți o eroare atunci când definiți o formulă, formula poate conține fie o eroare sinactică, fie o eroare semantică, fie o eroare de calcul.
Erorile sinactice sunt cel mai simplu de rezolvat. Acestea implică de obicei o paranteză lipsă sau virgulă. Pentru ajutor cu sintaxa funcțiilor individuale, consultați Referința funcției DAX.
Celălalt tip de eroare apare atunci când sintaxa este corectă, dar valoarea sau coloana la care se face referire nu are sens în contextul formulei. Astfel de erori semantice și de calcul pot fi cauzate de oricare dintre următoarele probleme:
-
Formula se referă la o coloană, un tabel sau o funcție care nu există.
-
Formula pare să fie corectă, dar atunci când motorul de date preia datele, găsește o nepotrivire de tip și ridică o eroare.
-
Formula transmite un număr incorect sau un tip incorect de parametri unei funcții.
-
Formula se referă la o altă coloană care are o eroare și, prin urmare, valorile sale sunt nevalide.
-
Formula se referă la o coloană care nu a fost procesată, ceea ce înseamnă că are metadate, dar nu există date reale de utilizat pentru calcule.
În primele patru cazuri, DAX semnalizează întreaga coloană care conține formula nevalidă. În ultimul caz, DAX estompează coloana pentru a indica faptul că respectiva coloană este într-o stare neprocesată.
Rezultate incorecte sau neobișnuite la clasificarea sau ordonarea valorilor coloanelor
Atunci când ierarhizați sau ordonați o coloană care conține valoarea NaN (nu este un număr), este posibil să primiți rezultate greșite sau neașteptate. De exemplu, atunci când un calcul împarte 0 la 0, se returnează un rezultat NaN.
Aceasta deoarece motorul de formule efectuează ordonarea și clasificarea prin compararea valorilor numerice; cu toate acestea, NaN nu poate fi comparat cu alte numere din coloană.
Pentru a asigura rezultate corecte, puteți utiliza instrucțiuni condiționale utilizând funcția IF pentru a testa valorile NaN și a returna o valoare numerică 0.
Compatibilitatea cu modelele tabelare Analysis Services și modul DirectQuery
În general, formulele DAX pe care le construiți în Power Pivot sunt complet compatibile cu modelele tabelare Analysis Services. Totuși, dacă migrați modelul de Power Pivot într-o instanță Analysis Services, apoi implementați modelul în modul DirectQuery, există câteva limitări.
-
Unele formule DAX pot returna rezultate diferite dacă implementați modelul în modul DirectQuery.
-
Unele formule pot provoca erori de validare atunci când implementați modelul în modul DirectQuery, deoarece formula conține o funcție DAX care nu este acceptată pentru o sursă de date relațională.
Pentru mai multe informații, consultați Documentația de modelare tabelară Analysis Services din SQL Server 2012 BooksOnline.