Introducere rapidă: Aflați noțiunile de bază despre DAX în 30 de minute

Se aplică la
Excel pentru Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Acest articol de pornire rapidă este destinat utilizatorilor începători în Power Pivot în Excel sau în proiectele cu model tabelar create în SQL Server Data Tools. Aceasta are rolul să vă ofere o introducere rapidă și simplă despre modul în care puteți utiliza DAX (Data Analysis Expressions) pentru a rezolva o serie de probleme de bază analitice și de modelare a datelor. Acest subiect include informații conceptuale, o serie de activități pe care le puteți finaliza și câteva teste pentru a testa ceea ce ați învățat. După ce terminați acest subiect, ar trebui să înțelegeți bine conceptele fundamentale de bază din DAX.

Ce este DAX?

DAX este o colecție de funcții, operatori și constante care pot fi utilizate într-o formulă sau expresie pentru a calcula și a returna una sau mai multe valori. Mai simplu, DAX vă ajută să creați informații noi din datele aflate deja în modelul dvs.

De ce este atât de important DAX?

Este simplu să creați un registru de lucru și să importați unele date în acesta. Puteți chiar să creați rapoarte PivotTable sau PivotChart care afișează informații importante fără a utiliza formule DAX. Dar ce se întâmplă dacă trebuie să analizați datele critice de vânzări din mai multe categorii de produse și pentru intervale de date diferite? Sau trebuie să combinați date importante de inventar din mai multe tabele în diferite surse de date? Formulele DAX oferă această capacitate și multe alte capacități importante. Faptul că aflați cum să creați formule DAX eficiente vă va ajuta să profitați la maximum de date. Când obțineți informațiile de care aveți nevoie, puteți începe să rezolvați problemele reale de afaceri care vă afectează profitul. Acesta este Business Intelligence, iar DAX vă va ajuta să ajungeți acolo.

Cerințe preliminare

Este posibil să fiți familiarizat deja cu crearea formulelor în Microsoft Excel. Aceste cunoștințe vor fi de ajutor în înțelegerea DAX, dar chiar dacă nu aveți experiență cu formulele Excel, conceptele descrise aici vă vor ajuta să începeți imediat să creați formule DAX și să rezolvați imediat probleme BI din lumea reală.

Ne vom concentra în mod specific pe înțelegerea formulelor DAX utilizate în calcule. Ar trebui să fiți deja familiarizat cu conceptele fundamentale ale coloanelor calculate și ale măsurilor (cunoscute și sub numele de câmpuri calculate), ambele fiind descrise în Ajutorul Power Pivot. De asemenea, ar trebui să fiți familiarizat cu mediul și instrumentele de creare Power Pivot în Excel.

Exemplu de registru de lucru

Cea mai bună metodă de a învăța DAX este să creați câteva formule de bază, să-l utilizați cu câteva date reale și să vedeți singur rezultatele. Exemplele și activitățile de aici utilizează registrul de lucru Contoso Sample DAX Formulas.xlsx. Puteți descărca registrul de lucru de la http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409. După ce ați descărcat registrul de lucru pe computer, deschideți-l și deschideți fereastra Power Pivot.

Să începem!

Vom încadra DAX în jurul a trei concepte fundamentale foarte importante: sintaxă, funcții și context. Desigur, există și alte concepte importante în DAX, dar înțelegerea acestor trei concepte va oferi cea mai bună bază pe care să vă dezvoltați competențele DAX.

Sintaxă

Înainte de a vă crea propriile formule, să aruncăm o privire asupra sintaxei formulelor DAX. Sintaxa include diferitele elemente care alcătuiesc o formulă sau, mai simplu, modul în care este scrisă formula. De exemplu, să vedem o formulă DAX simplă utilizată pentru a crea date (valori) noi pentru fiecare rând dintr-o coloană calculată, numită Margine, într-un tabel VânzăriDate: (culorile textului formulei sunt doar în scop ilustrativ)

Formulă pentru coloana calculată

Sintaxa acestei formule include următoarele elemente:

  1. Operatorul semn egal (=) indică începutul formulei, iar atunci când această formulă este calculată, va returna un rezultat sau o valoare. Toate formulele care calculează o valoare vor începe cu semnul egal.
  2. Coloana la care se face referire [CantitateVânzări] conține valorile din care dorim să scădem. O referință de coloană dintr-o formulă este întotdeauna încadrată de paranteze []. Spre deosebire de formulele Excel care fac referire la o celulă, o formulă DAX face întotdeauna referire la o coloană.
  3. Este operatorul matematic de scădere (-).
  4. Coloana la care se face referire [TotalCost] conține valorile pe care dorim să le scădem din valorile din coloana [CantitateVânzări].

Atunci când încercați să înțelegeți cum să citiți o formulă DAX, adesea este util să împărțiți fiecare dintre elemente într-o limbă la care gândiți și vorbiți în fiecare zi. De exemplu, puteți citi această formulă ca:

În FactSalestable, pentru fiecare rând din coloana calculată Margine, calculați (=) o valoare scăzând (-) valorile din coloana [CostTotal] din valorile din coloana [CantitateVânzări].

Să examinăm un alt tip de formulă, una care este utilizată într-o anumită măsură:

Formulă pentru coloana calculată

Această formulă include următoarele elemente de sintaxă:

  1. Numele măsurii: Suma volumului vânzărilor. Formulele pentru măsuri pot include numele măsurii, urmat de două puncte, urmat de formula de calcul.
  2. Operatorul semn egal (=) indică începutul formulei de calcul. Când este calculat, va returna un rezultat.
  3. Funcția SUM adună toate numerele din coloana [CantitateVânzări]. Veți afla mai multe despre funcții mai târziu.
  4. Paranteza () încadrează unul sau mai multe argumente. Toate funcțiile necesită cel puțin un argument. Un argument transmite o valoare unei funcții.
  5. Tabelul la care se face referire: FactSales.
  6. Coloana menționată ca referință [CantitateVânzări] din tabelul VânzăriReale. Cu acest argument, funcția SUM știe în ce coloană să agrege o sumă.

Puteți citi această formulă ca:

Pentru măsura numită Sumă volum vânzări, calculați (=) suma valorilor din coloana [CantitateVânzări] din VânzăriVizibil.

Atunci când este plasată în zona de fixare Valori dintr-o listă de câmpuri PivotTable, această măsură calculează și returnează valorile definite de fiecare celulă din raportul PivotTable, de exemplu, Telefoanele mobile din SUA.

Observați că există câteva lucruri diferite în legătură cu această formulă în comparație cu formula pe care am utilizat-o pentru coloana calculată Marjă. Mai exact, am introdus o funcție, SUM. Funcțiile sunt formule pre-scrise care simplifică efectuarea de calcule complexe și manipulări cu numere, date, ore, text și altele. Veți afla mai multe despre funcții mai târziu.

Spre deosebire de coloana calculată Margine anterior, vedeți că coloana [CantitateVânzări] a fost precedată de tabelul VânzăriReale, căruia îi aparține coloana. Acesta este cunoscut drept nume de coloană complet calificat, deoarece include numele coloanei precedat de numele tabelului. Coloanele la care se face referire în același tabel nu necesită includerea numelui tabelului în formulă. Acest lucru poate face formulele lungi care fac referire la multe coloane mai scurte și mai ușor de citit. Totuși, este o practică bună să includeți întotdeauna numele de tabel în formulele de măsură, chiar și atunci când vă aflați în același tabel.

Notă

Dacă numele unui tabel conține spații, cuvinte cheie rezervate sau caractere nepermise, trebuie să încadrați numele tabelului între ghilimele simple. De asemenea, trebuie să încadrați numele de tabele între ghilimele dacă numele conține caractere în afara intervalului de caractere alfanumerice ANSI, indiferent dacă setările regionale acceptă sau nu setul de caractere.

Este foarte important ca formulele dvs. să aibă sintaxa corectă. În majoritatea cazurilor, dacă sintaxa nu este corectă, se va returna o eroare de sintaxă. În alte cazuri, sintaxa poate fi corectă, dar valorile returnate pot să nu corespundă așteptărilor dvs. Power Pivot (și SQL Server Data Tools) include IntelliSense, o caracteristică utilizată pentru a crea formule corecte din punct de vedere sintactic, ajutându-vă să selectați elementele corecte.

Să creăm o formulă simplă. Această activitate vă va ajuta să înțelegeți mai bine sintaxa de formulă și cum vă poate ajuta caracteristica IntelliSense din bara de formule.

Activitate: Crearea unei formule simple pentru o coloană calculată

  1. Dacă nu vă aflați deja în fereastra Power Pivot, în Excel, pe panglica Power Pivot, faceți clic pe Fereastră Power Pivot.
  2. În fereastra Power Pivot, faceți clic pe tabelul VânzăriFapte (fila).
  3. Defilați la coloana cea mai din dreapta, apoi, în antetul de coloană, faceți clic pe Adăugare coloană.
  4. Faceți clic în bara de formule din partea de sus a ferestrei proiectantului de modele.
    Bara de formule PowerPivot
    Cursorul apare acum în bara de formule. Bara de formule este locul unde puteți tasta o formulă pentru o coloană calculată sau un câmp calculat.
    Să ne uităm puțin la cele trei butoane din partea stângă a barei de formule.
    Bara de formule
    Când cursorul este activ în bara de formule, aceste trei butoane devin active. Butonul din extrema stângă, X, este pur și simplu un buton de anulare. Continuați și faceți clic pe acesta. Cursorul nu mai apare în bara de formule, iar butoanele Anulare și butonul Marcaj de selectare nu mai apar. Continuați și faceți clic din nou în bara de formule. Butonul Anulare și butonul marcaj de selectare reapar. Acest lucru înseamnă că sunteți gata să începeți să introduceți o formulă.
    Butonul de selectare este butonul de verificare a formulei. Nu face mare lucru până când nu introduceți o formulă. Vom reveni la acest lucru în scurt timp.
    Faceți clic pe butonul Fx . Veți vedea că apare o nouă casetă de dialog; caseta de dialog Inserare funcție. Caseta de dialog Inserare funcție este cea mai simplă modalitate de a începe introducerea unei formule DAX. Vom adăuga o funcție la o formulă atunci când vom crea o măsură puțin mai târziu, dar, deocamdată, nu trebuie să adăugați o funcție la formula din coloana calculată. Continuați și închideți caseta de dialog Inserare funcție.
  5. În bara de formule, tastați un semn egal =, apoi tastați o paranteză de deschidere [. Veți vedea că apare o fereastră mică cu toate coloanele din tabelul VânzăriReale. Acesta este IntelliSense în acțiune.
    Deoarece coloanele calculate sunt create întotdeauna în tabelul activ în care vă aflați, nu este necesar să precedați numele coloanei cu numele tabelului. Continuați și defilați în jos, apoi faceți dublu clic pe [CantitateVânzări]. Puteți, de asemenea, să defilați la numele coloanei dorite, apoi să apăsați pe Tab.
    Cursorul este acum activ în partea dreaptă a [CantitateVânzări].
  6. Tastați un spațiu, apoi tastați un operator de scădere - (un semn minus), apoi tastați un alt spațiu.
  7. Acum, tastați o altă paranteză de deschidere [. De această dată, selectați coloana [ReturnQuantity] și apăsați pe Enter.
    Dacă primiți o eroare, uitați-vă atent la sintaxă. Dacă este necesar, comparați-o cu formula din coloana calculată Margine descrisă anterior.
    După ce apăsați pe Enter pentru a termina formula, cuvântul Calculare apare în bara de stare, în partea de jos a ferestrei Power Pivot. Acțiunea este rapidă, chiar dacă tocmai ați calculat valori noi pentru mai mult de trei milioane de rânduri.
  8. Faceți clic dreapta pe antetul coloanei și redenumiți coloana, NetSales.

Asta e tot! Tocmai ați creat o formulă DAX simplă, dar foarte puternică. Pentru fiecare rând din tabelul VânzăriReale, formula VânzăriNete calculează o valoare scăzând valoarea din coloana [CantitateReturnare] din valoarea din coloana [CantitateVânzări]. Observați că tocmai am spus "Pentru fiecare rând". Aceasta este o privire asupra unui alt concept foarte important în DAX; Contextul rândului. Veți afla mai multe despre contextul rândurilor mai târziu.

Un lucru foarte important de înțeles atunci când tastați un operator într-o formulă DAX este tipul de date din argumentele pe care le utilizați. De exemplu, dacă ați tasta următoarea formulă, = 1 & 2, valoarea returnată ar fi o valoare text de "12". Acest lucru se întâmplă deoarece operatorul ampersand (&) este pentru concatenarea textului. DAX interpretează această formulă astfel: Calculați un rezultat luând valoarea 1 ca text și adăugați valoarea 2 ca text. Acum, dacă ați tasta = 1 + 2, DAX citește această formulă ca: Calculați un rezultat luând valoarea numerică 1 și adunând valoarea numerică 2. Rezultatul este, desigur, "3", o valoare numerică. DAX calculează valorile rezultate în funcție de operatorul din formulă, nu pe baza tipului de date al coloanelor utilizate în argument. Tipurile de date din DAX sunt foarte importante, dar nu se încadrează în acest Ghid de pornire rapidă. Pentru a afla mai multe despre tipurile de date și operatorii din formulele DAX, consultați referința DAX (http://go.microsoft.com/fwlink/?LinkId=239769&clcid=0x409) în Cărți online.

Să încercăm altul. De această dată, veți crea o măsură tastând formula și utilizând IntelliSense. Nu vă îngrijorați prea mult dacă nu înțelegeți pe deplin formula. Important aici este să învățați cum să creați o formulă utilizând mai multe elemente împreună într-o sintaxă corectă.

Activitate: Crearea unei formule de măsură

  1. În tabelul VânzăriReale , faceți clic în orice celulă necompletată din Zona de calcul. Aceasta este zona de celule goale aflate imediat sub un tabel din fereastra Power Pivot.

Zona de calcul PowerPivot

  1. În bara de formule, tastați numele Vânzări din trimestrul anterior:.
  2. Tastați semnul egal = pentru a începe formula de calcul.
  3. Tastați primele câteva litere CAL, apoi faceți dublu clic pe funcția pe care doriți să o utilizați. În această formulă, doriți să utilizați funcția CALCULATE .
  4. Tastați o paranteză de deschidere ( pentru a începe argumentele care vor fi transmise funcției CALCULATE).
    Rețineți că după ce tastați paranteza de deschidere, IntelliSense vă arată argumentele necesare pentru funcția CALCULATE. Veți afla despre argumente în scurt timp.
  5. Tastați primele câteva litere din tabelul VânzăriReale , apoi, în lista verticală, faceți dublu clic pe VânzăriReale[Vânzări].
  6. Tastați virgula (,) pentru a specifica primul filtru, apoi tastați PRE, apoi faceți dublu clic pe funcția PREVIOUSQUARTER .
    După ce selectați funcția PREVIOUSQUARTER, apare o altă paranteză de deschidere, indicând că este necesar un alt argument; de această dată, pentru funcția PREVIOUSQUARTER.
  7. Tastați primele câteva litere Dim, apoi faceți dublu clic pe DimDate[DateKey].
  8. Închideți atât argumentul transmis funcției PREVIOUSQUARTER, cât și funcția CALCULATE, tastând două paranteze închise )).
    Acum, formula dvs. ar trebui să arate astfel:
    Vânzări din trimestrul anterior:=CALCULATE(VânzăriReale[Vânzări], TRIMESTRUL ANTERIOR(DimDate[CheieDată]))
  9. Faceți clic pe butonul de verificare a formulei de pe bara de formule pentru a valida formula. Dacă apare o eroare, verificați fiecare element al sintaxei.

Ați reușit! Tocmai ați creat o măsură utilizând DAX, și una deloc ușoară. Va calcula vânzările totale pentru trimestrul precedent, în funcție de filtrele aplicate într-un raport PivotTable sau PivotChart.

Vi s-au prezentat mai multe aspecte importante ale formulelor DAX. Mai întâi, această formulă includea două funcții. Observați că funcția PREVIOUSQUARTER este imbricată ca argument transmis funcției CALCULATE . Formulele DAX pot conține până la 64 de funcții imbricate. Este puțin probabil ca o formulă să conțină vreodată atât de multe funcții imbricate. De fapt, o astfel de formulă ar fi foarte dificil de creat și de depanat și probabil nici nu ar fi foarte rapidă.

În această formulă, ați utilizat și filtre. Filtrele restrâng ceea ce se va calcula. În acest caz, ați selectat un filtru ca argument, care este de fapt altă funcție. Veți afla mai multe despre filtre mai târziu.

În fine, ați utilizat funcția CALCULATE. Aceasta este una dintre cele mai puternice funcții din DAX. Pe măsură ce creați modele de date și formule mai complexe, este posibil să utilizați această funcție de mai multe ori. Discutarea funcției CALCULATE nu este domeniul de aplicare al acestui QuickStart, dar, pe măsură ce cunoștințele dvs. despre DAX cresc, acordați-i o atenție deosebită.

Notă

De obicei, pentru a utiliza funcțiile Time Intelligence în formule DAX, trebuie să specificați o coloană unică de date utilizând caseta de dialog Marcare ca tabel de date. În registrul de lucru Formulă Samples.xlsx Contoso DAX, coloana CheieDată din tabelul DimDate este selectată ca coloană de dată unică.

Credit suplimentar

Poate vă întrebați: "Care este cea mai simplă formulă DAX pe care o pot crea?" Ei bine, răspunsul la această întrebare este "formula pe care nu trebuie să o faci". Și exact asta este ceea ce puteți face utilizând o funcție de agregare standard într-o măsură. Aproape orice model de date trebuie să filtreze și să calculeze pe baza datelor agregate. De exemplu, funcția SUM din măsura Sumă volum vânzări văzută anterior este utilizată pentru a aduna toate numerele dintr-o anumită coloană. DAX include mai multe alte funcții care agregă, de asemenea, valori. Puteți crea automat formule utilizând agregări standard, utilizând caracteristica Însumare automată.

Activitate Credit suplimentar: Crearea unei formule de măsură utilizând caracteristica Însumare automată

  1. În tabelul VânzăriReale, defilați la coloana ReturnQuantity, apoi faceți clic pe antetul coloanei pentru a selecta întreaga coloană.
  2. Pe fila Pornire , pe panglică, în grupul Calcule , faceți clic pe butonul Însumare automată .

Însumare automată în PowerPivot

Faceți clic pe săgeata în jos de lângă Însumare automată, apoi faceți clic pe Medie (observați și celelalte funcții de agregare standard pe care le puteți utiliza).

Imediat, se creează o măsură nouă cu numele Average of ReturnQuantity: urmat de formula =AVERAGE([ReturnQuantity]).

Nu-i așa că a fost ușor? Desigur, nu toate formulele pe care le creați vor fi atât de simple. Dar, utilizând caracteristica Însumare automată, puteți crea formule rapide și ușoare, utilizând calcule de agregare standard.

Acest lucru ar trebui să vă ofere o înțelegere destul de bună a sintaxei utilizate în formulele DAX. De asemenea, vi s-au prezentat câteva caracteristici cu adevărat interesante, cum ar fi IntelliSense și Însumare automată, pentru a vă ajuta să creați formule rapide, ușoare și precise. Desigur, puteți afla mult mai multe despre sintaxă. Un loc bun pentru a afla mai multe este referința DAX sau SQL Books Online.

Chestionar rapid sintaxă

  1. Ce face acest buton de pe bara de formule?
    Butonul de funcții
  2. Ce înconjoară întotdeauna un nume de coloană într-o formulă DAX?
  3. Cum ați scrie o formulă pentru următoarele:
    În tabelul DimProduct, pentru fiecare rând din coloana calculată UnitMargin, calculați o valoare scăzând valorile din coloana CostUnitar din valorile din coloana PrețUnitar?

Răspunsurile sunt furnizate la sfârșitul acestui subiect.

Funcții

Funcțiile sunt formule predefinite care efectuează calcule utilizând anumite valori, numite argumente, într-o anumită ordine sau structură. Argumentele pot fi alte funcții, o altă formulă, referințe de coloană, numere, text, valori logice ca TRUE sau FALSE, sau constante.

DAX include următoarele categorii de funcții: funcții de tip Dată și Oră, Informații, Logice, Matematice, Statistice, Text și Time Intelligence. Dacă sunteți familiarizat cu funcțiile din formulele Excel, multe dintre funcțiile din DAX vor părea asemănătoare; Totuși, funcțiile DAX sunt unice în următoarele moduri:

  • O funcție DAX face întotdeauna referire la o coloană sau la un tabel întreg. Dacă doriți să utilizați doar anumite valori dintr-un tabel sau dintr-o coloană, puteți adăuga filtre la formulă.
  • Dacă trebuie să particularizați calculele rând cu rând, DAX oferă funcții care vă permit să utilizați valoarea rândului curent sau o valoare asociată ca tip de argument, pentru a efectua calcule care variază în funcție de context. Veți afla mai multe despre context mai târziu.
  • DAX include multe funcții care returnează un tabel, nu o valoare. Tabelul nu se afișează, dar este utilizat pentru a furniza informații pentru alte funcții. De exemplu, puteți să regăsiți un tabel, apoi să contorizați valorile distincte din acesta sau să calculați sume dinamice în tabele sau coloane filtrate.
  • DAX include o varietate de funcții time intelligence. Aceste funcții vă permit să definiți sau să selectați intervale de date și să efectuați calcule dinamice pe baza acestora. De exemplu, aveți posibilitatea să comparați sume din perioade paralele.

Uneori este dificil să știți ce funcții trebuie utilizate într-o formulă. Power Pivot și proiectantul de modele tabelare din SQL Server Data Tools includ caracteristica Inserare funcție, o casetă de dialog care vă ajută să selectați funcții după categorie și furnizează scurte descrieri pentru fiecare funcție.

Inserare funcție

Să creăm o formulă nouă care include o funcție pe care o veți selecta utilizând caracteristica Inserare funcție:

Activitate: Adăugarea unei funcții la o formulă utilizând Inserare funcție

  1. În tabelul VânzăriReale, defilați la coloana cea mai din dreapta, apoi, în antetul coloanei, faceți clic pe Adăugare coloană.
  2. În bara de formule, tastați semnul egal, =.
  3. Faceți clic pe butonul Inserare funcție . Inserare funcție Se deschide caseta de dialog Inserare funcție .
  4. În caseta de dialog Inserare funcție , faceți clic pe caseta listă Selectați o categorie . În mod implicit, este selectat Toate și toate funcțiile din categoria Toate sunt listate mai jos. Sunt o mulțime de funcții, așa că se recomandă să filtrați funcțiile pentru a facilita găsirea tipului de funcție pe care îl căutați.
  5. Pentru această formulă, doriți să returnați unele date care există deja în alt tabel. Pentru aceasta, veți utiliza o funcție din categoria Filtrare. Continuați și faceți clic pe categoria Filtrare , apoi, în Selectați o funcție, defilați în jos și faceți dublu clic pe funcția RELATED. Faceți clic pe Ok pentru a închide caseta de dialog Inserare funcție .
  6. Utilizați IntelliSense pentru a găsi și a selecta coloana DimChannel[ChannelName].
  7. Închideți formula, apoi apăsați pe Enter.
  8. După ce apăsați pe Enter pentru a termina formula, cuvântul Calculare apare în bara de stare, în partea de jos a ferestrei Power Pivot. Acum veți vedea că tocmai ați creat o coloană nouă în tabelul VânzăriFapte cu informații de canal din tabelul DimChannel.
  9. Redenumiți coloana Canal.
    Formula dvs. ar trebui să arate astfel: =RELATED(DimChannel[ChannelName])

Vi s-a prezentat o altă funcție foarte importantă din DAX, funcția RELATED . Funcția RELATED returnează valori din alt tabel. Puteți utiliza RELATED dacă există o relație între tabelul în care vă aflați în prezent și tabelul care conține valorile pe care doriți să le primiți. Desigur, funcția RELATED are posibilități imense. În acest caz, acum puteți include canalul de vânzări pentru fiecare vânzare în tabelul VânzăriReale. Acum puteți ascunde tabelul DimChannel din lista de câmpuri PivotTable, facilitând navigarea și vizualizarea doar a informațiilor cele mai importante, de care aveți cu adevărat nevoie. La fel ca funcția CALCULATE descrisă mai sus, funcția RELATED este foarte importantă și probabil o veți utiliza de multe ori.

După cum puteți vedea, funcțiile din DAX vă pot ajuta să creați formule foarte puternice. Am atins doar noțiunile de bază ale funcțiilor. Pe măsură ce competențele dvs. DAX se îmbunătățesc, veți crea formule utilizând multe funcții diferite. Unul dintre cele mai bune locuri pentru a afla detalii despre toate funcțiile DAX este referința Data Analysis Expressions (DAX).

Funcții QuickQuiz

  1. La ce face referire întotdeauna o funcție?
  2. Poate o formulă să conțină mai multe funcții?
  3. Ce categorie de funcții ați utiliza pentru a concatena două șiruri text într-un singur șir?

Răspunsurile sunt furnizate la sfârșitul acestui subiect.

Context

Contextul este unul dintre cele mai importante concepte DAX de înțeles. Există două tipuri de context în DAX; Contextul rândurilor și contextelor de filtrare. Ne vom uita mai întâi la contextul rândurilor.

Contextul rândului

Contextul de rând este cel mai ușor de considerat ca fiind rândul curent. De exemplu, țineți minte coloana calculată Margine pe care ați văzut-o anterior când ați învățat despre sintaxă? Formula =[CantitateVânzări] - [CostTotal] calculează o valoare în coloana Margine pentru fiecare rând din tabel. Valorile pentru fiecare rând sunt calculate din valorile din alte două coloane, [CantitateVânzări] și [CostTotal] din același rând. DAX poate calcula valorile pentru fiecare rând din coloana Margine, deoarece are contextul: Pentru fiecare rând, ia valorile din coloana [CostTotal] și le scade din valorile din coloana [CantitateVânzări].

În celula selectată afișată mai jos, valoarea, 49,54 lei din rândul curent, a fost calculată prin scăderea valorii 51,54 lei din coloana [Costtotal] din valoarea 101,08 lei din coloana [CantitateVânzări].

Contextul de rând în PowerPivot

Contextul de rând nu se aplică doar la coloanele calculate. Contextul de rând se aplică și ori de câte ori o formulă are o funcție care aplică filtre pentru a identifica un singur rând dintr-un tabel. Funcția va aplica în mod inerent un context de rând pentru fiecare rând al tabelului peste care filtrează. Acest tip de context de rând se aplică cel mai des la măsuri.

Contextul de filtrare

Contextul de filtrare este puțin mai greu de înțeles decât contextul de rând. Vă puteți gândi cel mai ușor la contextul de filtrare ca: Unul sau mai multe filtre aplicate într-un calcul care determină un rezultat sau o valoare.

Contextul de filtrare nu există în locul contextului de rând; mai degrabă, se aplică în plus față de contextul rândului. De exemplu, pentru a restrânge și mai mult valorile care trebuie incluse într-un calcul, puteți aplica un context de filtrare care specifică nu numai contextul rândului, ci și o anumită valoare (filtru) în acel context de rând.

Contextul de filtrare este ușor de văzut în rapoartele PivotTable. De exemplu, atunci când adăugați CostTotaluri la zona Valori, apoi adăugați An și Regiune la rând sau la coloane, definiți un context de filtrare care selectează un subset de date pe baza unui anumit an și a unei anumite regiuni.

De ce este atât de important contextul de filtrare pentru DAX? Deoarece, în timp ce contextul de filtrare poate fi aplicat cel mai ușor prin adăugarea de etichete de coloană și de rând și de slicere într-un raport PivotTable, contextul de filtrare poate fi aplicat și într-o formulă DAX prin definirea unui filtru utilizând funcții precum ALL, RELATED, FILTER, CALCULATE, după relații și după alte măsuri și coloane. De exemplu, să vedem următoarea formulă într-o măsură denumită VânzăriMagazin:

Formulă

În mod clar, această formulă este mai complexă decât alte formule pe care le-ați văzut. Totuși, pentru a înțelege mai bine această formulă, o putem descompune, la fel cum am procedat cu alte formule.

Această formulă include următoarele elemente de sintaxă:

  1. Numele măsurii StoreSales, urmat de două puncte :.
  2. Operatorul semn egal (=) indică începutul formulei.
  3. Funcția CALCULATE evaluează o expresie, ca argument, într-un context care este modificat de filtrele specificate.
  4. Paranteza () încadrează unul sau mai multe argumente.
  5. O măsură [Vânzări] din același tabel ca o expresie. Măsura Vânzări are formula: =SUM(VânzăriReale[VolumVânzări]).
  6. Un punct (,) separă fiecare filtru.
  7. Coloana la care se face referire și o anumită valoare, DimChannel[ChannelName] ="Store", ca filtru.

Această formulă va asigura că numai valorile de vânzări, definite de măsura Vânzări, ca filtru, sunt calculate doar pentru rândurile din coloana DimChannel[ChannelName] cu valoarea "Store", ca filtru.

După cum vă puteți imagina, posibilitatea de a defini contextul de filtrare dintr-o formulă are o capacitate imensă și puternică. Posibilitatea de a face referire doar la o anumită valoare dintr-un tabel asociat este doar un astfel de exemplu. Nu-ți face griji dacă nu înțelegi imediat totul pe deplin. Pe măsură ce vă creați propriile formule, veți înțelege mai bine contextul și de ce este atât de important în DAX.

Context QuickQuiz

  1. Care sunt cele două tipuri de context?
  2. Ce este contextul de filtrare?
  3. Ce este contextul rândurilor?

Răspunsurile sunt furnizate la sfârșitul acestui subiect.

Rezumat

Acum, după ce aveți o înțelegere de bază a celor mai importante concepte din DAX, puteți începe să creați singur formule DAX pentru coloane calculate și măsuri. DAX poate fi într-adevăr puțin dificil de învățat, dar există multe resurse disponibile pentru dvs. După ce citiți acest subiect de câteva ori și experimentați cu câteva dintre formulele proprii, puteți afla mai multe despre alte concepte și formule DAX care vă pot ajuta să vă rezolvați propriile probleme de afaceri. Există multe resurse DAX disponibile în Ajutorul Power Pivot, SQL Server Books Online, cărți albe și bloguri de la Microsoft și de la profesioniști de renume BI. Wiki Centrul de resurse DAX (http://social.technet.microsoft.com/wiki/contents/articles/dax-resource-center.aspx) este un loc foarte bun pentru a începe. Referința Data Analysis Expressions (DAX) este, de asemenea, o resursă foarte bună. Nu uitați să-l salvați în Preferințe.

Cartea albă DAX din modelul tabelar BI, disponibilă pentru descărcare (http://go.microsoft.com/fwlink/?LinkID=237472&clcid=0x409) oferă o privire mai detaliată asupra conceptelor introduse aici, precum și asupra multor alte concepte și formule complexe. Această carte albă utilizează, de asemenea, același Eșantion Contoso DAX Formulas.xlsx registru de lucru pe care îl aveți deja.

Răspunsuri QuickQuiz

Sintaxă:

  1. Deschide caracteristica Inserare funcție.
  2. Paranteze [].
  3. =[PrețUnitar] - [CostUnitar]

Funcții:

  1. Un tabel și o coloană.
  2. Da. O formulă poate conține până la 64 de funcții imbricate.
  3. Funcții text.

Context:

  1. Contextul rândului și contextul filtrului.
  2. Unul sau mai multe filtre într-un calcul care determină o singură valoare.
  3. Rândul curent.