Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Contextul vă permite să efectuați analize dinamice, în care rezultatele unei formule se pot modifica pentru a reflecta selecția curentă de rând sau celulă și, de asemenea, orice date asociate. Înțelegerea contextului și utilizarea eficientă a contextului sunt foarte importante pentru construirea de formule de înaltă performanță, analize dinamice și pentru depanarea problemelor din formule.

Această secțiune definește diferitele tipuri de context: contextul rândurilor, contextul de interogare și contextul de filtrare. 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.

Înțelegerea contextului

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 de analize dinamice. Înțelegerea contextului este importantă pentru construirea și depanarea formulelor.

Există diverse tipuri de context: contextul rândurilor, contextul de interogare și contextul de filtrare.

Contextul de rând poate fi considerat "rândul curent". Dacă ați creat o coloană calculată, contextul de rând constă din valorile din fiecare rând individual și valorile din coloane care sunt asociate rândului curent. Există, de asemenea, unele funcții (EARLIER și EARLIEST) care primesc o valoare din rândul curent, apoi utilizează acea valoare în timp ce efectuează o operațiune asupra unui 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 coloană.

Contextul 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 de expresiile de filtrare din formulă.

Începutul paginii

Contextul rândului

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

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

, care reunesc două coloane din același tabel. Această formulă se comportă ca formulele dintr-Excel tabel de formule, care face automat referire la valorile din același rând. Rețineți că tabelele sunt diferite de zone: nu puteți face referire la o valoare din rândul anterior rândului curent utilizând notația de zonă și nu puteți face referire la nicio valoare unică arbitrară într-un tabel sau într-o celulă. Trebuie să lucrați întotdeauna cu tabele și coloane.

Contextul de rând 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 RELATED pentru a prelua o valoare fiscală dintr-un tabel asociat, pe baza regiunii în care a fost expediată comanda. Valoarea tva este determinată utilizând valoarea pentru regiune din tabelul curent, căutând regiunea în tabelul asociat, apoi obțineți rata de impozitare pentru acea regiune din tabelul asociat.

= [Transport] + RELATED('Regiune'[Taxe])

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 cu mai multe rânduri

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

De exemplu, să presupunem că registrul de lucru conține un tabel Produse și un tabel Vânzări. Vă puteți dori să treceți prin tot tabelul 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 reconstruite dacă datele se modifică. Dacă sunteți utilizator puternic de Excel, este posibil să aveți posibilitatea să construiți formule matrice care să facă treaba. Ca alternativă, într-o bază de date relațională puteți să scrieți subselectări imbricate.

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

=MAXX(FILTER(Vânzări,[Cheie ProdKey]=EARLIER([Cheie ProdKey])),Vânzări[Comenzi])

Pentru o prezentare detaliată a acestei formule, consultați MAI DEVREME.

Pe scurt, funcția EARLIER stochează contextul de rând din operațiunea care a precedat operațiunea curentă. Funcția stochează în memorie două seturi de context: un set de context reprezintă rândul curent pentru bucla internă a formulei, iar un alt set de context reprezintă rândul curent pentru bucla exterioară a formulei. DAX alimenteează 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 regăsit în mod implicit pentru o formulă. Atunci când fixați o măsură sau 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 raport pentru a determina contextul. Apoi, Power Pivot efectua calculele necesare pentru a popula fiecare celulă din raportul PivotTable. Setul de date regăsit este contextul de interogare pentru fiecare celulă.

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

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

Dacă utilizați această formulă într-o coloană calculată din tabelul Vânzări, rezultatele pentru formulă vor fi aceleași pentru întregul tabel, deoarece contextul de interogare pentru formulă este întotdeauna întregul set de date din tabelul Vânzări. Rezultatele dvs. vor aduce profit pentru toate regiunile, toate produsele, toți anii etc.

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

Într-un raport PivotTable, este simplu să modificați contextul prin adăugarea sau eliminarea de anteturi de coloană și 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 fixți într-un PivotTable. Oricând adăugați titluri de coloană sau de rând la raportul PivotTable, modificați contextul de interogare în care se evaluează măsura. Operațiunile delicație și filtrare afectează și contextul. Prin urmare, aceeași formulă, utilizată într-un raport PivotTable, este evaluată într-un context de interogare diferit pentru fiecare celulă.

Începutul paginii

Contextul de filtrare

Contextul de filtrare se adaugă atunci când specificați restricțiile de filtrare pentru setul de valori permise într-o coloană sau într-un tabel, utilizând argumente pentru o formulă. Contextul de filtrare se aplică deasupra altor contexte, cum ar fi contextul de rând sau contextul de interogare.

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

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

Pentru un exemplu despre modul în care filtrele pot fi eliminate pentru a crea totaluri general, consultați TOATE.

Pentru exemple despre cum să goliți selectiv și să aplicați filtre în cadrul formulelor, consultați Funcția ALLEXCEPT.

Așadar, trebuie să revizuiți definiția măsurilor sau a formulelor utilizate într-un raport PivotTable, astfel încât să luați în calcul 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 verifică mai întâi sintaxa generală, apoi verifică numele coloanelor și tabelelor pe care le furnizați în raport cu coloanele și tabelele posibile în contextul curent. Dacă Power Pivot găsi coloanele și tabelele specificate de formulă, veți primi o eroare.

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

De exemplu, dacă tocmai ați importat unele date într-un tabel nou și nu ați aplicat filtre, î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 de titluri de coloană și utilizarea slicerelor, contextul include tabelele asociate și orice filtre din date.

Contextul este un concept puternic care, de asemenea, poate îngreuna depanarea formulelor. 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 rapoartele PivotTable. Următoarea secțiune mai oferă și câteva exemple privind modul în care formulele utilizează diferite tipuri de context pentru a returna dinamic rezultatele.

Exemple de context în formule

  • Funcția RELATED extinde contextul rândului curent pentru a include valori într-o coloană corelată. Acest lucru vă permite să efectuați căutare. Exemplul din acest articol ilustrează interacțiunea cu filtrarea și contextul rândurilor.

  • Funcția FILTER vă permite să specificați rândurile de inclus în contextul curent. Exemplele din acest articol ilustrează și cum să încorporați filtre în alte funcții care efectuează agregate.

  • Funcția ALL setează contextul dintr-o formulă. O puteți utiliza pentru a înlocui filtrele aplicate ca rezultat al contextului de interogare.

  • Funcția ALLEXCEPT vă permite să eliminați toate filtrele, cu excepția unuia specificat. Ambele subiecte includ exemple care vă înlesnesc să construiți formule și să înțelegeți contexte complexe.

  • Funcțiile EARLIER și EARLIEST vă permit să executați în buclă în tabele efectuând calcule, în timp ce faceți referire la o valoare dintr-o buclă internă. Dacă sunteți familiarizat cu conceptul de recursivitate și cu buclele interioare și exterioare, veți aprecia puterea oferită de funcțiile EARLIER și EARLIEST. Dacă nu sunteți utilizator nou al acestor concepte, urmați pașii din exemplu cu atenție pentru a vedea cum se utilizează contextele interne și externe în calcule.

Începutul paginii

Integritate referențială

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

Dacă nu sunteți sigur de conceptele de date relaționale, vă recomandăm să citiți mai întâi subiectul introductiv Prezentarea generală a relațiilor.

Integritate referențială și Power Pivot relații

Power Pivot nu necesită impunerea integrității referențiale între două tabele pentru a defini o relație validă. În schimb, se creează un rând necompletat la sfârșitul fiecărei relații unu-la-mai-mulți și este utilizat pentru a gestiona toate rândurile care nu se potrivesc din tabelul asociat. Acesta se comportă efectiv ca o SQL externă.

În rapoartele PivotTable, dacă grupați datele după o parte a relației, toate datele necores nepotrivite din partea mai mulți 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 "membrul necunoscut".

Understanding the Unknown Member

Conceptul 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 voi, 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 prin numele magazinului, ce ar trebui să se întâmple în formulă? Cum ar trebui să fie grupul PivotTable sau să se afișeze cifrele de vânzări care nu sunt legate de un magazin existent?

Această problemă este una comună în depozitele de date, unde tabele mari de date trebuie să fie corelate logic cu tabelele de dimensiune care conțin informații despre depozite, regiuni și alte atribute care sunt utilizate pentru clasificarea și calcularea informațiilor. Pentru a rezolva problema, toate datele noi care nu au legătură cu o entitate existentă sunt atribuite temporar membrurii necunoscute. De aceea, datele necorelate vor apărea grupate într-un raport PivotTable sub un titlu necompletat.

Tratament valorilor necompletate versus rândul necompletat

Valorile necompletate sunt diferite de rândurile necompletate care sunt adăugate pentru a include membrul necunoscut. Valoarea necompletată este o valoare specială utilizată pentru a reprezenta valori 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

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×