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.

Tabelele de date din Power Pivot sunt esențiale pentru navigarea și calcularea datelor în timp. Acest articol oferă o înțelegere detaliată a tabelelor de date și a modului în care le puteți crea în Power Pivot. În special, acest articol descrie:

  • De ce este important un tabel de date pentru navigarea și calcularea datelor după date și oră.

  • Cum se utilizează Power Pivot pentru a adăuga un tabel de date la modelul de date.

  • Cum se creează noi coloane de date, cum ar fi An, Lună și Perioadă într-un tabel de date.

  • Cum se creează relații între tabelele de date și tabelele de date.

  • Cum să lucrați cu timpul.

Acest articol este destinat utilizatorilor noi în Power Pivot. Cu toate acestea, este important să înțelegeți deja bine importul datelor, crearea de relații și crearea de coloane și măsuri calculate.

Acest articol nu descrie cum se utilizează DAX Time-Intelligence în formulele de măsură. Pentru mai multe informații despre cum să creați măsuri cu funcțiile DAX Time Intelligence, consultați Time Intelligence în Power Pivot din Excel.

Notă: În Power Pivot, numele de "măsură" și "câmp calculat" sunt sinonime. Vom utiliza măsura de nume pe tot parcursul acestui articol. Pentru mai multe informații, consultați Măsuri în Power Pivot.

Cuprins

Înțelegerea tabelelor de date

Aproape toate analizele de date implică navigarea și compararea datelor în datele și orele. De exemplu, poate doriți să însumați volumele de vânzări pentru ultimul trimestru fiscal, apoi să comparați acele totaluri cu alte trimestre sau poate doriți să calculați un sold de încheiere a lunii pentru un cont. În fiecare dintre aceste cazuri, utilizați datele ca modalitate de a grupa și agrega tranzacțiile sau soldurile de vânzări pentru o anumită perioadă de timp.

Raport Power View

Pivot Table Total vânzări pe trimestru fiscal

Un tabel de date poate conține mai multe reprezentări diferite ale datelor și orelor. De exemplu, un tabel de date va avea adesea coloane, cum ar fi An fiscal, Lună, Trimestru sau Perioadă, pe care le puteți selecta drept câmpuri dintr-o Listă de câmpuri atunci când formatați și filtrați datele în rapoarte PivotTable sau Power View.

Lista de câmpuri Power View

Listă de câmpuri Power View

Pentru coloanele de date cum ar fi An, Lună și Trimestru pentru a include toate datele din intervalul respectiv, tabelul de date trebuie să aibă cel puțin o coloană cu un set contiguu de date. Mai mult, acea coloană trebuie să aibă un rând pentru fiecare zi din an inclus în tabelul de date.

De exemplu, dacă datele pe care doriți să le parcurgeți au date începând cu 1 februarie 2010 și până pe 30 noiembrie 2012 și raportați pentru un an calendaristic, atunci veți dori un tabel de date cu cel puțin un interval de date între 1 ianuarie 2010 și 31 decembrie 2012. Fiecare an din tabelul de date trebuie să conțină toate zilele pentru fiecare an. Dacă se va reîmprospăta regulat datele cu date mai noi, se întâmplă să doriți să rulați data de sfârșit cu un an sau două, astfel că nu trebuie să actualizați tabelul de date pe măsură ce trece ora.

Tabel de date cu un set contiguu de date

Tabel de date cu un set contiguu de date

Dacă raportați într-un an fiscal, puteți crea un tabel de date cu un set contiguu de date pentru fiecare an fiscal. De exemplu, dacă anul fiscal începe pe 1 martie și aveți date pentru anii fiscali 2010 până la data curentă (de exemplu, în ANUL 2013), puteți crea un tabel de date care începe pe 01.03.2009 și include cel puțin în fiecare zi din fiecare an fiscal, până la ultima dată din Anul fiscal 2013.

Dacă veți raporta atât pentru anul calendaristic, cât și pentru anul fiscal, nu trebuie să creați tabele de date separate. Un singur tabel de date poate include coloane pentru un an calendaristic, un an fiscal și chiar un calendar perioadă de patru săptămâni. Cel mai important este că tabelul de date conține un set contiguu de date pentru toți anii incluse.

Adăugarea unui tabel de date la modelul de date

Există mai multe modalități de a adăuga un tabel de date la modelul de date:

  • Importați dintr-o bază de date relațională sau din altă sursă de date.

  • Creați un tabel de date în Excel apoi copiați sau creați un link la un tabel nou în Power Pivot.

  • Importați din Microsoft Azure Marketplace.

Să le vedem pe fiecare dintre ele mai îndeaproape.

Importul dintr-o bază de date relațională

Dacă importați unele date sau toate datele dintr-un depozit de date sau alt tip de bază de date relațională, există șanse să există deja un tabel de date și relații între acesta și restul de date pe care le importați. Datele și formatul vor corespunde probabil datelor din datele dvs. de fapt, iar datele probabil încep bine în trecut și vor merge departe în viitor. Tabelul de date pe care doriți să îl importați poate fi foarte mare și conține o zonă de date dincolo de ceea ce va trebui să includeți în modelul de date. Puteți utiliza caracteristicile de filtrare complexe ale Expertului import tabel din Power Pivot pentru a alege selectiv doar datele și coloanele specifice de care aveți nevoie. Acest lucru poate reduce semnificativ dimensiunea registrului de lucru și poate îmbunătăți performanța.

Expert import tabel

Caseta de dialog Expert import tabel

În majoritatea cazurilor, nu va trebui să creați coloane suplimentare, cum ar fi An fiscal, Săptămână, Nume lună etc., deoarece acestea vor exista deja în tabelul importat. Cu toate acestea, în unele cazuri, după ce ați importat tabelul de date în modelul de date, poate fi necesar să creați coloane de date suplimentare, în funcție de o anumită nevoie de raportare. Din fericire, este simplu să utilizați DAX. Veți afla mai multe despre crearea câmpurilor de tabel dată mai târziu. Fiecare mediu este diferit. Dacă nu sunteți sigur dacă sursele de date au o dată sau un tabel calendar asociat, discutați cu administratorul bazei de date.

Crearea unui tabel de date în Excel

Puteți să creați un tabel de date în Excel apoi să-l copiați într-un tabel nou din modelul de date. Acest lucru este foarte ușor de făcut și vă oferă multă flexibilitate.

Când creați un tabel de date în Excel, începeți cu o singură coloană cu un interval contiguu de date. Apoi puteți crea coloane suplimentare, cum ar fi An, Trimestru, Lună, An fiscal, Perioadă etc. în foaia de lucru Excel utilizând formule Excel sau, după ce copiați tabelul în Modelul de date, le puteți crea drept coloane calculate. Crearea coloanelor de date suplimentare în Power Pivot este descrisă în secțiunea Adăugarea coloanelor de dată nouă în tabelul de date din cuprinsul ulterior al articolului.

Cum să: Creați un tabel de date în Excel și copiați-l în modelul de date

  1. În Excel, într-o foaie de lucru necompletată, în celula A1,tastați un nume de antet de coloană pentru a identifica un interval de date. De obicei, aceasta va fi ceva de genul Date, DateTime sau DateKey.

  2. În celula A2,tastați o dată de început. De exemplu, 01.01.2010.

  3. Faceți clic pe handle-ul de umplere și glisați-l în jos la un număr de rând care include o dată de sfârșit. De exemplu, 31.12.2016.

    Coloană de date în Excel

  4. Selectați toate rândurile din coloana Dată (inclusiv numele antetului din celula A1).

  5. În grupul Stiluri, faceți clic pe Formatare catabel , apoi selectați un stil.

  6. În caseta de dialog Formatare ca tabel, faceți clic pe OK.

    Coloană de date în Power Pivot

  7. Copiați toate rândurile, inclusiv antetul.

  8. În Power Pivot, pe fila Pornire, faceți clic pe Lipire.

  9. În Examinare lipire > nume tabel, tastați un nume, cum ar fi Dată sau Calendar. Lăsați bifate caseta Utilizați primul rând ca anteturi de coloană, apoi faceți clic pe OK.

    Examinare lipire

    Noul tabel de date (denumit Calendar în acest exemplu) din Power Pivot arată astfel:

    Tabel de date în Power Pivot

    Notă: De asemenea, puteți crea un tabel legat utilizând Adăugare la model de date. Însă, acest lucru face ca registrul de lucru să nu fie inutil de mare, deoarece registrul de lucru are două versiuni ale tabelului de date; una în Excel și una în Power Pivot.

Notă: Data numelui este un cuvânt cheie din Power Pivot. Dacă de name the table you create in Power Pivot Date, atunci va trebui să încadrați numele tabelului cu ghilimele unice în orice formule DAX care fac referire la acesta într-un argument. Toate imaginile și formulele exemplioase din acest articol se referă la un tabel de date creat în Calendarul denumitPower Pivot.

Acum aveți un tabel de date în modelul de date. Puteți adăuga noi coloane de date, cum ar fi An, Lună etc. utilizând DAX.

Adăugarea de coloane noi de date în tabelul de date

Un tabel de date cu o singură coloană de date care are un rând pentru fiecare zi pentru fiecare an este important pentru definirea tuturor datelor dintr-un interval de date. De asemenea, este necesar pentru a crea o relație între tabelul de informații și tabelul de date. Dar acea singură coloană de date cu un rând pentru fiecare zi nu este utilă atunci când analizați după date dintr-un raport PivotTable sau Power View. Doriți ca tabelul de date să includă coloane care vă ajută să agregarea datele pentru o zonă sau un grup de date. De exemplu, poate că doriți să însumați vânzările după lună sau trimestru sau să creați o măsură care calculează creșterea de la an la an. În fiecare dintre aceste cazuri, tabelul de date necesită coloane de an, lună sau trimestru care vă permit să agregți datele pentru acea perioadă.

Dacă ați importat tabelul de date dintr-o sursă de date relațională, este posibil ca acesta să includă deja diferitele tipuri de coloane de date dorite. În unele cazuri, este posibil să doriți să modificați unele dintre aceste coloane sau să creați coloane de date suplimentare. Acest lucru este valabil mai ales dacă creați propriul tabel de date în Excel și îl copiați în modelul de date. Din fericire, crearea de noi coloane de date în Power Pivot este destul de simplă cu funcțiile pentru dată și oră din DAX.

Sfat: Dacă nu ați lucrat încă cu DAX, un loc foarte bun în care să începeți să învățați este cu Pornire rapidă: Aflați noțiunile de bază despre DAX în 30 de minute Office.com.

Funcțiile DAX pentru dată și oră

Dacă ați lucrat vreodată cu funcții de dată și oră în Excel formule, probabil că veți fi familiarizat cu funcțiile pentru dată și oră. Deși aceste funcții sunt similare cu corespondentele lor din Excel, există câteva diferențe importante:

  • Funcțiile DAX Date și Oră utilizează un tip de date datetime.

  • Acestea pot lua valori dintr-o coloană ca argument.

  • Acestea pot fi utilizate pentru a returna și/sau a manipula valorile de dată.

Aceste funcții sunt utilizate adesea atunci când creați coloane de date particularizate într-un tabel de date, așa că sunt importante de înțeles. Vom utiliza un număr dintre aceste funcții pentru a crea coloane pentru An, Trimestru,Month și așa mai departe.

Notă: Funcțiile Dată și Oră din DAX nu sunt identice cu funcțiile Time Intelligence. Aflați mai multe despre Time Intelligence în Power Pivot din Excel 2013.

DAX include următoarele funcții pentru dată și oră:

Există multe alte funcții DAX pe care le puteți utiliza și în formule. De exemplu, multe dintre formulele descrise aici utilizează funcții matematice și trigonometrice precum MOD și TRUNC,funcții logice ca IFși text, cum ar fi FORMAT Pentru mai multe informații despre alte funcții DAX, consultați secțiunea Resurse suplimentare din acest articol.

Exemple de formule pentru un an calendaristic

Următoarele exemple descriu formulele utilizate pentru a crea coloane suplimentare într-un tabel de date numit Calendar. O coloană, denumită Dată, există deja și conține un interval contiguu de date între 01.01.2010 și 31.12.2016.

An

=YEAR([dată])

În această formulă, funcția YEAR returnează anul din valoarea din coloana Dată. Deoarece valoarea din coloana Dată este de tip de date datetime, funcția YEAR știe cum să returneze anul din aceasta.

Coloana An

Lună

=MONTH([dată])

În această formulă, la fel ca în cazul funcției YEAR, putem utiliza funcția MONTH pentru a returna o valoare de lună din coloana Dată.

Coloana Lună

Trimestru

=INT(([Lună]+2)/3)

În această formulă, utilizăm funcția INT pentru a returna o valoare de dată ca număr întreg. Argumentul pe care îl specificăm pentru funcția INT este valoarea din coloana Lună, adaugă 2 și împarte-l la 3 pentru a obține trimestrul nostru, 1 prin 4.

Coloana Trimestru

Nume lună

=FORMAT([dată],"mmmm")

În această formulă, pentru a obține numele lunii, utilizăm funcția FORMAT pentru a efectua conversia unei valori numerice din coloana Dată în text. Specificăm coloana Dată ca prim argument, apoi formatul; Dorim ca numele lunii să arate toate caracterele, așa că utilizăm "mmmm". Rezultatul nostru arată astfel:

Coloana Nume coloană

Dacă dorim să returnăm numele lunii abreviat la trei litere, vom utiliza "mmm" în argumentul de formatare.

Ziua săptămânii

=FORMAT([dată],"ddd")

În această formulă, utilizăm funcția FORMAT pentru a obține numele zilei. Pentru că dorim doar un nume abreviat pentru zi, specificăm "ddd" în argumentul de format.

Coloana Ziua săptămânii
Raport PivotTable eșantion

Odată ce aveți câmpuri pentru date cum ar fi An, Trimestru, Lună etc., le puteți utiliza într-un raport Sau PivotTable. De exemplu, următoarea imagine arată câmpul Dimensiune Vânzări din tabelul Date vânzări în VALORI și An și Trimestru din tabelul de dimensiune Calendar din RÂNDURI. SalesAmount este agregată pentru contextul de an și trimestru.

Raport PivotTable eșantion

Exemple de formule pentru un an fiscal

An fiscal

=IF([Lună]<= 6,[An],[An]+1)

În acest exemplu, anul fiscal începe pe 1 iulie.

Nu există nicio funcție care să poată extrage un an fiscal dintr-o valoare de dată, deoarece datele de început și de sfârșit pentru un an fiscal sunt adesea diferite de cele ale unui an calendaristic. Pentru a obține anul fiscal, utilizăm mai întâi o funcție IF pentru a testa dacă valoarea pentru Lună este mai mică sau egală cu 6. În al doilea argument, dacă valoarea pentru Lună este mai mică sau egală cu 6, atunci returnează valoarea din coloana An. Dacă nu, returnează valoarea din An și adaugă 1.

Coloana An fiscal

Altă modalitate de a specifica o valoare pentru luna de sfârșit a anului fiscal este să creați o măsură care specifică pur și simplu luna. De exemplu, AA:=6. Apoi aveți posibilitatea să faceți referire la numele măsurii în locul numărului lunii. De exemplu, =IF([Lună]<=[AAA],[An],[An]+1). Acest lucru oferă mai multă flexibilitate atunci când faceți referire la luna de sfârșit a anului fiscal în mai multe formulediferite.

Lună fiscală

=IF([Lună]<= 6, 6+[Lună], [Lună]- 6)

În această formulă, specificăm dacă valoarea pentru [Lună] este mai mică sau egală cu 6, atunci ia 6 și adaugă valoarea din Lună, altfel scade 6 din valoarea din [Lună].

Coloana Lună fiscală

Trimestru fiscal

=INT(([Month Fiscal]+2)/3)

Formula pe care o utilizăm pentru FiscalQuarter este aproape aceeași cu cea pentru trimestrul din anul calendaristic. Singura diferență este faptul că specificăm [Lună Fiscal] în loc de [Lună].

Coloana Trimestru fiscal

Sărbători sau date speciale

Poate că doriți să includeți o coloană de date care indică faptul că anumite date sunt sărbători sau alte date speciale. De exemplu, poate doriți să însumați totalurile de vânzări pentru Ziua de Anul nou, adăugând un câmp Sărbători într-un PivotTable, ca slicer sau filtrând. În alte cazuri, este posibil să doriți să excludeți acele date din alte coloane de date calendaristice sau într-o măsură.

Includerea sărbătorilor sau zilelor speciale este destul de simplă. Puteți crea un tabel în tabele Excel datele pe care doriți să le includeți. Apoi puteți să copiați sau să utilizați Adăugare la model de date pentru a-l adăuga la modelul de date ca tabel legat. În majoritatea cazurilor, nu este necesar să creați o relație între tabel și tabelul Calendar. Toate formulele care fac referire la ea pot utiliza funcția LOOKUPVALUE pentru a returna valori.

Mai jos este un exemplu de tabel creat în Excel care include sărbători de adăugat la tabelul de date:

Dată

Sărbătoare

1/1/2010

Anul nou

11/25/2010

2010

12/25/2010

Crăciun

01.01.11

Anul nou

11/24/2011

2010

12/25/2011

Crăciun

01.01.12

Anul nou

11/22/2012

2010

12/25/2012

Crăciun

1/1/2013

Anul nou

11/28/2013

2010

12/25/2013

Crăciun

11/27/2014

2010

12/25/2014

Crăciun

01.01.2014

Anul nou

11/27/2014

2010

12/25/2014

Crăciun

1/1/2015

Anul nou

11/26/2014

2010

12/25/2015

Crăciun

01.01.16

Anul nou

11/24/2016

2010

12/25/2016

Crăciun

În tabelul de date, creăm o coloană denumită Sărbători și utilizăm o formulă ca aceasta:

=LOOKUPVALUE(Sărbători[Sărbători],Sărbători[dată],Calendar[dată])

Să privim mai cu atenție această formulă.

Utilizăm funcția LOOKUPVALUE pentru a obține valori din coloana Sărbători din tabelul Sărbători. În primul argument, specificăm coloana unde va fi valoarea rezultatului nostru. Specificăm coloana Sărbători din tabelul Sărbători, deoarece aceasta este valoarea pe care dorim să o returnăm.

=LOOKUPVALUE(Sărbători[Sărbători],Sărbători[dată],Calendar[dată])

Apoi specificăm al doilea argument, coloana de căutare care are datele pe care doriți să le căutați. Specificăm coloana Dată din tabelul Sărbători, astfel:

=LOOKUPVALUE(Sărbători[Sărbători],Sărbători[dată],Calendar[dată])

În sfârșit, specificăm coloana din tabelul Calendar, care conține datele pe care doriți să le căutați în tabelul Sărbători. Desigur, coloana Data este în tabelul Calendar.

=LOOKUPVALUE(Sărbători[Sărbători],Sărbători[dată],Calendar[dată])

Coloana Sărbători va returna numele sărbătorilor pentru fiecare rând care are o valoare de dată care se potrivește cu o dată din tabelul Sărbători.

Tabelul Sărbători

Calendar particularizat - treisprezece perioade de patru săptămâni

Unele organizații, cum ar fi serviciile de vânzare cu amănuntul sau pentru alimente, raportează adesea perioade diferite, cum ar fi cele trei perioade de patru săptămâni. Cu un calendar perioadă de patru săptămâni, fiecare perioadă este de 28 de zile; Prin urmare, fiecare perioadă conține patru zile de luni, patru marți, patru miercuri și așa mai departe. Fiecare perioadă conține același număr de zile și, de obicei, sărbătorile se vor încadrează în aceeași perioadă din fiecare an. Puteți alege să începeți un punct în orice zi a săptămânii. La fel ca în cazul datelor dintr-un calendar sau într-un an fiscal, puteți utiliza DAX pentru a crea coloane suplimentare cu date particularizate.

În exemplele de mai jos, prima perioadă completă începe în prima duminică a anului fiscal. În acest caz, anul fiscal începe pe 01.07.

Săptămână

Această valoare ne dă numărul săptămânii începând cu prima săptămână completă din anul fiscal. În acest exemplu, prima săptămână completă începe duminică, deci prima săptămână completă din primul an fiscal din tabelul Calendar începe de fapt pe 4 septembrie 2010 și continuă până în ultima săptămână completă din tabelul Calendar. Deși această valoare în sine nu este utilă în analiză, este necesară calcularea pentru utilizare în alte formule pentru perioada de 28 de zile.

=INT([dată]-40356)/7)

Să privim mai cu atenție această formulă.

Mai întâi, creăm o formulă care returnează valori din coloana Dată ca un întreg, astfel:

=INT([dată])

Apoi dorim să vedem prima duminică din primul an fiscal. Vedem că este 04.07.2010.

Coloana Săptămână

Acum scădeți 40356 (care este întregul pentru 27.06.2010, ultima duminică din anul fiscal anterior) din acea valoare pentru a obține numărul de zile de la începutul zilelor din tabelul Calendar, astfel:

=INT([dată]-40356)

Apoi împărțiți rezultatul la 7 (zile într-o săptămână), astfel:

=INT(([dată]-40356)/7)

Rezultatul arată astfel:

Coloana Săptămână

Punct

Perioada din acest calendar particularizat conține 28 de zile și va începe întotdeauna într-o duminică. Această coloană va returna numărul perioadei care începe cu prima duminică din primul an fiscal.

=INT(([Săptămână]+3)/4)

Să privim mai cu atenție această formulă.

Mai întâi, creăm o formulă care returnează o valoare din coloana Săptămână ca un întreg, astfel:

=INT([Săptămână])

Apoi adăugați 3 la acea valoare, astfel:

=INT([Săptămână]+3)

Apoi împărțiți rezultatul la 4, astfel:

=INT(([Săptămână]+3)/4)

Rezultatul arată astfel:

Coloana Perioadă

Perioadă An fiscal

Această valoare returnează anul fiscal pentru o perioadă.

=INT(([Punct]+12)/13)+2008

Să privim mai cu atenție această formulă.

Mai întâi, creăm o formulă care returnează o valoare din Punct și adună 12:

= ([Punct]+12)

Împărțim rezultatul la 13, deoarece există întotdeauna 28 de perioade de câte 28 de zile în anul fiscal:

=(([Punct]+12)/13)

Adăugăm 2010, deoarece este primul an din tabel:

=(([Punct]+12)/13)+2010

În fine, utilizăm funcția INT pentru a elimina orice fracțiune a rezultatului și a returna un număr întreg, atunci când este împărțit la 13, astfel:

=INT(([Punct]+12)/13)+2010

Rezultatul arată astfel:

Coloana Perioadă an fiscal

Perioada din Anul Fiscal

Această valoare returnează numărul perioadei, 1 -13, începând cu prima perioadă completă (începând cu duminică) din fiecare an fiscal.

=IF(MOD([Punct],13), MOD([Punct],13),13)

Această formulă este puțin mai complexă, așa că o vom descrie mai întâi într-o limbă pe care o înțelegem mai bine. Această formulă spune că împărțiți valoarea din [Punct] la 13 pentru a obține un număr perioadă (1-13) din an. Dacă acel număr este 0, returnează 13.

Mai întâi, creăm o formulă care returnează restul valorii din punct la 13. Putem utiliza MOD (funcții matematice și trigonometrice) astfel:

=MOD([Punct],13)

Acest lucru, în cea mai mare parte, ne oferă rezultatul dorit, cu excepția cazului în care valoarea pentru Perioadă este 0, deoarece acele date nu se încadrează în primul an fiscal, ca în primele cinci zile din exemplul nostru de tabel de date Calendar. Ne putem ocupa de acest lucru cu o funcție IF. În cazul în care rezultatul este 0, vom returna 13, astfel:

=IF(MOD([Punct],13),MOD([Punct],13),13)

Rezultatul arată astfel:

Coloana Perioadă din an fiscal

Raport PivotTable eșantion

Imaginea de mai jos afișează un PivotTable cu câmpul Valoare SalesAmount din tabelul Date Vânzări în VALUES și PeriodFiscalYear și PeriodInFiscal Câmpuri de an din tabelul de dimensiune dată Calendar în RÂNDURI. Volumul Vânzări este agregat pentru context după anul fiscal și perioada de 28 de zile din anul fiscal.

PivotTable eșantion pentru anul fiscal

Relații

După ce ați creat un tabel de date în modelul de date, pentru a începe să răsfoiți datele în rapoarte și rapoarte PivotTable și pentru a agrega date pe baza coloanelor din tabelul de dimensiuni pentru date, trebuie să creați o relație între tabelul de informații cu datele tranzacției și tabelul de date.

Pentru că trebuie să creați o relație bazată pe date, se va asigura că creați relația între coloanele ale căror valori sunt de tipul de date datăoră (Dată).

Pentru fiecare valoare de dată din tabelul de informații, coloana de căutare asociate din tabelul de date trebuie să conțină valori care se potrivesc. De exemplu, un rând (înregistrarea tranzacției) din tabelul DateKey (DateKey) cu o valoare 15/8/2012 12:00 AM în coloana DateKey (CheieOră) trebuie să aibă o valoare corespunzătoare în coloana Dată corelată din tabelul dată (denumit Calendar). Acesta este unul dintre motivele cele mai importante pentru care doriți ca coloana de date din tabelul de date să conțină un interval contiguu de date care include orice dată posibilă în tabelul de informații.

Relațiile în vizualizarea diagramă

Notă: Deși coloana de date din fiecare tabel trebuie să fie de același tip de date (Dată), formatul fiecărei coloane nu are sens.

Notă: Dacă Power Pivot nu vă permite să creați relații între cele două tabele, este posibil ca câmpurile de date să nu stocheazăă data și ora la același nivel de precizie. În funcție de formatarea coloanei, valorile pot arăta la fel, dar pot fi stocate diferit. Citiți mai multe despre lucrul cu timpul.

Notă: Evitați să utilizați taste surogate întregi în relații. Când importați date dintr-o sursă de date relațională, adesea coloanele de dată și oră sunt reprezentate printr-o cheie surogată, care este o coloană întreagă utilizată pentru a reprezenta o dată unică. În Power Pivot, trebuie să evitați să creați relații utilizând chei de tip dată/oră număr întreg; în schimb, utilizați coloane care conțin valori unice cu un tip de date dată. Deși utilizarea cheilor surogate este considerată o practică bună în depozitele de date tradiționale, cheile întregi nu sunt necesare în Power Pivot și pot îngreuna gruparea valorilor în rapoartele PivotTable după perioade de date diferite.

Dacă obțineți o eroare de nepotrivire tip atunci când încercați să creați o relație, acest lucru se întâmplă probabil deoarece coloana din tabelul de date nu este de tipul Dată. Acest lucru se poate întâmpla atunci când Power Pivot nu poate converti automat o non-dată (de obicei un tip de date text) într-un tip de date dată. Puteți utiliza în continuare coloana din tabelul de informații, dar va trebui să efectuați conversia datelor cu o formulă DAX într-o coloană calculată nouă. Consultați Conversia datelor tip de date text într-un tip de date dată ulterior în anexă.

Mai multe relații

În unele cazuri, poate fi necesar să creați mai multe relații sau să creați mai multe tabele de date. De exemplu, dacă există mai multe câmpuri dată în tabelul Date vânzări, cum ar fi DateKey, ShipDate și ReturnDate, toate pot avea relații cu câmpul Dată din tabelul de date Calendar, dar numai unul dintre acestea poate fi o relație activă. În acest caz, deoarece DateKey reprezintă data tranzacției și, prin urmare, data cea mai importantă, aceasta ar servi cel mai bine ca relație activă. Celelalte au relații inactive.

Următorul raport PivotTable calculează vânzările totale după An fiscal și Trimestru fiscal. O măsură denumită Total vânzări, cu formula Total vânzări:=SUM([Valoare SalesAmount]), este plasată în VALUES, iar câmpurile An Fiscal și FiscalQuarter din tabelul de date Calendar sunt plasate în ROWS.

Totalul vânzărilor după trimestrul fiscal PivotTable Listă de câmpuri PivotTable

Acest raport PivotTable direct funcționează corect deoarece dorim să însumăm vânzările totale la data tranzacțieidin DateKey. Măsura noastră Total vânzări utilizează datele din DateKey și este însumată după anul fiscal și trimestrul fiscal, deoarece există o relație între DateKey din tabelul Vânzări și coloana Date din tabelul de date Calendar.

Relații inactive

Dar ce putem face dacă am dori să însumăm totalul vânzărilor nu după data tranzacției, ci după data de livrare? Avem nevoie de o relație între coloana DatăLivrare din tabelul Vânzări și coloana Dată din tabelul Calendar. Dacă nu creăm acea relație, agregările noastre se bazează întotdeauna pe data tranzacției. Cu toate acestea, putem avea mai multe relații, chiar dacă numai una poate fi activă și, deoarece data tranzacției este cea mai importantă, ea primește relația activă cu tabelul Calendar.

În acest caz, ShipDate are o relație inactivă, astfel că orice formulă de măsură creată pentru a agrega date pe baza datelor de livrare trebuie să specifice relația inactivă utilizând funcția USERELATIONSHIP.

De exemplu, deoarece există o relație inactivă între coloana DatăLivrare din tabelul Vânzări și coloana Dată din tabelul Calendar, putem crea o măsură care însumează totalul vânzărilor după data de livrare. Utilizăm o formulă ca aceasta pentru a specifica relația de utilizat:

Total vânzări după data de livrare:=CALCULATE(SUM(Vânzări[Valoare SalesAmount]), USERELATIONSHIP(Vânzări[DatăLivrare], Calendar[Dată]))

Această formulă eșuează: Calculați o sumă pentru Cantitatea SalesAmount, dar filtrați utilizând relația dintre coloana DatăLivrare din tabelul Vânzări și coloana Dată din tabelul Calendar.

Acum, dacă creăm un raport PivotTable și am pus măsura Total vânzări după data de livrare în VALORI și An fiscal și Trimestru fiscal pe RÂNDURI, vedem același Total general, dar toate celelalte sume pentru anul fiscal și trimestrul fiscal sunt diferite, deoarece se bazează pe data de livrare și nu pe data tranzacției.

PivotTable Total vânzări după data livrării Listă de câmpuri PivotTable

Utilizarea relațiilor inactive vă permite să utilizați un singur tabel de date, dar necesită ca orice măsuri (cum ar fi Total vânzări după data de livrare) să facă referire la relația inactivă din formula sa. Există o altă alternativă, mai ales utilizarea mai multor tabele de date.

Mai multe tabele de date

Altă modalitate de a lucra cu mai multe coloane de date în tabelul de date este să creați mai multe tabele de date și să creați relații active separate între ele. Să privim din nou exemplul cu tabelul Vânzări. Avem trei coloane cu date pentru care am putea dori să agregați date:

  • O DateKey cu data de vânzare pentru fiecare tranzacție.

  • O DatăLivrare - cu data și ora la care articolele vândute au fost expediate clientului.

  • A ReturnDate - with the date and time when one or when one or more item returned was received.

Rețineți, câmpul DateKey cu data tranzacției este cel mai important. Vom face majoritatea agregările noastre pe baza acestor date, așa că cu siguranță ne vom dori o relație între ea și coloana Dată din tabelul Calendar. Dacă nu doriți să creăm relații inactive între DatăLivrare și DatăLivrare și câmpul Dată din tabelul Calendar, necesitând astfel formule de măsură speciale, putem crea tabele de date suplimentare pentru data de livrare și data de returnare. Apoi putem crea relații active între ele.

Relațiile cu mai multe tabele de date calendaristice în vizualizarea diagramă

În acest exemplu, am creat un alt tabel de date numit ShipCalendar. Desigur, acest lucru înseamnă și crearea de coloane de date suplimentare și, deoarece aceste coloane de date sunt într-un alt tabel de date, dorim să le depăsim prin faptul că le diferențiază de aceleași coloane din tabelul Calendar. De exemplu, am creat coloane denumite An ShipYear, ShipMonth, ShipQuarter etc.

Dacă creăm raportul PivotTable și am pus măsura Total vânzări în VALUES și ShipFiscalYear și ShipFiscalQuarter pe ROWS, vedem aceleași rezultate pe care le-am văzut atunci când am creat o relație inactivă și un câmp calculat Total vânzări în funcție de data de livrare.

PivotTable Total vânzări după data livrării cu calendarul livrărilor Listă de câmpuri Pivot Table

Fiecare dintre aceste abordări necesită atenție. Atunci când utilizați mai multe relații cu un singur tabel de date, poate fi nevoie să creați măsuri speciale care tranzitează relațiile inactive utilizând funcția USERELATIONSHIP. Pe de altă parte, crearea mai multor tabele de date poate fi derutantă într-o Listă de câmpuri și, deoarece aveți mai multe tabele în modelul de date, va fi nevoie de mai multă memorie. Experimentați cu ceea ce funcționează cel mai bine pentru voi.

Proprietatea Tabel de date

Proprietatea Date Table setează metadatele necesare pentru Time-Intelligence cum ar fi TOTALYTD, PREVIOUSMONTH și DATESBETWEEN să funcționeze corect. Atunci când un calcul este rulat utilizând una dintre aceste funcții, motorul de formule al Power Pivot știe unde să mergeți pentru a obține datele de care are nevoie.

Avertisment: Dacă această proprietate nu este setată, măsurile care utilizează DAX Time-Intelligence pot să nu returneze rezultate corecte.

Atunci când setați proprietatea Tabel de date, specificați un tabel de date și o coloană de date din tipul de date Dată (datetime).

Caseta de dialog Marcare ca tabel Dată

Cum să: Setați proprietatea Tabel de date

  1. În fereastra PowerPivot de date, selectați tabelul Calendar.

  2. Pe fila Proiectare, faceți clic pe Marcare ca tabel de date.

  3. În caseta de dialog Marcare ca tabel dată, selectați o coloană cu valori unice și tipul de date Dată.

Lucrul cu timpul

Toate valorile dată cu tipul Date în Excel sau SQL Server sunt de fapt un număr. Numărul este inclus în cifrele care se referă la o oră. În multe cazuri, acest timp pentru fiecare rând este miezul nopții. De exemplu, dacă un câmp DateTimeKey dintr-un tabel Date Vânzări are valori cum ar fi 19.10.2010 12:00:00 AM, aceasta înseamnă că valorile sunt la nivelul de precizie al zilei. Dacă valorile câmpului DateTimeKey au o oră inclusă, de exemplu, 19.10.2010 8:44:00, aceasta înseamnă că valorile sunt la nivelul de precizie minute. Valorile pot fi și la nivelul de precizie al orei sau chiar la nivelul de precizie al secundelor. Nivelul de precizie al valorii de timp va avea un impact semnificativ asupra modului în care creați tabelul de date și relațiile dintre acesta și tabelul de date.

Trebuie să determinați dacă veți agrega datele la un nivel de precizie pentru o zi sau la un nivel de timp de precizie. Cu alte cuvinte, poate doriți să utilizați coloanele din tabelul de date, cum ar fi Dimineața, Ziua după-amiezirii sau Ora ca câmpuri de dată pentru oră în zonele Rând, Coloană sau Filtru ale unui PivotTable.

Notă: Zile sunt cea mai mică unitate de timp cu care poate funcționa funcțiile DAX Time Intelligence. Dacă nu trebuie să lucrați cu valori de timp, ar trebui să reduceți precizia datelor pentru a utiliza zile ca unitate minimă.

Dacă intenționați să agregați datele la nivelul de timp, atunci tabelul de date va avea nevoie de o coloană de date cu ora inclusă. De fapt, va avea nevoie de o coloană de date cu un rând pentru fiecare oră sau poate la fiecare minut, din fiecare zi, pentru fiecare an din intervalul de date. Aceasta deoarece, pentru a crea o relație între coloana CheieTimeOră Din tabelul de date și coloana de date din tabelul de date, trebuie să aveți valori care se potrivesc. După cum vă puteți imaginați, dacă includeți mulți ani, acest lucru poate fi util pentru un tabel cu date foarte mari.

Totuși, în majoritatea cazurilor, doriți să agregți datele numai pentru ziua în parte. Cu alte cuvinte, veți utiliza coloane cum ar fi An, Lună, Săptămână sau Ziua săptămânii ca câmpuri în zonele Rând, Coloană sau Filtru ale unui PivotTable. În acest caz, coloana de date din tabelul de date trebuie să conțină doar un rând pentru fiecare zi dintr-un an, așa cum am descris anterior.

În cazul în care coloana de date include un nivel de timp de precizie, dar veți agrega doar la un nivel de zi, pentru a crea relația dintre tabelul de date și tabelul de date, poate fi nevoie să modificați tabelul de date prin crearea unei coloane noi care trunchiază valorile din coloana de date cu o valoare zi. Cu alte cuvinte, faceți conversia unei valori cum ar fi 19.10.2010 8:44:00la19.10.2010 12:00:00AM. Apoi puteți crea relația dintre această coloană nouă și coloana de date din tabelul de date, deoarece valorile se potrivesc.

Să vedem un exemplu. Această imagine afișează o coloană CheieOrăTatăOră în tabelul Detalii vânzări. Toate agregările pentru datele din acest tabel trebuie să fie numai la nivelul zilei, utilizând coloane din tabelul de date Calendar, cum ar fi An, Lună, Trimestru etc. Ora inclusă în valoare nu este relevantă, doar data reală.

Coloana CheieDatăOră

Pentru că nu trebuie să analizăm aceste date la nivel de oră, nu avem nevoie de coloana Dată din tabelul de date Calendar pentru a include un rând pentru fiecare oră și fiecare minut din fiecare zi a anului. Coloana Dată din tabelul de date arată astfel:

Coloană de date în Power Pivot

Pentru a crea o relație între coloana DateTimeKey (CheieOră) din tabelul Vânzări și coloana Date din tabelul Calendar, putem să creăm o nouă coloană calculată în tabelul Sales fact (DateTimeKey) și să utilizăm funcția TRUNC pentru a trunchia valoarea dată și oră din coloana DateTimeKey (CheieOră) într-o valoare de dată care se potrivește cu valorile din coloana Dată din tabelul Calendar. Formula noastră arată astfel:

=TRUNC([Cheie DateTime],0)

Acest lucru ne oferă o coloană nouă (am denumit DateKey) cu data din coloana DateTimeKey și o oră de 12:00:00 AM pentru fiecare rând:

Coloana CheieDată

Acum putem crea o relație între această coloană nouă (DateKey) și coloana Date din tabelul Calendar.

În mod similar, putem crea o coloană calculată în tabelul Vânzări, care reduce precizia de timp în coloana DateTimeKey la nivelul de precizie al orei. În acest caz, funcția TRUNC nu va funcționa, dar putem utiliza totuși alte funcții DAX Pentru a extrage și a concatena o valoare nouă la un nivel de oră de precizie. Putem utiliza o formulă ca aceasta:

= DATE (YEAR([CheieTime]), MONTH([CheieOrăTime]), DAY([DateTimeKey]) ) + TIME (HOUR([DateTimeKey]), 0, 0)

Noua noastră coloană arată astfel:

Coloana CheieDatăOră

Cu condiția ca coloana Dată din tabelul de date să conține valori la nivelul de precizie al orei, putem crea apoi o relație între ele.

Faceți datele mai utilizabile

Multe dintre coloanele de date create în tabelul de date sunt necesare pentru alte câmpuri, dar în analiză nu sunt chiar atât de utile. De exemplu, câmpul DateKey (CheieDată) din tabelul Vânzări la care am făcut referire și afișat în acest articol este important, deoarece pentru fiecare tranzacție, tranzacția respectivă este înregistrată ca apar la o anumită dată și oră. Dar, dintr-o analiză și un punct de raportare, nu este tot atât de util, deoarece nu îl putem utiliza ca rând, coloană sau câmp de filtrare într-un raport sau tabel Pivot.

În mod similar, în exemplul nostru, coloana Dată din tabelul Calendar este foarte utilă, de fapt critică, dar nu o puteți utiliza ca dimensiune într-un raport PivotTable.

Pentru a păstra tabelele și coloanele din ele cât mai utile posibil și pentru a simplifica navigarea în listele de câmpuri din raportul PivotTable sau Power View, este important să ascundeți coloanele inutile din instrumentele client. De asemenea, poate că doriți să ascundeți anumite tabele. Tabelul Sărbători afișat mai devreme conține date de sărbători care sunt importante pentru anumite coloane din tabelul Calendar, dar nu puteți utiliza coloanele Dată și Sărbători din tabelul Sărbători ca câmpuri într-un raport PivotTable. Aici, din nou, pentru a simplifica navigarea în Listele de câmpuri, puteți ascunde întregul tabel Sărbători.

Un alt aspect important al lucruui cu datele este convențiile de denumire. Puteți de name tables and columns in Power Pivot whatever you want. Dar rețineți, mai ales dacă veți partaja registrul de lucru cu alți utilizatori, o convenție bună de denumire facilitează identificarea tabelelor și datelor, nu doar în listele de câmpuri, ci și în Power Pivot și în formulele DAX.

După ce aveți un tabel de date în modelul de date, puteți începe să creați măsuri care vă vor ajuta să obțineți la zi datele. Unele pot fi la fel de simple ca însumarea totalului de vânzări pentru anul curent, iar altele pot fi mai complexe, unde trebuie să filtrați după un anumit interval de date unice. Aflați mai multe în Măsuri în Funcțiile Power Pivot și Time Intelligence.

Anexă

Conversia datelor de tip de date text într-un tip de date dată

În unele cazuri, un tabel de informații cu date despre tranzacții poate conține date de tip de date text. Aceasta înseamnă că o dată care apare ca 2012-12-04T11:47:09 este de fapt nu este deloc o dată sau cel puțin nu tipul de dată pe care Power Pivot îl poate înțelege. Este, de fapt, doar un text care citește ca o dată. Pentru a crea o relație între o coloană de date din tabelul de date și o coloană de date dintr-un tabel de date, ambele coloane trebuie să fie de tipul Date.

De obicei, când încercați să modificați tipul de date pentru o coloană de date care sunt de tip text într-un tip de date dată, Power Pivot poate interpreta datele și le poate transforma automat într-un tip de date dată adevărat. Dacă Power Pivot nu poate face o conversie a tipului de date, veți primi o eroare de nepotrivire tip.

Cu toate acestea, datele se pot transforma într-un tip adevărat de date. Puteți să creați o nouă coloană calculată și să utilizați o formulă DAX pentru a analiza anul, luna, ziua, ora etc. din șirurile text, apoi să o concatenați la loc într-un mod în care Power Pivot poate citi ca dată reală.

În acest exemplu, am importat un tabel de date denumit Vânzări în Power Pivot. Conține o coloană numită DateTime. Valorile apar astfel:

Coloana DatăOră într-un tabel de informații.

Dacă privim Tipul de date în fila Pornire din grupul Formatare din Power Pivot, vedem că acesta este tip de date Text.

Tip de date în panglică

Nu putem crea o relație între coloana DateTime și coloana Data din tabelul de date, deoarece tipurile de date nu se potrivesc. Dacă încercăm să schimbăm tipul de date la Dată,apare o eroare de nepotrivire tip:

Eroare de nepotrivire

În acest caz, Power Pivot nu a putut efectua conversia tipului de date de la text la dată. Putem utiliza în continuare această coloană, dar pentru a o transforma într-un tip adevărat de date, trebuie să creăm o coloană nouă care analiza textul și îl creează din nou într-o valoare Pe care Power Pivot o poate crea într-un tip de date Dată.

Rețineți: în secțiunea Lucrul cu timpul de mai sus din acest articol; dacă nu este necesar ca analiza să fie la un nivel de precizie a zilei, trebuie să efectuați conversia datelor din tabelul de date într-un nivel de precizie a zilei. Cu acest lucru în minte, dorim ca valorile din noua coloană să fie la nivelul de precizie al zilei (excluzând ora). Putem atât să facem conversia valorilor din coloana DatăOră într-un tip de date date, cât și să eliminăm nivelul de precizie al orei cu următoarea formulă:

=DATE(LEFT([DatăOră],4), MID([DatăOră],6,2), MID([DatăOră],9,2))

Acest lucru ne oferă o coloană nouă (în acest caz, denumită Dată). Power Pivot chiar detectează valorile ca date și setează tipul de date automat la Dată.

Coloana Dată din tabelul de informații

Dacă dorim să păstrăm nivelul de timp de precizie, extindem formula pentru a include orele, minutele și secundele.

=DATE(LEFT([DatăOră],4), MID([DatăOră],6,2), MID([DatăOră],9,2)) +

TIME(MID([DatăOră],12,2), MID([DatăOră],15,2), MID([DatăOră],18,2))

Acum, că avem o coloană Dată din tipul de date Dată, putem crea o relație între aceasta și o coloană de date într-o dată.

Resurse suplimentare

Datele calendaristice în PowerPivot

Calculele în Power Pivot

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

Referința data analysis expressions

Centrul de resurse DAX

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!

×