Applies ToExcel pentru Microsoft 365 Excel 2024 Excel 2021 Excel 2019 Excel 2016

Tabelele de date din Power Pivot sunt esențiale pentru navigarea și calcularea datelor în timp. Acest articol oferă o înțelegere amănunțită 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 ore.

  • Cum să utilizați Power Pivot pentru a adăuga un tabel de date la modelul de date.

  • Cum să creați coloane de dată noi, cum ar fi An, Lună și Perioadă într-un tabel de date.

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

  • 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 relațiilor și crearea coloanelor și măsurilor calculate.

Acest articol nu descrie modul de utilizare a funcțiilor 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 în Excel.

Notă: În Power Pivot, numele "măsură" și "câmp calculat" sunt sinonime. Folosim măsura numelui în tot acest 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 date și ore. De exemplu, poate doriți să însumați valorile de vânzări pentru ultimul trimestru fiscal, apoi să comparați acele totaluri cu alte trimestre sau să calculați soldul de închidere pentru sfârșitul lunii pentru un cont. În fiecare dintre aceste cazuri, utilizați datele ca modalitate de a grupa și a agrega tranzacții de vânzări sau solduri 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 orei. 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 ca câmpuri dintr-o Listă de câmpuri atunci când vă felicați și filtrați datele în rapoartele 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. Aceasta înseamnă că acea coloană trebuie să aibă un rând pentru fiecare zi pentru fiecare an inclus în tabelul de date.

De exemplu, dacă datele pe care doriți să le răsfoiți au date între 1 februarie 2010 și 30 noiembrie 2012 și raportați 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ă veți reîmprospăta în mod regulat datele cu date mai noi, se recomandă să rulați data de sfârșit cu un an sau doi, astfel încât să nu fie nevoie să actualizați tabelul de date pe măsură ce trece timpul.

Tabel de date cu un set contiguu de date

Tabel de date cu un set contiguu de date

Dacă raportați 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 la 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 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 tabel cu o singură dată poate include coloane pentru un an calendaristic, un an fiscal și chiar un al treisprezecelea calendar pentru perioadă de patru săptămâni. Cel mai important lucru este ca tabelul de date să conțină un set contiguu de date pentru toți anii incluși.

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:

  • Import 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 legați la un tabel nou în Power Pivot.

  • Importați din Microsoft Azure Marketplace.

Să ne uităm mai îndeaproape la fiecare dintre acestea.

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ă deja un tabel de date și relații între acesta și restul de date pe care le importați. Datele și formatul se vor potrivi probabil cu datele din datele dvs. de fapt, iar datele vor începe probabil bine în trecut și vor fi foarte îndepărtate în viitor. Tabelul de date pe care doriți să-l importați poate fi foarte mare și conține un interval de date dincolo de ceea ce va trebui să includeți în modelul de date. Puteți utiliza caracteristicile complexe de filtrare din Expertul 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. Totuși, în unele cazuri, după ce ați importat tabelul de date în modelul de date, poate fi necesar să creați coloane de dată suplimentare, în funcție de o anumită nevoie de raportare. Din fericire, acest lucru este ușor de făcut folosind DAX. Veți afla mai multe despre crearea câmpurilor de tabel de date mai târziu. Fiecare mediu este diferit. Dacă nu sunteți sigur dacă sursele de date au o dată asociată sau un tabel de 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 și apoi să îl copiați într-un tabel nou în modelul de date. Acest lucru este într-adevăr destul de ușor de făcut și vă oferă o mulțime de 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 ca coloane calculate. Crearea coloanelor de date suplimentare în Power Pivot este descrisă în secțiunea Adăugarea de coloane de dată noi în tabelul de date din continuarea acestui articol.

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 o zonă de date. De obicei, aceasta va fisimilară cu Date, DateTime sau DateKey.

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

  3. Faceți clic pe instrumentul 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 ca tabel, 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 bifată opțiunea Utilizați primul rând ca anteturi decoloană, 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 modelul de date. Totuși, acest lucru face registrul de lucru inutil de mare, deoarece registrul de lucru are două versiuni ale tabelului de date; unul în Excel și unul în Power Pivot.

Notă:  Data numelui este un cuvânt cheie în Power Pivot. Dacă denumiți tabelul pe care îl creați în Data Power Pivot, va trebui să încadrați numele tabelului cu ghilimele simple în orice formule DAX care fac referire la acesta într-un argument. Toate imaginile și formulele din acest articol se referă la un tabel de date creat în Power Pivot denumit Calendar.

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

Adding new date columns to the date table

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 să creați o relație între tabelul cu informații și tabelul de date. Dar acea coloană de dată unică cu un singur rând pentru fiecare zi nu este utilă atunci când analizați după datele dintr-un raport PivotTable sau Power View. Doriți ca tabelul de date să includă coloane care să vă ajute să agregați datele pentru un interval sau un grup de date. De exemplu, poate 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ă agregați datele pentru acea perioadă.

Dacă ați importat tabelul de date dintr-o sursă de date relațională, acesta poate include deja tipurile diferite de coloane de dată dorite. În unele cazuri, se recomandă să modificați unele dintre aceste coloane sau să creați coloane de dată 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 coloane de date noi î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 pentru a începe să învățați este cu QuickStart: Aflați noțiunile de bază dax în 30 de minute pe Office.com.

Funcțiile DAX pentru dată și oră

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

  • Funcțiile DAX Dată și Oră utilizează un tip de date dată-oră.

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

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

Aceste funcții sunt utilizate adesea atunci când creați coloane de dată particularizate într-un tabel de date, astfel încât sunt importante pentru a fi înțelese. Vom utiliza o serie de aceste funcții pentru a crea coloane pentru An, Trimestru, Luna Fiscală ș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 în Excel.

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 , cum ar fi MOD și TRUNC, funcții logice precum IF și funcții text precum FORMAT Pentru mai multe informații despre alte funcții DAX, consultați secțiunea Resurse suplimentare din continuarea acestui articol.

Exemple de formule pentru un an calendaristic

Următoarele exemple descriu formulele utilizate pentru a crea coloane suplimentare într-un tabel de date denumit 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 dată-oră, 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 pur și simplu 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 dată ca întreg. Argumentul pe care îl specificăm pentru funcția INT este valoarea din coloana Lună, adăugați 2 și împărțiți-l la 3 pentru a obține trimestrul, 1 până la 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 noastre să afișeze 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 format.

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 de zi prescurtat, specificăm "ddd" în argumentul 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 VolumVânzare din tabelul Date vânzări din VALORI și An și Trimestru din tabelul dimensiune Calendar din RÂNDURI. VolumVânzare 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 la 1 iulie.

Nu există nicio funcție care să extragă un an fiscal dintr-o valoare dată, deoarece datele de început și de sfârșit ale unui an fiscal sunt adesea diferite de cele ale unui an calendaristic. Pentru a obține anul fiscal, mai întâi utilizăm 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 adună 1.

Coloana An fiscal

Altă modalitate de a specifica valoarea lunii de sfârșit a anului fiscal este să creați o măsură care specifică pur și simplu luna. De exemplu, AF:=6. Apoi puteți face referire la numele măsurii în locul numărului lunii. De exemplu, =IF([Lună]<=[AN],[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 formule diferite.

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 luați 6 și adunați valoarea din Lună, altfel scădeți 6 din valoarea din [Lună].

Coloana Lună fiscală

Trimestru fiscal

=INT(([Luna Fiscală]+2)/3)

Formula pe care o utilizăm pentru Trimestru fiscal este cam la fel ca pentru Trimestru în anul calendaristic. Singura diferență este să specificăm [Luna Fiscală] în loc de [Lună].

Coloana Trimestru fiscal

Sărbători sau date speciale

Se recomandă 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 vânzărilor pentru anul nou, adăugând un câmp Sărbători într-un raport PivotTable, ca slicer sau filtru. În alte cazuri, este posibil să doriți să excludeți acele date din alte coloane de date sau dintr-o măsură.

Inclusiv sărbători sau zile speciale este destul de simplu. Puteți crea în Excel un tabel care conține datele pe care doriți să le includeți. Apoi puteți să copiați sau să utilizați Adăugare la modelul 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. Orice formule care fac referire la aceasta pot utiliza funcția LOOKUPVALUE pentru a returna valori.

Mai jos se află un exemplu de tabel creat în Excel, care include sărbătorile de adăugat la tabelul de date:

Dată

Sărbătoare

1/1/2010

Anul Nou

11/25/2010

Ziua recunostintei

12/25/2010

Crăciun

01.01.11

Anul Nou

11/24/2011

Ziua recunostintei

12/25/2011

Crăciun

01.01.12

Anul Nou

11/22/2012

Ziua recunostintei

12/25/2012

Crăciun

1/1/2013

Anul Nou

11/28/2013

Ziua recunostintei

12/25/2013

Crăciun

11/27/2014

Ziua recunostintei

12/25/2014

Crăciun

01.01.2014

Anul Nou

11/27/2014

Ziua recunostintei

12/25/2014

Crăciun

1/1/2015

Anul Nou

11/26/2014

Ziua recunostintei

12/25/2015

Crăciun

01.01.16

Anul Nou

11/24/2016

Ziua recunostintei

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ă analizăm mai atent 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. 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 conține datele pe care dorim să le căutăm. 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 dorim să le căutăm în tabelul Sărbători . Aceasta este, desigur, coloana Dată din 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 serviciul de vânzare cu amănuntul sau cel alimentar, raportează adesea perioade diferite, cum ar fi 13 perioade de patru săptămâni. Cu un calendar de 13 perioade de patru săptămâni, fiecare perioadă este de 28 de zile; Prin urmare, fiecare perioadă conține patru 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 încadra în aceeași perioadă în 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 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 la 01.07.

Săptămână

Această valoare ne oferă numărul săptămânii care începe cu prima săptămână întreagă din anul fiscal. În acest exemplu, prima săptămână întreagă începe duminică, astfel că prima săptămână întreagă din primul an fiscal din tabelul Calendar începe de fapt pe 4.07.2010 și continuă până în ultima săptămână întreagă din tabelul Calendar. Deși această valoare în sine nu este tot ceea ce este util în analiză, este necesar să calculați pentru a fi utilizată în alte formule de perioadă de 28 de zile.

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

Să analizăm mai atent această formulă.

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

=INT([dată])

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

Coloana Săptămână

Acum, scădeți 40356 (care este numărul întreg 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 nostru 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âna]+3)/4)

Să analizăm mai atent 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âna])

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

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

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

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

Rezultatul arată astfel:

Coloana Perioadă

An fiscal perioadă

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

=INT(([Perioadă]+12)/13)+2008

Să analizăm mai atent această formulă.

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

= ([Perioadă]+12)

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

=(([Perioadă]+12)/13)

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

=(([Perioadă]+12)/13)+2010

În cele din urmă 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(([Perioadă]+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([Perioadă],13), MOD([Perioadă],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ă arată, împărțiți valoarea din [Perioadă] la 13 pentru a obține un număr de perioadă (1-13) din an. Dacă acel număr este 0, atunci returnează 13.

Mai întâi, creăm o formulă care returnează restul valorii din Punct cu 13. Putem utiliza funcțiile MOD (matematică și trigonometrică) astfel:

=MOD([Perioadă],13)

Aceasta, î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 ale exemplului de tabel de date calendar. Ne putem ocupa de acest lucru cu o funcție IF. În cazul în care rezultatul nostru este 0, vom returna 13, astfel:

=IF(MOD([Perioadă],13),MOD([Perioadă],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 VolumVânzări din tabelul Date vânzări din câmpurile VALUES și PeriodFiscalYear și PeriodInFiscalYear din tabelul dimensiune dată calendar din ROWS. ValoareaVânzării 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ă navigați prin datele din rapoartele PivotTable și rapoarte și pentru a agrega date pe baza coloanelor din tabelul cu dimensiuni de dată, trebuie să creați o relație între tabelul cu informații cu datele tranzacției și tabelul de date.

Deoarece trebuie să creați o relație pe baza datelor, se recomandă să vă asigurați că creați acea relație între coloanele ale căror valori sunt de tipul de date dată-oră (Dată).

Pentru fiecare valoare de dată din tabelul cu informații, coloana de căutare asociată din tabelul de date trebuie să conțină valori care se potrivesc. De exemplu, un rând (înregistrare tranzacție) din tabelul Informații vânzări cu valoarea 15.08.2012 12:00 ÎN coloana CheieDată trebuie să aibă o valoare corespondentă în coloana Dată asociată din tabelul dată (denumit Calendar). Acesta este unul dintre cele mai importante motive 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ă din 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 contează.

Notă: Dacă Power Pivot nu vă permite să creați relații între cele două tabele, câmpurile de date pot să nu stocheze data și ora la același nivel de precizie. În funcție de formatarea coloanelor, 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. Atunci când importați date dintr-o sursă de date relațională, adesea, coloanele dată și oră sunt reprezentate de o cheie surogat, care este o coloană întreagă utilizată pentru a reprezenta o dată unică. În Power Pivot, trebuie să evitați crearea relațiilor utilizând chei de dată/oră întregi și, în schimb, să utilizați coloane care conțin valori unice cu un tip de date dată. Deși utilizarea cheilor surogat este considerată un exemplu de bună practică î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ă primiți o eroare de nepotrivire de tip atunci când încercați să creați o relație, motivul este probabil faptul că coloana din tabelul de informații nu este de tipul de date Dată. Acest lucru se poate întâmpla atunci când Power Pivot nu poate efectua automat conversia unui tip de date non-dată (de obicei, 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 nouă coloană calculată. Consultați Conversia datelor din tipul de date text într-un tip de date dată ulterioară î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 de date în tabelul Informații 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 una dintre acestea poate fi o relație activă. În acest caz, deoarece DateKey reprezintă data tranzacției și, prin urmare, cea mai importantă dată, aceasta ar servi cel mai bine drept relație activă . Ceilalți au relații inactive.

Următorul PivotTable calculează totalul vânzărilor după An fiscal și Trimestru fiscal. O măsură denumită Total vânzări, cu formula Total vânzări:=SUM([VolumVânzare]), este plasată în câmpurile VALUES, iar An Fiscal și Trimestru Fiscal 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 totalul vânzărilor noastre până la data tranzacției din 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 Dată din tabelul de date calendar.

Relații inactive

Dar dacă am dori să însumăm totalul vânzărilor nu după data tranzacției, ci după data livrării? Avem nevoie de o relație între coloana DatăExpediere 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 obține relația activă cu tabelul Calendar.

În acest caz, ShipDate are o relație inactivă, astfel încât 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ăExpediere din tabelul Vânzări și coloana Dată din tabelul Calendar, putem crea o măsură care însumează totalul vânzărilor după data livrării. Utilizăm o formulă ca aceasta pentru a specifica relația de utilizat:

Total vânzări după data livrării:=CALCULATE(SUM(Vânzări[VolumVânzări]), USERELATIONSHIP(Vânzări[DatăExpediere], Calendar[Dată]))

Această formulă arată pur și simplu: Calculați o sumă pentru VolumVânzări, dar filtrați utilizând relația dintre coloana DatăExpediere din tabelul Vânzări și coloana Dată din tabelul Calendar.

Acum, dacă creăm un raport PivotTable și punem măsura Total vânzări după data livrării în VALORI, An fiscal și Trimestru fiscal în RÂNDURI, vedem același Total general, dar toate celelalte sume pentru anul fiscal și trimestrul fiscal sunt diferite, deoarece sunt bazate pe data livrării ș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 livrării) să facă referire la relația inactivă în formula sa. Există o altă alternativă, mai exact, utilizarea mai multor tabele de date.

Tabele de date multiple

Altă modalitate de a lucra cu mai multe coloane de date în tabelul de informații este să creați mai multe tabele de date și să creați relații active separate între ele. Să ne uităm din nou la exemplul de tabel Vânzări. Avem trei coloane cu date pe care am putea dori să agregăm date:

  • Un DateKey cu data vânzării pentru fiecare tranzacție.

  • O DatăExpediere - cu data și ora când au fost expediate articolele vândute către client.

  • ReturnDate - cu data și ora la care a fost primit unul sau mai multe elemente returnate.

Rețineți că este cel mai important câmpul DateKey cu data tranzacției. Vom face majoritatea agregărilor pe baza acestor date, așa că, mai mult ca sigur, ne vom dori o relație între aceasta și coloana Dată din tabelul Calendar. Dacă nu dorim să creăm relații inactive între ShipDate și ReturnDate și câmpul Date din tabelul Calendar, necesitând astfel formule de măsuri speciale, putem crea tabele de date suplimentare pentru data livrării și data returnării. 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 denumit ShipCalendar. Aceasta înseamnă, desigur, și crearea de coloane de dată suplimentare și, deoarece aceste coloane de dată se află într-un alt tabel de date, dorim să le denumim astfel încât să se diferențieze de aceleași coloane din tabelul Calendar. De exemplu, am creat coloane denumite AnExpediator, ShipMonth, ShipQuarter etc.

Dacă creăm raportul PivotTable și punem 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 special calculat Total vânzări după data livrării.

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 necesar 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 necesita mai multă memorie. Experimentați cu ceea ce funcționează cel mai bine pentru dvs.

Proprietatea Tabel dată

Proprietatea Tabel de date setează metadatele necesare pentru ca funcțiile Time-Intelligence, cum ar fi TOTALYTD, PREVIOUSMONTH și DATESBETWEEN, să funcționeze corect. Atunci când se execută un calcul utilizând una dintre aceste funcții, motorul de formule Power Pivot știe unde să meargă pentru a obține datele de care are nevoie.

Avertisment: Dacă această proprietate nu este setată, măsurile care utilizează funcțiile Time-Intelligence DAX 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 dată din tipul de date Dată (dată și oră).

Caseta de dialog Marcare ca tabel Dată

Cum se face: Setarea proprietății Tabel de date

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

  2. Pe fila Proiectare , faceți clic pe Marcare ca tabel dată.

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

Lucrul cu timpul

Toate valorile dată cu un tip de date Dată din Excel sau SQL Server sunt de fapt un număr. Incluse în acel număr sunt cifre care fac referire la o oră. În multe cazuri, acel timp pentru fiecare rând este miezul nopții. De exemplu, dacă un câmp DateTimeKey dintr-un tabel DateTimeKey are valori precum 19.10.2010 12:00:00 AM, aceasta înseamnă că valorile sunt la nivelul de precizie al zilei. Dacă valorile de câmp DateTimeKey au o oră inclusă, de exemplu, 19.10.2010 8:44:00 AM, acest lucru înseamnă că valorile sunt la nivelul minut de precizie. Valorile pot fi și la precizia la nivel de oră sau chiar la nivelul de secunde de precizie. Nivelul de precizie din valoarea de timp va avea un impact semnificativ asupra modului în care creați tabelul de date și a relațiilor dintre acesta și tabelul cu informații.

Trebuie să determinați dacă veți agrega datele la un nivel de precizie zi sau la un nivel de precizie de timp. Cu alte cuvinte, se recomandă să utilizați coloanele din tabelul de date, cum ar fi Dimineața, După-amiaza sau Ora, drept câmpuri de dată pentru oră în zonele Rând, Coloană sau Filtrare dintr-un raport PivotTable.

Notă: Zilele sunt cea mai mică unitate de timp cu care pot 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, 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 chiar în fiecare minut, din fiecare zi, pentru fiecare an din intervalul de date. Aceasta deoarece, pentru a crea o relație între coloana DateTimeKey din tabelul de informații și coloana de date din tabelul de date, trebuie să aveți valori care se potrivesc. După cum vă puteți imagina, dacă includeți o mulțime de ani, acest lucru poate face pentru un tabel de dată foarte mare.

Totuși, în majoritatea cazurilor, doriți să agregați datele doar la zi. Cu alte cuvinte, veți utiliza coloane cum ar fi An, Lună, Săptămână sau Zi a săptămânii ca câmpuri în zonele Rând, Coloană sau Filtru ale unui raport PivotTable. În acest caz, coloana de date din tabelul de date trebuie să conțină un singur 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 cu informații și tabelul de date, poate fi necesar să modificați tabelul cu informații creând o coloană nouă care trunchiază valorile din coloana de date la o valoare de zi. Cu alte cuvinte, efectuați conversia unei valori, cum ar fi 19.10.2010 8:44:00AM la 19.10.2010 12:00:00 AM. Apoi puteți crea relația dintre această coloană nouă și coloana de date din tabelul de date, deoarece valorile se potrivesc.

Să ne uităm la un exemplu. Această imagine afișează o coloană DateTimeKey în tabelul Informații vânzări. Toate agregările pentru datele din acest tabel trebuie să fie doar 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ă, ci doar data reală.

Coloana CheieDatăOră

Deoarece nu trebuie să analizăm aceste date la nivelul de timp, 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 din fiecare an. Așadar, coloana Dată din tabelul nostru de date arată astfel:

Coloană de date în Power Pivot

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

=TRUNC([DateTimeKey],0)

Aceasta ne oferă o nouă coloană (numită 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 Dată din tabelul Calendar.

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

= DATE (YEAR([DateTimeKey]), MONTH([DateTimeKey]), 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ă aibă valori la nivelul orei de precizie, putem crea apoi o relație între ele.

Faceți datele mai ușor de utilizat

Multe dintre coloanele de date pe care le creați în tabelul de date sunt necesare pentru alte câmpuri, dar de fapt nu sunt toate cele utile în analiză. 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 având loc la o anumită dată și oră. Dar, dintr-un punct de vedere al analizei și raportării, nu este deloc util, deoarece nu îl putem utiliza ca câmp rând, coloană sau filtru într-un raport sau tabel Pivot.

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

Pentru a păstra tabelele și coloanele din acestea cât mai utile posibil și pentru a face listele câmp raport PivotTable sau Power View mai ușor de navigat, este important să ascundeți coloanele inutile din instrumentele client. De asemenea, se recomandă să ascundeți anumite tabele. Tabelul Sărbători afișat anterior 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 propriu-zise ca câmpuri într-un raport PivotTable. Aici, din nou, pentru a face listele de câmpuri mai ușor de navigat, puteți ascunde tot tabelul Sărbători.

Un alt aspect important al lucrului cu datele este denumirea convențiilor. Puteți denumi tabelele și coloanele din Power Pivot orice doriți. Dar rețineți, mai ales dacă veți partaja registrul de lucru cu alți utilizatori, o convenție bună de denumire vă ajută să identificați tabele și date, nu doar în Liste de câmpuri, ci și în Power Pivot și în formule 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ă profitați la maximum de datele dvs. Unele pot fi la fel de simple ca însumarea totalurilor 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 din tipul de date text într-un tip de date dată

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

De obicei, atunci când încercați să modificați tipul de date pentru o coloană de date care sunt de tip de date 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 efectua o conversie a tipului de date, veți primi o eroare de nepotrivire de tip.

Totuși, puteți efectua conversia datelor într-un tip de date dată adevărat. 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 de text, apoi să o concatenați într-un mod în care Power Pivot poate citi ca dată reală.

În acest exemplu, am importat un tabel cu informații denumit Vânzări în Power Pivot. Aceasta conține o coloană denumită DatăTime. Valorile apar astfel:

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

Dacă ne uităm la Tipul de date în fila Pornire din grupul Formatare din Power Pivot, vedem că este de tip de date Text.

Tip de date în panglică

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

Eroare de nepotrivire

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

Rețineți, din secțiunea Lucrul cu timpul, anterior în acest articol; cu excepția cazului în care este necesar ca analiza să fie la un nivel de precizie de timp din zi, ar trebui să efectuați conversia datelor din tabelul de informații la un nivel de precizie de zi. Cu acest lucru în minte, dorim ca valorile din noua noastră coloană să fie la nivelul de precizie al zilei (excluzând timpul). Amândoi putem efectua conversia valorilor din coloana DateTime într-un tip de date dată și putem elimina nivelul de precizie al timpului cu următoarea formulă:

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

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

Coloana Dată din tabelul de informații

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

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

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

Acum, că avem o coloană Dată cu tipul de date Dată, putem crea o relație între acesta ș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

Data Analysis Expressions Reference

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.