Una dintre cele mai puternice caracteristici din Power Pivot este capacitatea de a crea relații între tabele și de a utiliza apoi tabelele asociate pentru a căuta sau a filtra datele asociate. Puteți prelua valorile corelate din tabele utilizând limbajul pentru formule furnizat cu Power Pivot, Data Analysis Expressions (DAX). DAX utilizează un model relațional și, prin urmare, poate regăsi ușor și precis valorile corespondente din alt tabel sau din altă coloană. Dacă sunteți familiarizat cu VLOOKUP în Excel, această funcționalitate din Power Pivot este similară, dar mult mai ușor de implementat.
Puteți crea formule care fac căutări ca parte a unei coloane calculate sau ca parte a unei măsuri, pentru utilizare într-un raport PivotTable sau PivotChart. Pentru mai multe informații, consultați subiectele următoare:
Câmpuri calculate din Power Pivot
Coloanele calculate în Power Pivot
Această secțiune descrie funcțiile DAX furnizate pentru căutare, împreună cu câteva exemple de utilizare a funcțiilor.
Notă
În funcție de tipul operațiunii de căutare sau de formulei de căutare pe care doriți să o utilizați, poate fi necesar să creați mai întâi o relație între tabele.
Înțelegerea funcțiilor de căutare
Capacitatea de a căuta date corelate sau corelate din alt tabel este utilă în special atunci când tabelul curent conține doar un identificator, dar datele de care aveți nevoie (cum ar fi prețul produsului, numele sau alte valori detaliate) sunt stocate într-un tabel asociat. De asemenea, este utilă atunci când există mai multe rânduri în alt tabel legate de rândul curent sau de valoarea curentă. De exemplu, puteți regăsi cu ușurință toate vânzările legate de o anumită regiune, magazin sau vânzător.
Spre deosebire de funcțiile de căutare din Excel, cum ar fi VLOOKUP, care se bazează pe matrice, sau LOOKUP, care obține prima din mai multe valori care se potrivesc, DAX urmărește relațiile existente între tabelele unite prin chei pentru a obține singura valoare asociată care se potrivește exact. DAX poate, de asemenea, să regăsească un tabel de înregistrări asociate înregistrării curente.
Notă
Dacă sunteți familiarizat cu bazele de date relaționale, vă puteți gândi la căutările din Power Pivot la ceva asemănător cu o instrucțiune de subselectare imbricată din Transact-SQL.
Retrieving a Single Related Value
Funcția RELATED returnează o singură valoare dintr-un alt tabel corelată cu valoarea curentă din tabelul curent. Specificați coloana care conține datele pe care le doriți, iar funcția urmează relațiile existente între tabele pentru a prelua valoarea din coloana specificată în tabelul asociat. În unele cazuri, funcția trebuie să urmeze un lanț de relații pentru a regăsi datele.
De exemplu, să presupunem că aveți o listă cu livrările de astăzi în Excel. Însă lista conține doar numărul ID al unui angajat, un număr ID al comenzii și un număr ID al expeditorului, ceea ce face raportul greu de citit. Pentru a obține informațiile suplimentare dorite, puteți să efectuați conversia listei respective într-un tabel legat Power Pivot, apoi să creați relații la tabelele Angajat și Reseller, potrivind EmployeeID cu câmpul CheieAngajat și ResellerID cu câmpul CheieReseller.
Pentru a afișa informațiile de căutare în tabelul legat, adăugați două coloane calculate noi, cu următoarele formule:
= RELATED('Employees'[EmployeeName])
= RELATED('Resellers'[CompanyName])
Livrările de astăzi înainte de căutare
| OrderID | ID angajat | ID reseller |
|---|---|---|
| 100314 | 230 | 445 |
| 100315 | 15 | 445 |
| 100316 | 76 | 108 |
Tabelul Angajați
| ID angajat | Angajat | Reseller |
|---|---|---|
| 230 | Kuppa Vamsi | Sisteme de cicluri modulare |
| 15 | Pilar Ackeman | Sisteme de cicluri modulare |
| 76 | Kim Ralls | Biciclete asociate |
Livrările de astăzi cu căutări
| OrderID | ID angajat | ID reseller | Angajat | Reseller |
|---|---|---|---|---|
| 100314 | 230 | 445 | Kuppa Vamsi | Sisteme de cicluri modulare |
| 100315 | 15 | 445 | Pilar Ackeman | Sisteme de cicluri modulare |
| 100316 | 76 | 108 | Kim Ralls | Biciclete asociate |
Funcția utilizează relațiile dintre tabelul legat și tabelul Angajați și reselleri pentru a obține numele corect pentru fiecare rând din raport. De asemenea, puteți utiliza valori asociate pentru calcule. Pentru informații suplimentare și exemple, consultați funcția RELATED.
Regăsirea unei liste de valori corelate
Funcția RELATEDTABLE urmărește o relație existentă și returnează un tabel care conține toate rândurile care se potrivesc din tabelul specificat. De exemplu, să presupunem că doriți să aflați câte comenzi a plasat fiecare reseller în anul acesta. Puteți crea o nouă coloană calculată în tabelul Resellers (Resellers) care include următoarea formulă, care caută înregistrările pentru fiecare reseller în tabelul ResellerSales_USD și contorizează numărul de comenzi individuale plasate de fiecare reseller.
=COUNTROWS(RELATEDTABLE(ResellerSales_USD))
În această formulă, funcția RELATEDTABLE obține mai întâi valoarea ResellerKey pentru fiecare reseller din tabelul curent. (Nu trebuie să specificați coloana ID nicăieri în formulă, deoarece Power Pivot utilizează relația existentă între tabele.) Funcția RELATEDTABLE obține apoi toate rândurile din tabelul ResellerSales_USD care sunt asociate fiecărui reseller și le contorizează. Dacă nu există nicio relație (directă sau indirectă) între cele două tabele, veți obține toate rândurile din tabelul ResellerSales_USD.
Pentru sistemele de cicluri modulare ale resellerului din baza noastră de date eșantion, există patru comenzi în tabelul vânzări, astfel că funcția returnează 4. Pentru bicicletele asociate, resellerul nu are vânzări, astfel încât funcția returnează o copie necompletată.
| Reseller | Înregistrări în tabelul Vânzări pentru acest reseller |
|---|---|
| Sisteme de cicluri modulare | Reseller ID |
| 445 | |
| 445 | |
| 445 | |
| 445 | |
| Reseller ID | |
| Biciclete asociate |
Notă
Deoarece funcția RELATEDTABLE returnează un tabel, nu o valoare unică, ea trebuie utilizată ca argument pentru o funcție care efectuează operațiuni în tabele. Pentru mai multe informații, consultați Funcția RELATEDTABLE.