Contextul în formulele DAX

Notă: Dorim să vă oferim cel mai recent conținut de ajutor, cât mai rapid posibil, în limba dvs. Această pagină a fost tradusă automatizat și poate conține erori gramaticale sau inexactități. Scopul nostru este ca acest conținut să vă fie util. Vă rugăm să ne spuneți dacă informațiile v-au fost utile, în partea de jos a acestei pagini. Aici se află articolul în limba engleză, ca să îl puteți consulta cu ușurință.

Context vă permite să efectuați analize dinamice, în care rezultatele unei formule se pot modifica pentru a reflecta rândul curent sau selecția în celulă și, de asemenea, toate datele asociate. Înțelegerea contextului și utilizarea eficientă a unui context sunt foarte importante pentru construirea de formule performante, analize dinamice și pentru depanarea problemelor din formule.

Această secțiune definește diferitele tipuri de context: context de rând, context de interogare și context de filtrare. Acesta explică modul în care se evaluează contextul pentru formulele din coloanele calculate și din rapoartele PivotTable.

Ultima parte a acestui articol furnizează linkuri către exemple detaliate care ilustrează modul în care rezultatele formulelor se modifică în funcție de context.

Context de înțelegere

Formulele din Power Pivot pot fi afectate de filtrele aplicate într-un raport PivotTable, de relațiile dintre tabele și de filtrele utilizate în formule. Contextul este ceea ce face posibilă efectuarea analizei dinamice. Înțelegerea contextului este importantă pentru construirea și depanarea formulelor.

Există mai multe tipuri de context: context de rând, context de interogare și context de filtrare.

Contextul rândului poate fi considerat "rândul curent". Dacă ați creat o coloană calculată, contextul rândului constă în valorile din fiecare rând și valori individuale din coloane care sunt asociate cu rândul curent. Există, de asemenea, unele funcții (mai devreme și maivechi) care obțin o valoare din rândul curent, apoi utilizează acea valoare în timp ce efectuează o operație într-un tabel întreg.

Contextul interogării se referă la subsetul de date care este creat în mod implicit pentru fiecare celulă dintr-un raport PivotTable, în funcție de anteturile de rând și de coloană.

Context de filtrare este setul de valori permise în fiecare coloană, pe baza restricțiilor de filtrare care au fost aplicate la rând sau care sunt definite prin expresii de filtrare din formulă.

Începutul paginii

Contextul rândului

Dacă creați o formulă într-o coloană calculată, contextul rândului pentru acea formulă include valorile din toate coloanele din rândul curent. Dacă tabelul este asociat cu alt tabel, conținutul include și toate valorile din acel alt tabel care sunt asociate cu rândul curent.

De exemplu, să presupunem că creați o coloană calculată, = [transport] + [taxă],

, care adună două coloane din același tabel. Această formulă se comportă ca formule într-un tabel Excel, care face referire automată la valori din același rând. Rețineți că tabelele diferă de la intervale: nu puteți face referire la o valoare din rândul dinaintea rândului curent utilizând notația de interval și nu puteți face referire la nicio valoare arbitrară unică dintr-un tabel sau dintr-o celulă. Întotdeauna trebuie să lucrați cu tabele și coloane.

Contextul Row urmează automat relațiile dintre tabele pentru a determina ce rânduri din tabelele asociate sunt asociate cu rândul curent.

De exemplu, următoarea formulă utilizează funcția asociate pentru a obține o valoare fiscală dintr-un tabel asociat, pe baza regiunii la care a fost livrată comanda. Valoarea taxei este determinată prin utilizarea valorii pentru regiune în tabelul curent, căutând regiunea în tabelul asociat, apoi obținând rata de impozitare pentru acea regiune din tabelul asociat.

= [Transport] + asociat (' regiune ' [TaxRate])

Această formulă primește pur și simplu rata de impozitare pentru regiunea curentă, din tabelul regiune. Nu trebuie să știți sau să specificați cheia care conectează tabelele.

Context de rânduri multiple

În plus, DAX include funcții care reiterez calculele într-un tabel. Aceste funcții pot avea mai multe rânduri curente și contexte de rânduri curente. În termeni de programare, puteți crea formule care se regăsesc într-o buclă interioară și exterioară.

De exemplu, să presupunem că registrul de lucru conține un tabel de produse și un tabel de vânzări . Poate că doriți să parcurgeți întregul tabel de vânzări, care este plin de tranzacții care implică mai multe produse și să găsiți cea mai mare cantitate comandată pentru fiecare produs într-o tranzacție.

În Excel, acest calcul necesită o serie de rezumate intermediare, care ar trebui să fie recompilate dacă datele s-au modificat. Dacă sunteți utilizator Power pentru Excel, este posibil să reușiți să construiți formule matrice care să facă lucrarea. Ca alternativă, într-o bază de date relațională, puteți scrie subselectare imbricată.

Cu toate acestea, cu DAX puteți să creați o singură formulă care returnează valoarea corectă, iar rezultatele sunt actualizate automat de fiecare dată când adăugați date la tabele.

= MAXX (FILTER (vânzări, [ProdKey] = mai devreme ([ProdKey])), vânzări [OrderQty])

Pentru o prezentare detaliată a acestei formule, consultați secțiunea anterioară.

Pe scurt, funcția anterioare stochează contextul rândului din operațiunea care a precedat operațiunea curentă. În permanență, funcția stochează în memorie două seturi de context: un set de context reprezintă rândul curent pentru bucla interioară a formulei, iar un alt set de context reprezintă rândul curent pentru bucla exterioară a formulei. DAX hrănește automat valorile dintre cele două bucle, astfel încât să puteți crea agregate complexe.

Începutul paginii

Context interogare

Contextul interogării se referă la subsetul de date care este regăsit implicit pentru o formulă. Atunci când fixați o măsură sau un alt câmp de valoare într-o celulă dintr-un raport PivotTable, motorul Power Pivot examinează anteturile de rând și de coloană, Slicerele și filtrele de rapoarte pentru a determina contextul. Apoi, Power Pivot face calculele necesare pentru a popula fiecare celulă din raportul PivotTable. Setul de date care este regăsit este contextul interogării pentru fiecare celulă.

Deoarece contextul se poate modifica în funcție de locul unde se plasează formula, rezultatele formulei se modifică, de asemenea, în funcție de modul în care utilizați formula într-un raport PivotTable cu mai multe grupări și filtre, sau într-o coloană calculată, fără filtre și cu un context minim.

De exemplu, să presupunem că creați această formulă simplă care însumează valorile din coloana profit a tabelului vânzări : = SUM (' vânzări ' [profit]).

Dacă utilizați această formulă într-o coloană calculată din tabelul vânzări , rezultatele formulei vor fi identice pentru întregul tabel, deoarece contextul interogării pentru formulă este întotdeauna întregul set de date al tabelului vânzări . Rezultatele dumneavoastră vor avea profit pentru toate regiunile, pentru toate produsele, pentru toți anii și așa mai departe.

Cu toate acestea, de obicei nu doriți să vedeți același rezultat de sute de ori, ci doriți să obțineți profitul pentru un anumit an, o anumită țară sau regiune, un anumit produs sau o combinație a acestora, apoi obțineți un total general.

Într-un raport PivotTable, este simplu să modificați contextul prin adăugarea sau eliminarea anteturilor de coloană și de rând și prin adăugarea sau eliminarea Slicerelor. Puteți să creați o formulă ca cea de mai sus, într-o măsură, apoi să o fixați într-un raport PivotTable. Atunci când adăugați titluri de coloană sau de rând la raportul PivotTable, modificați contextul interogării în care este evaluată măsura. Operațiunile de feliere și filtrare afectează, de asemenea, contextul. Prin urmare, aceeași formulă, utilizată într-un raport PivotTable, este evaluată într-un context de interogare diferit pentru fiecare celulă.

Începutul paginii

Context de filtrare

Contextul de filtrare este adăugat atunci când specificați restricții de filtrare pentru setul de valori permise într-o coloană sau dintr-un tabel, utilizând argumente la o formulă. Contextul de filtrare se aplică în partea de sus a altor contexte, cum ar fi contextul de rând sau contextul interogării.

De exemplu, un raport PivotTable calculează valorile sale pentru fiecare celulă bazată pe titlurile de rând și de coloană, după cum este descris în secțiunea anterioară din contextul interogării. Cu toate acestea, în cadrul măsurilor sau coloanelor calculate pe care le adăugați la raportul PivotTable, puteți specifica expresii de filtrare pentru a controla valorile care sunt utilizate de formulă. De asemenea, puteți să ștergeți selectiv filtrele din anumite coloane.

Pentru mai multe informații despre cum să creați filtre în formule, consultați funcțiile de filtrare.

Pentru un exemplu de modul în care filtrele pot fi eliminate pentru a crea totaluri Grand, consultați toate.

Pentru exemple despre cum să debifați selectiv și să aplicați filtre în formule, consultați funcția ALLEXCEPT.

Prin urmare, trebuie să revizuiți definiția măsurilor sau formulelor utilizate într-un raport PivotTable, astfel încât să fiți conștient de contextul de filtrare atunci când interpretați rezultatele formulelor.

Începutul paginii

Determinarea contextului în formule

Atunci când creați o formulă, Power Pivot pentru Excel pentru prima dată Verifică sintaxa generală, apoi verifică numele coloanelor și tabelelor pe care le furnizați în contextul curent al coloanelor și tabelelor posibile. Dacă Power Pivot nu poate găsi coloanele și tabelele specificate în formulă, veți primi o eroare.

Contextul este determinat așa cum se descrie în secțiunile anterioare, utilizând tabelele disponibile din registrul de lucru, toate relațiile dintre tabele și toate filtrele care au fost aplicate.

De exemplu, dacă tocmai ați importat unele date într-un tabel nou și nu ați aplicat niciun filtru, întregul set de coloane din tabel face parte din contextul curent. Dacă aveți mai multe tabele legate prin relații și lucrați într-un raport PivotTable care a fost filtrat prin adăugarea titlurilor de coloană și utilizarea Slicerelor, contextul include tabelele asociate și toate filtrele din date.

Context este un concept puternic, care poate face dificil să depanați formulele. Vă recomandăm să începeți cu formule și relații simple pentru a vedea cum funcționează contextul, apoi începeți să experimentați cu formule simple în rapoarte PivotTable. Secțiunea următoare oferă, de asemenea, câteva exemple despre modul în care formulele utilizează diferite tipuri de context pentru a returna dinamic rezultatele.

Exemple de context în formule

  • Funcția asociate extinde contextul rândului curent pentru a include valori într-o coloană asociată. Acest lucru vă permite să efectuați căutări. Exemplul din acest subiect ilustrează interacțiunea de filtrare și contextul de rând.

  • Funcția FILTER vă permite să specificați rândurile de inclus în contextul curent. Exemplele din acest subiect ilustrează, de asemenea, cum se încorporează filtrele din alte funcții care efectuează agregate.

  • Funcția ALL setează contextul dintr-o formulă. Îl puteți utiliza pentru a anula filtrele aplicate ca rezultat al contextului interogării.

  • Funcția ALLEXCEPT vă permite să eliminați toate filtrele, cu excepția uneia pe care o specificați. Ambele subiecte includ exemple care vă ajută să construiți formule și să înțelegeți contexte complexe.

  • Funcțiile anterioare și mai vechi vă permit să parcurgeți tabelele efectuând calcule, în timp ce faceți referire la o valoare dintr-o buclă internă. Dacă sunteți familiarizat cu noțiunea de recurență și cu buclele interioare și exterioare, veți aprecia puterea pe care o oferă funcțiile anterioare și mai vechi. Dacă nu sunteți familiarizat cu aceste concepte, trebuie să urmați pașii din exemplu cu atenție pentru a vedea cum se utilizează contextele interioare și exterioare în calcule.

Începutul paginii

Integritatea referențială

Această secțiune prezintă câteva concepte complexe legate de valorile lipsă din tabelele Power Pivot conectate prin relații. Această secțiune v-ar putea fi utilă dacă aveți registre de lucru cu mai multe tabele și formule complexe și doriți ajutor în înțelegerea rezultatelor.

Dacă nu sunteți familiarizat cu conceptele de date relationale, vă recomandăm să citiți prima dată subiectul introductiv, prezentarea generalăa relațiilor.

Integritatea referențială și relațiile Power Pivot

Power Pivot nu necesită ca integritatea referențială să fie impusă între două tabele, pentru a defini o relație validă. În schimb, se creează un rând necompletat la sfârșitul "unu" al fiecărei relații unu-la-mai-mulți și se utilizează pentru a gestiona toate rândurile care nu se potrivesc din tabelul asociat. Se comportă efectiv ca o asociere externă SQL.

În rapoarte PivotTable, dacă grupați date după o parte a relației, toate datele necorespondente din partea mai multe a relației sunt grupate împreună și vor fi incluse în totaluri, cu un titlu de rând necompletat. Titlul necompletat este aproximativ echivalent cu "membru necunoscut".

Înțelegerea unui membru necunoscut

Noțiunea de membru necunoscut vă este probabil familiară dacă ați lucrat cu sisteme de baze de date multidimensionale, cum ar fi SQL Server Analysis Services. Dacă termenul este nou pentru dvs., următorul exemplu explică ce este membrul necunoscut și cum afectează calculele.

Să presupunem că creați un calcul care însumează vânzările lunare pentru fiecare magazin, dar o coloană din tabelul vânzări lipsește o valoare pentru numele magazinului. Având în vedere că tabelele pentru magazin și vânzări sunt conectate la numele magazinului, ce v-ați aștepta să se întâmple în formulă? Cum trebuie să fie Grupul PivotTable sau să afișeze cifrele de vânzări care nu sunt asociate cu un depozit existent?

Această problemă este una comună în depozitele de date, în care tabelele mari de date de fapt trebuie să fie legate logic de tabelele de dimensiuni care conțin informații despre magazinele, regiunile și alte atribute care sunt utilizate pentru clasificarea și calcularea datelor. Pentru a rezolva problema, orice fapte noi care nu au legătură cu o entitate existentă sunt atribuite temporar unui membru necunoscut. De aceea, datele necorelate vor apărea grupate într-un raport PivotTable, sub titlu necompletat.

Tratamentul valorilor necompletate față de rândul necompletat

Valorile necompletate diferă de rândurile necompletate care sunt adăugate pentru a găzdui membrul necunoscut. Valoarea necompletată este o valoare specială care se utilizează pentru a reprezenta NULL, șiruri goale și alte valori lipsă. Pentru mai multe informații despre valoarea necompletată, precum și despre alte tipuri de date DAX, consultați tipurile de date din modelele de date.

Începutul paginii

Extindeți-vă competențele Office
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă utilizatorilor Office Insider

Au fost utile aceste informații?

Vă mulțumim pentru feedback!

Vă mulțumim pentru feedback! Se pare că ar fi util să luați legătura cu unul dintre agenții noștri de asistență Office.

×