You are on page 1of 41

Utilizarea instrumentului

PowerPivot în Excel
SUPORT DE CURS

1

CUPRINS
CAPITOLUL 1. INTRODUCERE ÎN POWERPIVOT ......................................................................... 3
1.1

Importul fișierelor de tip text (.csv) ........................................................................................ 4

1.2

Importul fișierelor de tip Excel (.xlsx) .................................................................................... 5

1.3

Relaționare .............................................................................................................................. 6

1.4

Construire tabel pivot .............................................................................................................. 7

1.5

Legarea datelor din Excel de PowerPivot ............................................................................... 9

1.6

Crearea de legături în PowerPivot ........................................................................................ 11

CAPITOLUL 2. LUCRUL CU TABELE ÎN POWERPIVOT ............................................................. 14
CAPITOLUL 3. FUNCȚII ÎN POWERPIVOT .................................................................................... 16
3.1

Funcții de dată și timp ........................................................................................................... 16

3.1.1 Calcularea zilei din săptămână ............................................................................................. 18
3.1.2 Numărarea săptămânilor ...................................................................................................... 18
3.1.3 Calculul scadenţelor ............................................................................................................. 18
3.1.4 Calculul fracţional al anilor.................................................................................................. 19
3.1.5 Folosirea funcției TIME pentru calculul timpului ............................................................... 19
3.2

Funcții matematice și trigonometrice.................................................................................... 20

3.3

Funții de text ......................................................................................................................... 22

3.4

Funcții logice ........................................................................................................................ 23

3.5

Funcții informative................................................................................................................ 24

3.6

Funcții de centralizare a datelor corelate din alte tabele ....................................................... 24

3.7

Funcții recursive.................................................................................................................... 24

CAPITOLUL 4. CONSTRUIREA TABELELOR PIVOT .................................................................. 26
4.1

Filtre și slicer-e ..................................................................................................................... 28

4.2

Reguli importante referitoare la Pivot Tables ....................................................................... 29

4.3

Convertirea tabelei pivot în valori ........................................................................................ 30

4.4

Convertirea unui tabel pivot în format cub ........................................................................... 30

4.5

Lucrul cu Pivot Charts .......................................................................................................... 30

4.6

Opțiuni suplimentare ............................................................................................................. 31

CAPITOLUL 5. PERSPECTIVE ȘI MĂSURI .................................................................................... 34
5.1

Perspective ............................................................................................................................ 34

5.2

Măsuri ................................................................................................................................... 34

5.2.1 Funcții utile în calculul măsurilor ........................................................................................ 35
5.2.2 Time Intelligence Functions................................................................................................. 36
CAPITOLUL 6. FINE TUNING .......................................................................................................... 39
6.1

Indicatori de performanță (KPI) ............................................................................................ 39

6.2

Ierarhii ................................................................................................................................... 40

2

CAPITOLUL 1. INTRODUCERE ÎN POWERPIVOT
Trebuie spus de la început ca POWERPIVOT NU este Excel, ci este un ADD-ON. Are multe
asemănări cu Excel dar și multe deosebiri. POWERPIVOT gestionează mari cantități de date în
memoria RAM (tabele principale) relaționându-le cu tabele de pe hard disk (tabele de lookup), creând
tabele pivot pe care le prezintă și le prelucrează (doar tabelele pivot) în Excel.
După instalarea POWERPIVOT, în dreapta tab-ului View din Excel, se va găsi tab-ul PowerPivot.
Accesarea butonului PowerPivot Window duce la comutarea și afisarea PowerPivot:

Comutarea înapoi în Excel se face din butonul de revenire.

Tab-ul Home are grupări şi butoane (Get External Data) cu care putem importa date în
POWERPIVOT, din diferite surse. În exemplul care urmează, ne propunem să creăm un tabel pivot
dintr-un fișier de date de tip .csv, delimitat cu ; de 999999 de linii şi un tabel din Excel, cele două
având un câmp comun (ca și conținut) şi anume ID Produs (numele celor două câmpuri nu e nevoie
să fie identic) .

Un prim mare avantaj al lucrului cu PowerPivot este faptul ca tabelul de tip .csv se va încărca în
memorie şi de acolo va fi accesat, viteza şi cantitatea de date crescând foarte mult (se pot prelucra
peste 100 de milioane de linii din fişierul .csv). Cel de-al doilea mare avantaj constă în faptul că pot fi
relaţionate două (sau mai multe) tabele, oarecum similar cu modul de lucru din Access.

3

Există un număr de moduri de a obține date în PowerPivot:
■ Puteți lega datele Excel care au fost convertite la un tabel.
■ Aveți posibilitatea să copiați și să lipiți date Excel în PowerPoint. Mai târziu, puteți adăuga la un
tabel existent.
■ Puteți importa de la o bază de date, cum ar fi Access sau SQL Server.
■ Puteți importa de la orice raport SharePoint care are un simbol Atom în antet.
■ Puteți importa din mai multe surse Atom. Multe baze de date de pe Internet au feed-uri Atom, și
Atom este un nou mod de a publica datele dintr-un server SQL, deci vor fi în creștere exemple de
companii care publica date ca feed-uri Atom.
■ din fisiere text, CSV sau TAB DELIMITED.
■ Din Oracle, Teradata, Sybase, Informix, IBM.
■ Din orice sursă de date ODBC / OLEDB.
Întrebarea este dacă trebuie să copiați și inserați un tabel Excel sau dacă ar trebui să-l legați. Probabil
că există sute de date Excel potrivite pentru importul în PowerPivot. Pentru datele conținute în fișiere
de tip text, e nevoie de un singur rând de cap de tabel, urmat de rânduri de date. Când aveți aceste
date, se pot lega fie la versiunea de tabel a datelor stocate în registrul de lucru, (copy și paste), sau
importa dintr-un fișier Excel. Când copiați și lipiți, nu trebuie să modificați datele originale în Excel.
Puteți copia și lipi din orice registru de lucru în alt registru de lucru. Dar, pentru că nu se pot edita
celule în PowerPivot, nu se pot face modificări ale datelor. Modificările trebuie sa se facă în Excel și
sa se reimporte. Când vă legați la un tabel, va trebui să modificați datele în Excel căci ele nu pot fi
modificate în PowerPivot. Tabelele trebuie să fie stocate în fișierul de lucru în care se află
PowerPivot. Avantajul este că puteți actualiza link-ul și orice modificări ale datelor Excel vor apărea
în PowerPivot.
Puteți importa, de asemenea, date din fișiere Excel externe. Când importați date, puteți fie să le
formatați fie ca un tabel, fie ca o zonă denumită, pentru import. Din nou, dacă modificați datele, puteți
reîmprospăta link-ul și noile date vor intra în PowerPivot.
Este esenţial ca ordinea în care se încarcă fişierele în POWERPIVOT sa fie următoarea: mai întâi
tabelul principal, de tranzacţii (în cazul nostru - .csv) şi apoi cel de "lookup", din două motive:
importul se face în ordinea prezentării şi relaţionarea tabelelor se face presupunând că primul tabel
importat este cel principal.

1.1 Importul fișierelor de tip text (.csv)
Din POWERPIVOT, tab-ul Home, gruparea Get External Data, butonul From Text alegem fişierul
Demo.csv, bifând faptul că e separat cu ; şi are prima linie ca header:

În acest moment sunt afişate doar 50 de linii pentru un preview şi trebuie rezolvate unele aspecte ale
vitezei: dacă unele coloane nu sunt necesare se vor elimina iar unele vor fi adăugate, calculate,
(necesare pentru filtrări) deoarece POWERPIVOT nu poate face filtrări așa ca Excel. Tot acum se fac
4

gruparea Styles.filtrările şi sortările necesare. 5 . așa cum este acesta înțeles în Excel: Cu un click (celula activă) în interiorul zonei de date (viitorul tabel). datele din tabel se selectează cu CTRL+* şi se copiază cu CTRL+C apoi se revine în POWERPIVOT prin click pe tab-ul POWERPIVOT şi vom ajunge să vedem din nou datele din tabelul principal. preluate din datele tabelului. pentru început trebuie sa convertim datele pe care le avem. În cazul de faţă. butonul Format as Table. Aici. cel de 999999 de linii.2 Importul fișierelor de tip Excel (. în tab-ul Home vom apăsa butonul Paste iar noului tabel îi vom da un nume sugestiv (InfoMagazine). tabel ce poate fi redenumit cu un nume sugestiv. 1. Pentru lipirea datelor din Excel în POWERPIVOT.xlsx) Pentru revenirea în Excel se apasă butonul de revenire aflat în partea din stânga sus: În mod uzual. accesăm tab-ul Home. într-un tabel. adăugăm o coloană ce va conţine anul şi una ce va conţine luna.

xlsx și încheiem acțiunea cu Create. După relaționare.csv) cu o coloană din celălalt tabel (. Urmează relaţionarea celor două: în tab-ul Design gruparea Relationships butonul CreateRelationship.3 Relaționare Vom relaționa o coloană din tabelul principal (. POWERPIVOT recunoaşte două tabele: tabelul principal.În acest moment.xlsx. Rapoarte.csv) și tabelul InfoMagazine de tip . de tip txt (. tabelele legate pot fi vizualizate cu ajutorul butonului Diagram View.xlsx) făcând click pe o celulă din coloana ID Produs a tabelului Rapoarte apoi clik pe butonul CreateRelationship și completând linia de jos cu datele din tabelul de tip . 6 . 1.

Anul și Luna la Slicers Vertical și Mall la Slicers Horizontal orice modificare ulterioară fiind posibilă. principal (. și cel de-al doilea (.csv) în memorie. având toate datele necesare: două tabele. relaționate prin câmpurile ID Produs. Pntru obținerea unui tabel pivot cu slicere.Faptul că cele două tabele sunt relaționate se vede în capul de tabel: În acest moment putem trece la construirea uni PowerPivot Table. Se observă existența mai multor ferestre în zona Field List și apariția tab-ului Pivot Table Tools. procedăm astfel: bifăm Venit (și va apare la ∑ Values). primul. Optăm pentru unul nou și obținem un tabel pivot asemănător cu ceea ce știam din Excel. Zona la Columns Label.4 Construire tabel pivot Unul dintre avantajele PowerPivot este și faptul că mai multe tabele pivot pot împărți aceleași date și slicer-e. 7 . 1. butonul Pivot Table poate crea mai multe tipuri de pivoți: Începem prin a crea un simplu tabel pivot apăsând Pivot Table ceea ce va determina trecerea în Excel și posibilitatea de a opta pentru a fi creat într-o nouă foaie sau în aceeași. tragem Oras la Row Label. În tab-ul Home din POWERPIVOT.xlsx) copiat din Excel.

formatarea câmpului activ (Sum of Venit) ca număr. etc. 8 .Tabelul pivot astfel obținut se poate formata cu ajutorul tab-urilor Design și Options din Pivot Table Tools: benzi orizontale și/sau verticale ca aspect.

• opțiunea Custom View nu mai e disponibilă. Astfel.accdb).1. tabelul apare ca fiind legat: tabela mai departe construcția tabelului pivot decurgând similar cu exemplul prezentat deja.). De asemenea. Pe lângă aceste posibilități. nu trebuie să existe nici o celulă fără date (valori) într-o coloană cu valori numerice deoarece aceasta va cauza contorizarea (numărarea) și nu însumarea valorilor la crearea tabelului pivot. În cazul în care structura datelor nu se mai potrivește cu structura tabelului existent. se afișează un mesaj de eroare. În cazul în care se aduc date prin copy/paste. • auto-filter este implicit. etc. aceluiași tabel Excel din exemplul anterior i se setează atributul de tabel legat. există opțiunea de a adăuga date la cele deja existente și anume cu opțiunea Paste Append. • calculele ce se fac în tabele sunt specifice modului de lucru cu tabele (o formula de calcul introdusa într-o celula se propagă pe toată coloana acelei celule. liniile sunt colorate alternativ. valorile invalide fiind convertite în text și se vor crea celule goale în cazul folosirii celulelor cu date calendaristice incorecte în formule. • toate câmpurile calculate se vor recalcula pentru noile rânduri introduse. plasată la începutul listei rezultat. datele pot fi doar legate.5 Legarea datelor din Excel de PowerPivot În cazul în care datele se găsesc în alte baze de date și/sau în alte tabele Excel. Datele copiate anterior (cu tot cu cap de tabel) se adaugă la sfârșitul tabelului care trebuie actualizat și din POWERPIVOT. • nu se mai poate partaja din Review/ Share Workbook. se va genera o linie care are data calendaristică goală. gruparea Clipboard. În acest caz. datele se vor importa de fiecare dată când va fi nevoie. astfel: rezultatul fiind că în PowerPivot (care este deja activ și are acces la Production_TransactionHistory din baza de date de tip . 9 . nu importate în PowerPivot. cu butonul Paste Append. Există și situații în care datele nu e indicat sa fie legate cu POWERPIVOT și anume atunci când datele trebuie să poată fi partajate cu alte persoane. Faptul că datele din Excel trebuie să fie în tabele are unele implicații: • prima linie e implicit înghețată. trebuie știut că pot apărea greșeli la importul datelor calendaristice din sisteme mai vechi (gen 32/01/2013). Mesajul de eroare poate proveni și de la faptul că s-au adus date cu tot cu cap de tabel și nu s-a specificat acest lucru prin bifarea opțiunii corespunzătoare din fereastra de PastePreview. La crearea unui tabel pivot cu aceste erori.

Folosim Paste Replace. de la caz la caz. cel mult se pot șterge coloane. 2. 3. Mai există o metodă de a importa date din Excel: aceea de a denumi o parte dintr-o foaie. În fereastra POWERPIVOT. POWERPIVOT reține link-ul către acea zonă denumită. Selectăm iconița din stânga sus a ferestrei pentru a selecta întregul tabel. 7. Importul datelor se face din POWERPIVOT din tab-ul Home gruparea GetExtrernalData. Selectăm tot tabelul cu Ctrl+*. Denumirea unui domeniu are unele avantaje printre care cel mai important este că este "elastic". 6. 8. 4. Ne întoarcem în PowerPivot.Datele din care se creează POWERPIVOT nu pot fi editate în POWERPIVOT. unde există o listă de surse din care se pot importa date. dar nu se pot șterge linii sau edita celule. se pot re-crea din datele existente în POWERPIVOT apoi edita în Excel și reintroduse în POWERPIVOT cu PasteReplace astfel: 1. POWERPIVOT păstrează o copie a datelor ca și în cazul metodei copy+paste și un simplu refresh în POWERPIVOT rezolvă problema actualizării datelor din POWERPIVOT. bifând că prima linie constituie cap de tabel. Din butonul FromOtherSources alegem Excel și din fereastra de browse alegem fișierul necesar. adică datele adăugate sau șterse ulterior definirii lui rămân în domeniul denumit. Dacă datele inițiale din care s-au creat tabelele pivot nu mai există. Avantajele ar fi că acea zonă poate rămâne la dispoziția colegilor pentru editare și în plus. 5. Într-o zonă goală dintr-o foaie facem Paste și edităm datele. Datele de modificat se editează în Excel și se importă fie cu PasteAppend fie cu PasteReplace. Ne întoarcem în Excel. 10 . Folosim Copy .

uneori POWERPIVOT poate detecta coloanele după care se face relaționarea. Relaționarea e mai ușoară decât VLOKUP. dar relaționarea nefiind obligatoriu să fie făcută automat. se folosește butonul de Refresh din gruparea GetExtrernalData. 1. se poate face și manual.6 Crearea de legături în PowerPivot Un mare beneficiu al POWERPIVOT este faptul că poate crea legături între două sau mai multe tabele. în așa fel încât tabelele să lucreze împreună. 11 . Cele trei tabele (puse în trei sheet-uri diferite) se pot relaționa astfel: Ideal ar fi ca rep din coloana B sa fie relaționat cu rep din coloana E. Apoi sa unim județele din colona G cu județele din coloana I. rezultat ce este evident greșit dar POWERPIVOT sugerează că ar fi nevoie de o relaționare (care încă nu a fost făcută).Pentru a ne asigura că datele cu care lucrăm sunt la zi.

gruparea Relationships. butonul Manage Relationships se poate edita relația creată anterior și se observă că se referă la câmpurile rep din cele două foi . în tab-ul Design.După acceptarea creării. se selectează o celulă din coloana judet apoi. adăugăm și bonus din Sheet3 și din nou POWERPIVOT ne solicită să acceptăm crearea unei relații: De data aceasta POWERPIVOT nu mai știe să relaționeze corect câmpurile judet din cele două tabele. se realizează astfel: În tabela din Sheet2. În cazul în discuție relaționarea câmpurilor judet din cele două tabele. în tab-ul Design. în fereastra de POWERPIVOT.Sheet1 și Sheet2. Dacă vrem să vedem și bonusurile. rezultatul va fi următorul: Putem afla ce relații ați stabilit în POWERPIVOT. la gruparea Relationships. Pentru a trece peste limitările relaționării automate. se realizează relaționarea manuală realizată din câteva click-uri de mouse. butonul CreateRelationship: 12 .

Relaționările nu sunt CaseSensitive. Caracterele SPATIU de după denumirea coloanelor nu sunt luate în calcul.Data Analysis Expressions – este o propunere de limbaj de formule. Numerele stocate ca text nu se vor putea relaționa. coloana care le conține va fi importată ca text. De menționat că între două tabele nu poate exista decât o singură relaționare. se importă de mai multe ori aceași tabelă. sub nume diferite și se relaționează cu fiecare copie în parte. Funcția Related e parte a DAX . 13 . Dacă e nevoie de o relaționare multiplă. care îi va spune POWERPIVOT cu ce câmp și din ce tabelă se va face înmulțirea. Utilizăm o funcție nouă – Related. Nu există relaționări many-to-many.Dacă dorim să calculăm bonusul. vom adăuga o coloană adițională în tabelul Sheet1 în care vom aplica formula =[venituri] * Related (Sheet2[bonus]). Redenumirea unei tabele din POWERPIVOT nu afectează relaționările deja definite. Relațiile se adaptează redenumirilor dar câmpurile calculate NU se adaptează redenumirilor (se vor redenumi ÎNAINTE de calcularea câmpurilor).

similar cu cea din Excel. li se poate modifica lațimea și pot fi înghețate (dar se mută la stânga).Boolean – YES / NO . În cazul în care pot apărea pierderi de date din cauza convertirii dintr-un format în alt format apare un mesaj de atenționare. Cu toate că se poate formata o celeulă cu funcția BLANK. sortarea nu se propagă în POWERPIVOT.000 și tot e un câștig: .Se lipesc (după întoarcere) în Excel.000. real * data = data. Coloanele pot fi mutate prin drag&drop. Din 5. Modificarea formatării unei celule dintr-o coloană are efect asupra întregii coloane. POWERPIVOT poate folosi la manipularea unei mari cantități de date. Stergea unei coloane calculate este reversibilă (UnDo) dar ștergerea unei coloane cu date adevărate.Se importa cele 5.000 de linii prin filtrare se obțin 1. șirul vid. nu mai este reversibilă. DAX suporta 8 tipuri de date: .Date – calendaristică în reprezentare SQL Server .să printeze datele Se pot formata prin schimbarea formatării. dupa confirmarea ștergerii. Formatările din fererastra POWERPIVOT nu se regăsesc în PivotTable. pentru mai multe coloane (ex: Data din Produse din Regiuni) – se începe sortarea de la Data. dar aici se modifică și tipul datelor.Intreg pe 8 byte .Blank – înlocuiește blank din Excel.să adauge comentarii celulelor .Se filtreză . LUCRUL CU TABELE ÎN POWERPIVOT Tabelul din POWERPIVOT seamănă mult cu cel din Excel dar nu poate: . Excel DAX blank + blank = 0 blank + blank = blank blank * 5 = 0 blank * 5 = blank 5 / blank = #DIV/0 5 / blank = infinit blank OR True = True blank AND blank = blank Sortarea: pentru o singură coloană funcționează ca în Excel.000 de linii în POWERPIVOT .Real pe 8 byte .să editeze o singură celulă . nu doar aspectul lor. tipul datelor definit în POWERPIVOT afectează calculele: intreg + data = data. este doar pentru vizualizarea datelor. Filtrarea: se face destul de greoi și oricum NU se propaga în POWERPIVOT.000.Se copiază cu butonul Copy .String (șir) .CY – currency . Oricum. Totuși. NU se poate formata o întreaga coloană ca Blank. 14 .000.Se selectează toate (butonul triunghiular stânga sus) .CAPITOLUL 2. NULL din SQL. apoi Produse apoi Regiuni. care altfel nu poate fi manipulată în Excel.să schimbe culoarea celulelor . real + data = real.

comparații .^ exponent . În continuare se poate scrie un operator sau se poate accesa fx. <. Nu există nume definite în Dax. >.=. de unde să alegem funcțiile DAX necesare. alții diferiți: . introducerea unei formule începe cu semnul = (egal).+-/* operațiuni matematice .& concatenare .&& . >=. Nu se poate naviga printre celulele unei tabele cu cursoarele săgeți și nu se poate adăuga semnul $ cu tasta F4. 15 . Funcția de autocompletare ajută la completarea cu numele unei funcții sau al unei tabele. <>. <=. deci nu se poate folosi nici F3. Copy și Filter dar click drepta pe denumirea coloanei are mult mai multe: Coloanele calculate se obțin cu DAX. Similar cu Excel.Click dreapta pe o celulă are doar două opțiuni.OR între două condiții Adăugarea de coloane calculate se face în fereastra tabelului. Operatorii sunt unii similari cu Excel.AND între două condiții .|| .

rezultatul este în zile întregi. DATEVALUE(date_text) Convertește un text în data calendaristică (ex: “1/1/2008” sau “30-Dec-2011”). tab-ul Formats. 16 . DAY(<date>) Întoarce ziua din dată ca număr între 1 și 31. <day>) Întoarce data specificată în format de dată (e bine să se folosească 4 cifre la an. Dacă se folosește la calcule de zile. MINUTE(<datetime>) Întoarce numărul de minute între 0 la 59 SECOND(<time>) Întoarce numărul de secunde ca număr între 0 și 59. sau .m. Customize Format.) la 23 (11:00 p.). EOMONTH(<start_date>. <months>) Întoarce data calculată prin adăugarea sau scăderea (dacă e negativă) unui număr de luni. NOW() Întoarce data și ora curentă în format data și timp. Control Panel. List Separator – care poate fi . 3. TODAY() Întoarce data curentă. YEAR(<date>) Întoarce un număr reprezentând anul. va trebui ca rezultatul sa-l înmulţim cu un număr real 1. rezultatul este în zile şi fracţiuni de zile. Additional Settings.CAPITOLUL 3. MONTH(<datetime>) Întoarce numărul lunii 1 (Ianuarie) la 12 (Decembrie). second) Convertește numere reprezentând ore minute și secunde în format timp. Number.. nu în 2007). calculată prin adăugarea sau scăderea unui număr de luni.1 Funcții de dată și timp DATE(<year>. minute. . dintr-o data calendaristică.<basis>) Calculează fracţiuni dintr-un an reprezentate ca număr de zile întregi între cele două date. HOUR(<datetime>) Întoarce numărul de ore 0 (12:00 a. Este de preferat pentru ca Excel să nu folosească zile fracţionate. TIME(hour. <months>) Întoarce data ultimei zile din luna. <end_date>. sau . FUNCȚII ÎN POWERPIVOT Separarea parametrilor din cadrul funcțiilor DAX se face cu . altfel 07 va fi convertiti în 1907. <month>.00 (care va converti rezultatul la un număr real). EDATE(<start_date>. Region and Language. Dacă se folosește la calcule de zile. YEARFRAC(<start_date>. așa cum a fost stabilit în setările sistemului de operare (Start. Dacă dorim să-l avem în format numeric..m. Calculul de zile rezultat din celule ce conţin date calendaristice este tot o dată calendaristică. TIMEVALUE(time_text) Convertește un text în data în format dată..

a anului următor anului de angajare se face cu =DATE(YEAR(dataangajării)+1. <return_type>) Întoarce numărul săptămânii din an.WEEKDAY(<date>. Respectiv =YEAR(F1).01. se va întoarce o dată din anul precedent: =DATE(2010. WEEKNUM(<date>. ex: 06 iun. 2011.1. zile negative vor fi scăzute din data ultimei zile a lunii precedente. Exemple =DATE(2010. Dacă numărul de zile este mai mare decât numărul de zile din lună. 2009.0.17) va întoarce 17 februarie. În calculul timpului se folosesc următoarele funcţii: Duration: =[Stop]-[Start] Hour: =HOUR([Duration]) Minute: =MINUTE([Duration]) 17 .implicit 1 este duminică la 7 care este sâmbătă. Încă un ajutor în sortarea în slicer-e ar fi numerotarea lunilor. 2009. Dacă luna e mai mică decât 1. =MONTH(F1).33) întoarce 2 februarie. =DATE(2011. în concordanță cu convenţiile de numărare a săptămânilor. deci vor fi folosite intens aceste funcţii de dată şi timp.MONTG(dataangajării)+1.1. DATE va întoarce o dată din luna (lunile) următoare. =DATE(2010.1) Calcularea datei de 15 a lunii urmatoare anjării se face cu =DATE(YEAR(dataangajării). 2011 Ziua 0 este tratată ca fiind ultima zi a lunii precedente. =HOUR(F1).MONTH(dataangajării). =DAY(F1). =SECOND(F1) sau se poate separa data pe zi şi lună pentru mai multă claritate.31) întoarce 31 decembrie. Calcularea datei de 01.1) întoarce 1 noiembrie. <return_type>) Întoarce un număr între 1 şi 7 reprezentând numărul zilei din săptămână .14.-1.15) Calcularea ultimei zile din luna precedentă a unei date se face cu: =DATE(YEAR(dataangajării). =MINUTE(F1).0) Pentru că POWERPIVOT nu oferă grupări de tip data calendaristică.

În plus.3) va întoarce 0 pentru luni până la 6 pentru duminică. = WEEKDAY(<date>.1. indiferent în ce zi a săptămânii cade 1 ianuarie.1 Calcularea zilei din săptămână =WEEKDAY(<date>) va întoarce 1 pentru duminică până la 7 pentru sambătă. =WEEKNUM(<date>. 2 .1.2 Numărarea săptămânilor DAX şi Excel numără prima săptămână ca fiind cea în care cade 1 ianuarie. <months>) =EOMONTH(<start_date>. în Europa. prima săptămână e cea în care există cel puţin patru zile.Second: =SECOND([Duration]) Decimal Hours: =([Start]-[Stop])*24 3. de peste două luni dacă argumentul e 2. =WEEKDAY(<date>. 3. <months>) =EOMONTH întoarce ultima zi a lunii curente (dacă argumentul e 0. <return_type>) return_type indică prima zi a săptămânii: 1 (sau omis) – prima zi e duminică. 3. din luna trecută dacă argumentul e -1) 18 .2) va întoarce 1 pentru luni până la 7 pentru duminică. =EDATE(<start_date>.1.prima zi e luni.3 Calculul scadenţelor Se folosesc două funcţii: EOMONTH şi EDATE.

pentru numerele mai mari de 59 se împarte la 60 și se reține restul împărțirii Second .4528 ani de credit. <end_date>. angajatul nu primește nici un credit pentru nici o zi 31 a lunii. în cinci moduri: =YEARFRAC(<start_date>. Acest merge bine pentru trei din fiecare patru ani.1. Excel utilizează un plan de 30/360. Într-un an bisect. Această metodă funcționează bine și se asigură că fracțiunea de an începe la prima zi de după data de aniversare. deseori e nevoie de calcularea anilor şi a fracţiilor de ani. angajatul câștigă 2/360 pe un an pentru a compensa până la 1 martie. 3. Excel utilizează un plan de 30/360. numărul efectiv de zile scurse se împarte la 360. salariatul câștigă 3/360 de pe un an pentru a compensa până la 1 martie. aprilie având doar 30 de zile. Într-un an nebisect. Excel oferă funcţia YEARFRAC care poate calcula fracţii de ani reprezentând numărul de zile întregi dintre două date.secunde.4 Calculul fracţional al anilor În departamentele de personal ale firmelor. pentru numerele mai mari de 23 se împarte la 24 și se reține restul împărțirii Minute .<second>) TIME este similar cu DATE. Este ușor greșit în anii bisecți. .=EDATE întoarce data calendaristică rezultată din adunarea (sau scăderea) numărului de luni specificat în parametru. Dacă cineva ar lucra de 30 de ani doar pentru un angajator. . 3. pentru numerele mai mari de 59 se împarte la 60 și se reține restul împărțirii 19 . număr între 0 și 59.În cazul în care baza este de 3. Totuşi. 1 martie este în valoare de numai dublu credit. . indiferent dacă anul este un an bisect sau nu. numărul efectiv de zile scurse se împarte la 365. modificat pentru utilizări americane. Acest lucru este similar cu baza implicit 0. această metodă ar da persoanei o suplimentare 0. Angajatul nu câștigă nici un beneficiu pe zi pentru orice data de 31 a lunii. modificate pentru utilizări europene.În cazul în care baza este de 1.minute. returnând o valoare datatimp din cei 3 parametrii astfel: Hour – ora. <basis>) Unde basis reprezintă modul de calcul: . Într-un an bisect.În cazul în care baza este de 2. în acest plan.<minute>. număr între 0 și 59.Dacă baza este 4.5 Folosirea funcției TIME pentru calculul timpului =TIME(<hour>.Dacă baza este 0 sau omisă. 3 luni după 31 ianuarie nu va fi 31 aprilie ci 30 aprilie. . Angajatul primeste insă un credit triplu de lucru pentru 01 martie (pentru a face compensa 29 și 30 februarie). numărul efectiv de zile scurse se împarte la numărul real de zile din an. În acest plan. salariatul câștigă 1/360 de credite pe un an pe cele mai multe zile.1. număr între 0 și 23.

De ex. e = 20 . ABS(<number>) Întoarce valoare absolută a unui număr. Conversie text în timp.<base>) Întoarce logaritmul unui număr în baza specificată. 3. PI() Întoarce valoare lui Pi 3. time-text este un sir de caractere ce reprezintă timpul. E = 2. EXP(<number>) Ridicarea lui e la o putere data de numar. 45:30 în Excel înseamnă 45 de ore și 30 de minute. până la număr).. ROUND(<number>.120) este evaluat la 1:14 PM. Exprimarea matematică este: <number> modulo <divisor>. 6:45 PM este același lucru cu 18:45. Rezultatul are același semn cu divizorul.2 Funcții matematice și trigonometrice DAX oferă 22 de funcții matematice și trigonometrice identice cu cele din Excel. <divisor>) Întoarce restul împărțirii numărului la divizor. similar cu DATEVALUE. FACT(<number>) Factorial dintr-un număr (1*2*3*. Se observă ca cele 33 de ore din ultimele linii dau ca rezultat doar 9-10 ore și nu o zi și 9 ore. <denominator>) Întoarce partea întreaga dintr-o împărțire. <num_digits>) Rotunjește un număr cu un număr specificat de zecimale.: =TIME(12. MOD(<number>. LN(<number>) Întoarce logaritmul 2. QUOTIENT(<numerator>.14159265358979 cu 15 zecimale. LOG10(<number>) Întoarce logaritmul unui număr în baza 10.71828182845904 LOG(<number>.*.72. =TIMEVALUE(time_text).. DAX poate manipula valori mai mari decât 60 pentru minute sau secunde. INT(<number>) Rotunjește în jos un număr la prima valoare intreagă sau până la prima valoare semnificativă.Ca și pentru date.71828182845904. baza logaritmilor naturali. în orice format acceptat de Excel. în DAX rezultă o eroare. natural al unui număr. Informația despre data este ignorata.

<significance>) Rotunjește în sus un număr la prima valoare întreagă sau multiplu. SQRT(<number>) Extrage radicalul dintr-un număr.-3) dă 1. nu -3. Până la 0.1.<num_digits>) Trunchiază un număr la un întreg eliminând un număr de zecimalele. Exemple: =INT(2. <num_digits>) Rotunjește în jos un număr cu un număr specificat de zecimale.2) rotunjește 6. POWER(<number>. RAND() Întoarce un număr aleator între 0 și 1.1) produce 3.-1). se referă la zecimale Dacă numărul de zecimale e negativ. al rezultatului unui calcul sau a unei valori dintr-o coloană. Numărul mai mare decât -2. =TRUNC(2. ROUNDUP(<number>. Standardul ISO spune că CEILING trebuie să dea numărul mai mare.5) întoarce 10. =CEILING(6. =MROUND(12.<top>) Întoarce un număr aleator între cele două valori. de la 0.49 se rotunjește în jos. Dacă rezultatul este 1=pozitiv.5 inclusiv se rotunjește în sus.ROUNDDOWN(<number>. INT(-2.000 =CEILING(2.2) = 3. 0=zero. Există o problemă cu numerele negative: =CEILING(-2. -1=negativ.1.-1) = 120 =ROUND(1234567. Dacă numărul de zecimale este 0 se rotunjește la întreg. Dacă numărul de zecimale e pozitiv. rezultatul este -3. =TRUNC(-2. TRUNC(<number>. se referă la cifre din stânga virgulei CEILING(<number>. SIGN(<number>) Întoarce semnul unui număr.significance) Rotunjește în jos un număr la prima valoare întreagă sau multiplu (funcționează similar cu CEILING dar în sus).multiple) Rotunjește la cel mai apropiat multiplu. =ROUND(117. RANDBETWEEN(<bottom>.2) = -2 21 . <num_digits>) Rotunjește în sus un număr cu un număr specificat de zecimale. Numărul se schimbă la fiecare recalculare a celulei. Funcționează corect și pentru numere negative.235. sau 8. <power>) Ridicarea unui număr la o putere.1 este -2. FLOOR(number.2) = 2.1.1 la următorul multiplu de 2. MROUND(number.2) = 2.1.

un anumit număr de caractere. de un număr specificat de ori. SUBSTITUTE(<text>. Dacă nu se specifică. EXACT(<text1>. numere sau valori booleene reprezentate ca text sau o combinație a lor. începând de la o anume locație. FORMAT(<value>. într-un număr. <new_text>) Înlocuiește o parte a unui text cu un alt text. EXACT este case sensitive dar ignoră formatările diferite. Rezultatul poate fi folosit în alte funcții: LEFT. FIND este case sensitive. LEFT(<text>. REPLACE. Rotunjește un număr la număr de zecimale specificat și întoarce un text. LEN(<text>) Întoarce lungimea unui șir (numărul de caractere). =[FirstName]&” “&[LastName] <decimals>. <num_chars>) <start_num>. se întoarce o eroare.. începând de la o poziție de start. Întoarce un subșir dintr-un șir. <num_times>) Repetă un text de un număr de ori. REPLACE(<old_text>. Se poate specifica dacă să aibă sau nu virgula.<text2>) Compară două șiruri și întoarce TRUE dacă sunt exact la fel. Poate fi folosit și operatorul & pentru concatenarea șirurilor. Se pot concatena texte. Daca textul nu este găsit. Dacă textul nu este găsit. Rezultatul poate fi folosit în alte funcții: LEFT. Pentru o funcționare fără erori: =NOT(ISERROR(FIND(“text”. UPPER(<text>) Convertește toate literele unui text la litere mari. <num_chars>) Întoarce ultimele N dintr-un text.[Denumire]))) SEARCH(<search_text>. <start_num>. <new_text>. FIND(<find_text>. LOWER(<text>) Convertește toate literele unui text la litere mici. <text2>.3 Funții de text DAX are 18 funcții de text. <within_text>. <instance_num>) Înlocuiește într-un text. 22 . se înlocuiesc toate instanțele întâlnite. RIGHT(<text>. RIGHT. <no_commas>) Lipește două sau mai multe texte intr-unul singu. MID. RIGHT. de a anume lungime. părți din acel text cu alt text. Poate fi folosit pentru testarea unui text introdus într-un document.. MID. CONCATENATE(<text1>. SEARCH este case sensitive. Funcția Excel TEXT() a fost redenumită în FORMAT(). VALUE(<text>) Convertește un text care arată ca un număr. [start_num]) Întoarce numărul care reprezintă poziția la care este găsit un text mai mic într-un în alt text mai mare.. <format_string>) Convertește o valoare la un text în concordanță cu un format specificat. Funționează ca și Find And Replace.) FIXED(<number>. FALSE în mod contrar. se întoarce o eroare. Diferența dintre formatarea unui câmp și funcția FIXED este că funcția întoarce ca rezultat un text. <old_text>. MID(<text>.3. pornind căutarea de la o anumită <start_num>) poziție. REPLACE. căutând de la stânga spre dreapta. <num_chars>) Întoarce primele N caractere dintr-un text. <num_chars>. Întoarce un număr ce reprezintă poziția în care este găsit un text în interiorul altui text. REPT(<text>. 17 dintre ele fiind identice cu cele din Excel. <within_text>.

.) Întoarce TRUE dacș TOATE argumentele sunt TRUE..”MMM” ) convertește în Jan. <value_if_false>) Verifică condiția returnață de primul argument și dacă e TRUE întoarce <value_if_true> altfel întoarce <value_if_false> IFERROR(<value>..”DDD”) convertește o dată în Mon. =Format([Date]. Exemple: =Format([Date]. Feb. =Format([Date].0.. NOT(<logical>) Negare. [Pierderi] <=1000) Funcția OR se folosește pentru testarea a cel puțin unei condiții.”Sales”.4 Funcții logice IF(<logical_test>.02*[Vanzari]. Exemplu: Calculul uni bonus de 2% dacă vânzările depășesc 20000: =IF([Vanzari]>=20000..”YYYY”) convertește o dată în 2010. IF([Vanzari]>=10000.<logical2>. [A]/ [B]) pentru cazul în care B este 0.”Cost”) va genera “Cost Data” 3.. Tue. On/Off convertește True/False la Yes/No...01*[Vanzari].0. altfel întoarce FALSE OR(<logical1>. =SUBSTITUTE(“Sales Data”.0... <value_if_error>) Întoarce <value_if_error> dacă prima expresie este eronată sau expresia în sine în celălalt caz.”YYMM”) arată data cu două cifre la an și lună Yes/No convertește True/False la Yes/No. Wed.) Întoarce TRUE dacă cel puțin unul dintre argumente este TRUE și FALS în celelalte cazuri.<value_if_true>.<logical2>.... =Format([Date]. 2011. FALSE() Întoarce valoarea logică FALSE. =AND([Vanzari]>=20000. =OR(<[Vanzari]>=20000>.0.. AND(<logical1>.0)) Funcția AND se folosește pentru testarea condițiilor multiple. sau TRUE în FALSE. TRUE() Întoarce valoarea logică TRUE. IF(ISERROR([A]/ [B]).0) Se pot imbrica: =IF([Vanzari]>=20000.<[Persoane]>=200) 23 .02*[Vanzari]. schimbă FALSE în TRUE.TRIM(<text>) Elimină toate caracterele spațiu exceptând câte un singur spațiu între cuvinte (le elimină pe cele de la extremitățile șirului). BLANK() Întoarce blank.

altfel întoarce FALSE. întoarce o tabelă care conține toate liniile care se potrivesc din tabela relaționată. altfel întoarce FALSE. altfel întoarce FALSE. <expression>) Evaluează o expresie pentru fiecare linie a unei tabele și întoarce rezultatul cel mai mare. 3. 24 . COUNTAX(<table>. COUNTX(<table>. <expression>) Contorizează celule nonblank rezultate din evaluarea rezultată dintr-o expresie pe o tabelă.6 Funcții de centralizare a datelor corelate din alte tabele Toate funcțiile precedente funcționează pe date din același tabel. în orice direcție. 3. ISTEXT(<value>) Întoarce TRUE dacă o valoare este text. altfel întoarce FALSE.) Evaluarea unei tabele în contextul unor filtre. de un număr de ori. SUMX(<table>. <number>) Întoarce evaluarea pentru o coloana pentru a fi folosită ca intrare într-un calcul. < expression>) Evaluează o expresie pentru fiecare linie a unei tabele și întoarce rezultatul cel mai mic. ISLOGICAL(<value>) Verifică dacă o valoare este de tip logic (TRUE or FALSE). ISNUMBER(<value>) Întoarce TRUE dacă o valoare este număr. RELATEDTABLE(<table>) Urmărind o relație existentă. <filter2>.3.. AVERAGEX(<table>. <expression>) Contorizează celule numerice nonblank rezultate din evaluarea rezultată dintr-o expresie pe o tabelă. MINX(<table>. din coloana specificată. altfel întoarce FALSE.5 Funcții informative ISBLANK(<value>) Întoarce TRUE dacă o valoare este blank. ISERROR(<value>) Întoarce TRUE dacă o valoare este eronată. <expression>) Calculează media (media aritmetică) a unui set de expresii evaluate pe o tabelă CALCULATETABLE( <expression>. <filter1>.. RELATED(<column>) Întoarce o valoarea dintr-o tabelă relaționată. ISNONTEXT(<value>) Întoarce TRUE dacă o valoare nu este text (blank nu este text). și întoarce TRUE sau FALSE. MAXX(<table>.. totuși e posibil ca DAX să calculeze cu date preluate din tabele diferite.7 Funcții recursive EARLIER(<column>. dar respectivele tabele obligatoriu trebuie să fie relaționate. <expression>) Întoarce un număr zecimal reprezentând suma numerelor din tabelă.

Exemplu de folosire a unei funcții recursive: =CountRows(Filter(Sheet12.Este util pentru calcule imbricate în cazul în care doriți să utilizați o anumită valoare la un calcul. EARLIEST(<table_or_column>) Întoarce valoarea curentă a coloanei specificate pentru a fi folosită ca intrare pentru aceeași coloană. în intrare și care să producă rezultate pe această intrare.Earlier([VANZARI])<[VANZARI] && Earlier([TIP])=[TIP]))+1 (1 este adăugat la urmă pentru a preveni apariția poziției 0) 25 .

Tabelele pivot obișnuite aveau un hover pe câmpurile din zone. Unul cu date despre ID Produs. apoi cel de tip . nu se pot rearanja zonele. putem trece la crearea tabelelor pivot. 26 . 999999 linii).xlsx. 145 linii). POWERPIVOT este făcut să arate ca un tabel pivot obișnuit. luna. Anul. Magazin. Tabelele pivot OLAP conțin patru zone de "drag&drop" ca și tabelele pivot obișnuite dar cu câteva limitări. Tabelele pivot obișnuite aveau un drop-down la menținerea mouse-ului pe un câmp din lista (hover) ceea ce nu se mai regăsește la POWERPIVOT.csv. au fost adăugate două noi zone: Slicere Orizontale și Verticale. am adăugat trei câmpuri calculate: anul. o îmbunătățire față de Excel 2010. mai întâi cel de tip text. În zona de Valori se pot pune măsuri și în celelalte zone dimensiuni. textul denumirilor etichetelor sunt dimensiuni. Celălalt cu rapoarte despre ID Produs. Cod SF. CONSTRUIREA TABELELOR PIVOT După ce am încărcat tabele și am făcut calculele necesare pe coloane. În POWERPIVOT (apelat din Excel) încărcăm cele două tabele. Totuși.CAPITOLUL 4.xlsx. Ordinea în care apar în lista de linii determină ordinea de apariție a lor în partea stângă a raportului.de obicei texte (scurte) • zona de date (valori) – celule la intersecția liniilor cu colonele – de obicei numere. Orasul. Venit (Rapoarte. POWERPIVOT are acelasi hover dar îmbunătățit: mutare în slicere și Summarize By și Edit Measure. gruparea View. iar câmpurile numerice sunt măsuri. Zona (InfoMagazine. În limbajul fișierelor cub. Data. În plus. Tabelele pivot OLAP (OnLine Analytical Processing) sunt folosite pentru totalizarea fișierelor cub. Începem construirea unui tabel pivot care să lege (relaționeze) între ele două tabele. La tabela de mai sus. Unitati. Mall. dar pot fi și texte. Produs. Din fericire.Un tabel pivot are 4 zone: • zona cu etichetele liniilor – în partea stângă jos – de obicei texte (lungi) • zona cu etichetele coloanelor – în partea de sus . (pentru numărarea aparițiilor) • zona de filtre – deasupra etichetelor coloanelor Construirea tabelelor pivot se face prin tragerea denumirilor câmpurilor în cele patru zone de sub lista de câmpuri. Verificarea relației se poate face din tab-ul Home. ziua săptămânii. butonul Diagram View. În tab-ul Design relaționăm câmpul ID Produs din tabela Rapoarte cu câmpul ID Produs din tabela InfoMagazine. În plus aveți acces la instrumente în cele doua tab-uri ale PivotTable care oferă multe setări pentru formatarea tabelelor pivot. adică se pot pune măsuri la dimensiuni și viceversa.

În partea dreaptă va apărea lista cu câmpurile POWERPIVOT. Orice bifă aplicată unui câmp. butonul PivotTable sau din POWERPIVOT butonul Pivot Table. Crearea propriu-zisă a tabelului pivot se poate face din două locuri. După confirmare cu OK. îl va muta automat conform tipului său. pentru acces. care are mai multe opțiuni: Alegem locația unde dorim crearea tabelei pivot de obicei într-o foaie noup. câmpurile din tabela părinte fiind deja afișate. Implicit. 27 .Revenirea în vizualizare normală se face cu butonul DataView. Câmpurile celeilalte tabele apar și ele dar precedate de un semn +. cu același rezultate: din Excel. câmpurile numerice fiind implicit însumate. iar cele de tip numeric în zona de Valori. Aspectul se poate îmbunătăți mult dacă mutăm Magazinul în zona Column Labels. câmpurile de tip text (dacă se bifează) vor apărea în zona etichetelor de linii. care le poate expanda. În exemplul nostru cu câteva click-uri putem să avem un raport despre venituri defalcat pe Zona și Magazin. obținem noul tabel pivot.

gruparea Layout. altele vor fi afișate ca blank. Cele blank indică faptul că acolo nu au fost niciodată date. avem posibilitatea să filtrăm toate datele deja afișate după diverse criterii (ex: datele defalcate pe Oras) Se poate întâmpla ca unele celule să fie 0. putem seta cum să apară celulele goale: Dacă datele de pe linii sunt formate din mai multe câmpuri.1 Filtre și slicer-e Dacă avem nevoie de mai mult decât de un singur filtru. ele pot afișate sau nu (restrânse sau expandate) din butoanele de + și – din stânga denumirii câmpurilor. În funcție de cum dorim să apară aceste date. De asemenea. cele cu 0 indică faptul că acolo au fost date dar ulterior au ajuns să fie 0.Utilizarea Filtrelor: prin adăugarea unui câmp în fereastra de Report Filter. 4. respectiv gruparea datelor din slicer să fie pe orizontală sau verticală. atunci va trebui să apelăm la slicer-e care sunt în esență tot filtre dar cu care se lucrează mult mai comod. aspectul poate fi ajustat din tab-ul Design al PivotTable Tools. 28 . Pentru aceasta e suficient sa bifăm un câmp pe care apoi să-l tragem în zona de slicer dorită: vertical sau orizontal.

Daca avem 16 Orase. (dacă le expandăm pe toate cele 4 nivle) ceea ce e foarte mult. datele trebuiesc copiate și lipite din nou. . Pentru a putea reduce numărul acestora. In POWERPIVOT trebuie urmați câțiva pași suplimentari: . Copy Row și pot fi reordonate cu cele două butoane de mutare în sus sau în jos. setarea păstrându-se cu un nume implicit (sau mai bine explicit) și care va apare in lista de câmpuri. tabelele pivot nu fac aceasta..3 Reguli importante referitoare la Pivot Tables Deși majoritatea foilor de lucru excel recalculează datele la modificarea unei celule. opțiunea Create Set Baset on Row Items. noul set va apare în lista de câmpuri și poate fi folosit.2 Calculation Fields. Soluția se află în butonul de Refresh All. 29 . După confirmarea cu OK. 4 Zone.4. 8 Malluri si 144 de Magazine.dacă tabela pivot este creată din alte surse externe.. În fereastra care apare – New Set (PowerPivot Data). 4. atunci în POWERPIVOT trebuie folosit Refresh drop-down. se poate folosi butonul Update All. se apelează la Fields. din mulțimea de linii care compun tabelul pivot putem selecta doar cele ce ne interesează să apară la o ulterioară vizualizare a sa. .dacă tabela pivot este creată din tabele legate.dacă tabela pivot este creată din date copiate și lipite în POWERPIVOT. din gruparea Calculation a tab-ului Option de la PivotTable Tool. Items & Sets în Pivot Table În cazul lucrului cu tabele pivot care au mai multe nivele de detaliere la câmpurile care compun liniile (sau coloanele). Items & Sets. e posibil să fie până la 16*4*8*144 de linii în tabelul pivot. Selecția liniilor se face cu cele trei butoane Add Row. se poate să nu fie nevoie să fie afișate toate liniile (sau coloanele) care compun tabelul pivot. Delete Row.

La adăugarea unui câmp calculat trebuie făcut Refresh din butonul corespunzător care apare deasupra listei de câmpuri. de data aceasta. gruparea Tools. de obicei creat de un administrator de baze de date.5 Convertirea unui tabel pivot în format cub În mod normal.Zona Row Labels este acum numită Axis Fiels (sau Categories) . din butonul OLAP Tools alegem Convert to Formulas.Actualizarea aplicată datelor din POWERPIVOT nu face face refresh și la tabela pivot! În tabelul pivot trebuie folosit butonul de Refresh care apare deasupra listei de câmpuri sau butonul de Refresh All. POWERPIVOT ne ajută să ne descurcăm fără administrator de date creând el fișierul cub. fiecare celulă având atașată o formulă. Se alege foaia unde dorim să facem copierea și se lipește cu opțiunea Paste Value.6 Lucrul cu Pivot Charts Lucrul cu Pivot Charts este oarecum similar cu Pivot table. Se selectează o celulă din cadrul tabelului pivot. din tab-ul Options.Zona Column Labels este acum numită Legend Fields (sau Series) 30 . 4. tabelele OLAP pivot citesc un tip special de baze de date numit un cub. După această manevră se pot adăuga linii sau coloane în tabelul pivot. cu deosebirile următoare: . valorile vor apare din nou. 4. 4.4 Convertirea tabelei pivot în valori Câteodată e necesar să calculăm și altceva decât ne oferă o tabela pivot și asta se poate face scoțând în afară datele. După câteva secunde de calcule. Se începe prin a selecta întregul tabel pivot (cu tot cu filtre) dar fără slicer-e și copierea lui cu butonul Copy din tab-ul Home.

În plus. Advanced. listele personalizate pot fi lărgite prin adăugarea unora noi: în Excel. butonul Fields Buttons putem afișa sau nu diverse butoane din grafic. 31 . din tab-ul Analyze. tab-ul File. butonul Change Chart Type. etc. Options. Așa ca și la graficele pe care le știm din Excel.Se poate observa că filtrele se păstrează și sunt funcționale.7 Opțiuni suplimentare a) Sortare după valoare și nu alfabetic Cu un click dreapta pe câmpul care se doreste a fi sortat descrescător după valoare se alege Sort – More Sort Option. orice alt câmp care va fi bifat.. Listele pot fi ierarhii de calificări. 4. gruparea Show/Hide. apoi se stabilește ce anume să se sorteze: b) Sortarea lunilor în secvență naturală Tabelele pivot din Excel ordonează în mod implicit după listele personalizate. Toate graficele din POWERPIVOT au în spate un tabel pivot. POWERPIVOT nu face asta implicit dar poate fi ”convins” prin opțiunile se sortare: În plus. gruparea Type. aspectul se poate schimba din tab-ul Design. funcții într-o firmă. Edit Custom List. va deveni un filtru cu care se pot face selecții de date de afișat.. zone geografice.

etc. Aceasta se poate face cu ajutorul Base Fields și Base Item. fie cu click dreapta și alegem Summarize By fie click pe numele câmpului și alegem Edit Measure. % din TOTAL Rang pe Magazin Rang pe Zona Formatarea valorilor din cadrul tabelului pivot se poate face cu click dreapta pe o valoare și de acolo ales Number Format. Conditional Formating) așa ca în exemplu sau se pot crea mici grafice de tip SparkLine în celula din dreapta unui serii de celule (tab-ul Insert. POWERPIVOT mută câmpurile numerice în zona de vlori: dacă mutăm câmpuri de tip text în zona de valori. E posibil să avem nevoie de calcul valorilor față de alte valori din aceași grupă sau să știm rangul unei valori. (în exemplu. gruparea Style. Deasemenea. putem să o schimbăm în alte trei calcule: MIN. În timp ce prima contorizează TOATE liniile care satisfac filtrul. ca procente din totalul general). MAX. click pe celula din dreapta seriei. AVERAGE.. alegem Filter și de acolo Top 10.c) Afișarea primelor n poziții Cu click dreapta pe una din celulele din zona RowLabels. cea de-a doua contorizează doar aparițiile corelate cu alte criterii. selectând celulele de date se pot formata condiționat (tab-ul Home. conținutul lor va fi contorizat (numărat)... Există două tipuri de contorizări: COUNTA și DISTINCTCOUNT.. e) Schimbarea felului în care se văd datele Cu click dreapta pe una din celulele tabelului pivot putem sa schimbăm felul în care se vad datele raportate la alte calcule (ca % din total pe lini/coloana/general. Dacă însumarea implicită nu ne satisface. și de acolo alegem ce ne ajută la afișarea primelor n poziții: d) Schimbarea calculelor În mod implicit.) așa cum le știm din tabele pivot din Excel. și din gruparea SparkLine una dintre opțiuni) 32 .

33 .

Ele pot fi de tip implicit și explicit. Implicit ni se oferă toate tabelele relaționate de care are cunoștință POWERPIVOT la momentul respectiv (în cazul nostru Rapoarte și InfoMagazine).1 Perspective Unul dintre avantajele utilizării programului de completare PowerPivot pentru a rafina un model de date este capacitatea de a adăuga perspective. în tabelul din POWERPIVOT se va crea automat un câmp calculat implicit. După creare. Pentru a putea fi create. cu suma pe Venit: 34 . în același timp. dăm un nume sugestiv perspectivei și confirmăm cu OK. în partea de sus. Bifăm câmpurile necesare. Dar dacă examinați mai atent lista Valori. Pornim de la un tabel pivot în care avem doar două câmpuri.CAPITOLUL 5. Perspectivele pot fi utilizate ca sursă de date pentru rapoartele PivotTable și alte rapoarte. inclusiv rapoarte Power View (Office 2013). facilitând navigarea în seturi mari de date și/sau regăsirea ușoară a unor seturi restrânse de colecții de tabele și coloane. PERSPECTIVE ȘI MĂSURI 5. 5. în zona de valori a unui tabel pivot. Cele de tip implicit sunt create automat de sistem la glisarea unui câmp numeric din lista de câmpuri. Când vă conectați la un fișier de lucru ce include perspective. Perspectivele oferă vizualizări particularizate pe care le definiți pentru un anumit grup de utilizatori sau pentru un anumit scenariu de afaceri. de unde putem gestiona (pentru început crea) perspectivele. perspectivele pot fi găsite și accesate din fereastra de table pivot. coloane și măsuri (inclusiv indicatori KPI) într-o perspectivă și puteți crea mai multe perspective pentru diverși clienți de raportare din organizația dvs. veți vedea că acest câmp (în cazul nostru Venit) este de fapt un câmp calculat denumit Sum of Venit. în tab-ul Advanced. puteți alege o anumită perspectivă în pagina selectare tabele și vizualizări din expertul de conectare a datelor.2 Măsuri Valorile calculate sunt numite măsuri. Deoarece câmpurile calculate implicite sunt generate de Excel. Puteți include (și așa va fi păstrată) orice combinație de tabele. Mall (pe linii) și Produs (pe coloane) (obținut din POWERPIVOT dar pentru exemplificare am debifat câmpul Venit) și tabelul în POWERPIVOT fără nici o celulă calculată: Bifăm în lista de câmpuri din tabelul pivot pe câmpul Venit și vom avea în lista ∑ Valori suma câmpului Venit. primul buton este Perspectives. este posibil să nu știți că a fost creat un nou câmp calculat. POWERPIVOT trebuie să fie trecut în modul Advanced.

<expression>) Returnează valorile care nu sunt goale pentru prima dată în coloană.. care va fi și o măsură.<column2>. sau într-un tabel definit de o expresie FILTER(<table>. COUNTROWS(<table>) Contorizează numărul de rânduri în tabela specificată.<filter>) Returnează un tabel care reprezintă un subset din alt tabel sau expresie.. Returnează toate rândurile. se face astfel: Diferența dintre cele două câmpuri. dar funcția Values poate întoarce de asemenea și un membru necunoscut. cu excepția filtrelor care au fost aplicate la coloanele specificate. nu puteți să îl utilizați pentru alte calcule.2. chiar dacă folosesc aceeași funcție și au același rezultat. este aceea că. După ce utilizați un câmp calculat ca indicator KPI. cel calculat implicit și cel calculat explicit. într-un tabel sau o coloană. cu excepția rândurilor necompletate. filtrate de expresie. 35 . COUNTBLANK(<column>) Contorizează numărul celulelor goale dintr-o coloană. câmpul calculat explicit poate fi folosit la crearea de KPI Câmpurile calculate explicite pot fi utilizate de orice raport PivotTable sau PivotChart din registrul de lucru și de rapoartele Power View. FIRSTNONBLANK(<column>.) ALLNONBLANKROW(<table_or_column>) Anulează toate filtrele contextuale din tabelă.column1>.1 Funcții utile în calculul măsurilor ALLEXCEPT(<table>. 5. Această funcție este similară cu funcția Distinct.Crearea unui câmp calculat explicit. și ignoră orice filtre de context care ar putea exista. trebuie să creați o copie dacă doriți să utilizați formula și în calcule. VALUES(<column>) Returnează o tabelă de o coloană care conține valori distincte din coloana specificată.

ENDOFMONTH(<date_column>) Returnează ultima dată a lunii în contextul curent. DATESINPERIOD(<date_column>.<dates>.<number_of_interv als>.<start_date >. LASTDATE (<date_column>) Returnează ultima dată în contextul curent pentru coloana specificată de date calendaristice. ”În contextul curent” înseamnă după aplicarea tuturor filtrelor. CLOSINGBALANCEQUARTER(<expression >. LASTNONBLANK (<date_column>.<YE_Date>) Returnează ultima dată a anului în contextul curent pentru coloana specificată de date calendaristice FIRSTDATE (<date_column>) Returnează prima dată calendaristică în contextul curent pentru coloana specificată de date calendaristice.<intervals>) Returnează un tabel ce conține o coloană de date calendaristice care începe cu start_date și continuă pentru numărul specificat de number_of_intervals. CLOSINGBALANCEMONTH(<expression>. în contextul current.<number_of_intervals>. DATESQTD (<date_column>) Returnează un tabel ce conține o coloană cu datele trimestrului curent. pentru care expresia nu este necompletată. ENDOFYEAR(<date_column>. FIRSTNONBLANK (<date_column><Expression>) Returnează prima valoare din coloana column filtrată în funcție de contextul curent. deplasate înainte sau înapoi în timp în funcție de numărul specificat de intervale de la datele calendaristice din contextul curent.<interval>) Returnează un tabel ce conține o coloană de date calendaristice.5.<en d_date> Returnează un tabel ce conține o coloană de date calendaristice care începe cu start_date și continuă până la end_date.<start_date>. în contextul curent.<expression>) Returnează ultima valoare din coloana column filtrată de contextul curent. 36 .<filter>) Evaluează parametrul expression la ultima dată a semestrului în contextul curent.<YE_date>]) Returnează un tabel ce conține o coloană cu datele anului curent.<filter>) Evaluează parametrul expression la ultima dată a anului în contextul curent DATEADD(<date_column>. CLOSINGBALANCEYEAR(<expression>.2 Time Intelligence Functions Sunt funcții complexe de calcul al timpului. pentru care expresia nu este necompletată.< dates>.<filter>) Evaluează parametrul expression în ultima dată a lunii în contextul curent. DATESBETWEEN(<column>. în contextul curent DATESYTD (<date_column> [.<da tes>.2. pentru coloana specificată de date calendaristice ENDOFQUARTER(<date_column>) Returnează ultima dată a trimestrului în contextul curent pentru coloana specificată de date calendaristice. DATESMTD(<date_column>) Returnează un tabel ce conține o coloană cu datele lunii curente.

PREVIOUSYEAR(<date_column>[. în contextul curent. ținând cont de ultima dată în coloana dates. în contextul curent. în funcție de prima dată din coloana dates. pentru coloana specificată de date calendaristice. fie înapoi.<YE_date>]) Returnează un tabel ce conține o coloană cu toate datele din anul următor.NEXTDAY(<date_column>) Returnează un tabel ce conține o coloană cu toate datele din ziua următoare. OPENINGBALANCEQUARTER(<expression >.<YE_Date >]) Returnează un tabel ce conține o coloană cu toate datele din anul anterior. în contextul curent.<intervals>) Returnează un tabel ce conține o coloană de date calendaristice care reprezintă o perioadă paralelă cu datele calendaristice din coloana dates specificată. pentru coloana specificată de date calendaristice. în contextul curent. cu datele calendaristice deplasate în timp cu un număr de intervale fie înainte. NEXTMONTH(<date_column>) Returnează un tabel ce conține o coloană cu toate datele din luna următoare.<filter>) lunii în contextul curent. OPENINGBALANCEYEAR(<expression>. SAMEPERIODLASTYEAR(<date column>) Returnează un tabel ce conține o coloană de date calendaristice deplasate cu un an în urmă față de datele din coloana dates specificată în contextul curent. în contextul curent. PREVIOUSMONTH(<date_column>) Returnează un tabel ce conține o coloană cu toate datele din luna anterioară pe baza primei date din coloana dates.< Evaluează parametrul expression în prima dată a dates>.<dates>. în funcție de prima dată specificată în coloana dates. NEXTYEAR(<date_column>[.<number _of_intervals>. PREVIOUSDAY(<date_column>) Returnează un tabel ce conține o coloană cu toate datele reprezentând ziua anterioară primei date din coloana dates. în contextul curent. PREVIOUSQUARTER(<date_column>) Returnează un tabel ce conține o coloană cu toate datele din trimestrul anterior pe baza primei date din coloana dates.<filter>) Evaluează parametrul expression în prima dată a anului în contextul curent. în funcție de prima dată din coloana dates. STARTOFMONTH (<date_column>) Returnează prima dată a lunii în contextul curent. în contextul curent. în contextul curent.<filter>) Evaluează parametrul expression la prima dată a trimestrului. PARALLELPERIOD(<date_column>.<da tes>. în contextul curent. NEXTQUARTER (<date_column>) Returnează un tabel ce conține o coloană cu toate datele din trimestrul următor. în funcție de prima dată specificată în coloana dates. STARTOFQUARTER (<date_column>) Returnează o primă dată a trimestrului în contextul curent. 37 . OPENINGBALANCEMONTH(<expression>. în contextul curent.

<filter>) Evaluează valoarea ultimului an a parametrului expression în contextul current.<YE_date>]) Returnează prima dată a anului în contextul curent.<dates>.<dates>.<filter>) Evaluează valoarea parametrului expression pentru ultima lună.<dates>. în contextul current.<filter>) Evaluează valoarea parametrului expression pentru datele din ultimul trimestru. în contextul curent TOTALYTD(<expression>. TOTALQTD(<expression>. TOTALMTD(<expression>. 38 . pentru coloana specificată de date calendaristice.STARTOFYEAR (<date_column>[.

un KPI este unitatea de măsură cuantificabilă pentru măsurarea obiectivelor de afaceri. • Praguri de stare . debifăm Value și Target și lăsăm doar Status: 39 . facem suma pe Venit.000 fiind îndeplinit target-ul. Pe baza acestei sume construim KPI-ul: În POWERPIVOT. de un câmp calculat sau de o valoare absolută. abia peste 10. De exemplu. comparativ cu o valoare Țintă.000.1 Indicatori de performanță (KPI) Un indicator cheie de performanță (KPI) se bazează pe o valoare calculată și este proiectat pentru a ajuta utilizatorii să evalueze rapid valoarea și starea curentă a unei măsurători comparativ cu o țintă definită. KPI măsoară performanța valorii. unde numărul mediu de zile de concediu medical reprezintă valoarea absolută.definit de intervalul dintre un prag minim și un prag maxim.definită de un câmp calculat din care reiese o valoare sau de o valoare absolută. butonul Create KPI.definită de un câmp calculat din care reiese o valoare. repartizate pe Mall-uri. de exemplu. FINE TUNING 6. definită.000. • Valoarea țintă .000 și 10. Pentru aceasta.000. Un KPI include: • Valoarea de bază .CAPITOLUL 6. De exemplu. definită de un câmp calculat Bază. Toate acestea sunt exemple de KPI. unele fiind de referință. iar departamentul de resurse umane poate măsura indicele de rotație trimestrială a personalului. de asemenea. în tab-ul Home.000 e o zonă galbenă. se încadrează în target-ul de 10. În exemplul nostru: ne propunem să vedem dacă valorile veniturilor rezultate din vânzările produselor.000 și se consideră ca între 5.000. în POWERPIVOT. Dacă vrem să vedem doar grafic încadrarea în target. Pragul de stare se afișează cu un element grafic pentru a-i ajuta pe utilizatori să determine cu ușurință starea valorii de bază comparativ cu valoarea țintă. Confirmăm cu OK și facem Refresh la tabela pivot pe butonul din partea de sus a listei câmpurilor. unde câmpul calculat pentru buget reprezintă valoarea țintă. Departamentul de contabilitate poate măsura cheltuielile lunare comparativ cu veniturile pentru a evalua costurile. Această valoare. Avem valoarea absolută de 10. Specialiștii utilizează frecvent KPI-uri grupate împreună într-un raport de tip scorecard de afaceri pentru a obține un rezumat istoric rapid și corect al succesului unei afaceri sau pentru a identifica tendințe. În terminologia de afaceri. departamentul de vânzări dintr-o organizație poate să utilizeze un KPI pentru a măsura profitul brut lunar comparativ cu profitul brut previzionat. un câmp calculat se poate utiliza ca valoare țintă atunci când managerii unei organizații doresc să compare modul în care departamentul de vânzări se îndreaptă spre o cotă dată. gruparea Measures. Vor apărea cele trei câmpuri în plus în lista de câmpuri. Este o ilustrare grafică a unor raporturi între diferite date.000. Un exemplu de valoare absolută utilizată ca valoare țintă poate fi atunci când managerul de resurse umane dorește să evalueze numărul de zile de concediu medical al fiecărui angajat comparativ cu media. pe tabela cu câmpul de însumat (Rapoarte).000. acceptabilă. poate fi creată ca agregat pentru vânzări sau creată pentru a defini profitul pentru o perioadă dată.

Cardinalitatea de cel mai înalt nivel este listată prima. până pe poziția în care doriți să apară în ierarhie. gruparea View. ORAS. Dacă tabelul nu include toate coloanele pe care doriți să le utilizați. cu click dreapta pe câmpul de KPI din lista de câmpuri a tabelului pivot.Editări ulterioare ale KPI se pot face în două locuri: fie în POWERPIVOT. 6. dacă aveți date geografice. în tab-ul Home. pe care doriți să le plasați într-o ierarhie. este bine să creați o ierarhie care începe cu țara și se detaliază cu regiunea și orașul. Sau. cu click dreapta pe celula care conține însumarea de coloană. iar coloanele selectate sunt copiate în ierarhie ca niveluri copil și editați numele ierarhiei. 40 . butonul Diagram View. Faceți clic dreapta pe una dintre coloanele selectate și alegeți Create Hierarchy. unde valorile sunt cele mai rare sau unice (REGIUNE). Un nivel părinte al ierarhiei este creat în partea de jos a tabelului. ordinea coloanelor copil este cea din tabel dar ea poate fi modificată prin glisarea unei coloane din ierarhie în sus sau în jos. MALL. adăugarea coloanelor suplimentare plasează nivelurile copil în partea de jos a listei. le puteți adăuga utilizând funcția Related. în cazul nostru. Când utilizați o selecție multiplă pentru a crea o ierarhie. fie în Excel. iar coloanele cu nivelul cel mai scăzut de cardinalitate sunt listate ultimele (MALL). puteți glisa mai multe coloane în nivelul părinte al ierarhiei. O ierarhie este o listă de coloane care sunt considerate a fi un singur element când sunt utilizate întrun raport Pivot sau Power View. Aici selectați una sau mai multe coloane din același tabel. REGIUNE. Apoi. ceea ce creează niveluri copil din coloane și plasează nivelurile în partea de jos a ierarhiei.2 Ierarhii Una dintre modificările pe care le puteți efectua la un model de date este adăugarea ierarhiilor. În fereastra PowerPivot. ordinea nivelurilor copil se bazează inițial pe cardinalitatea coloanelor. Inițial. unde valorile pot avea mai multe duplicate. O ierarhie apare ca un singur obiect în lista de câmpuri. De exemplu. Totuși. Puteți crea o ierarhie dintr-o coloană ascunsă (o coloană ce este ascunsă de instrumentele client). Ierarhiile facilitează pentru utilizatori selectarea și navigarea pe căi obișnuite ale datelor la crearea rapoartelor și a rapoartelor PivotTable. MAGAZIN. Puteți glisa coloanele pentru a modifica ordinea.

Puteți adăuga o coloană numai o singură dată la o ierarhie. puteți elimina un nivel copil dintr-o ierarhie.Dacă știți ce coloane doriți să creați ca niveluri copil în ierarhia dvs. În mod implicit. După ce adăugați o coloană la o ierarhie. După crearea unei ierarhii. puteți afișa numele sursă al unui nivel copil (numele coloanei) și puteți ascunde un nivel copil dacă acesta are același nume cu nivelul părinte al ierarhiei. puteți adăuga coloane suplimentare ca niveluri copil. nu o puteți adăuga din nou la aceeași ierarhie. numele sursă al coloanei apare în partea dreaptă a nivelului copil și poate fi ascuns sau afișat cu click dreapta de unde alegem Hide/Show Source Column Name. puteți modifica ordinea nivelurilor copil. Puteți redenumi o ierarhie.. toate acestea cu click dreapta pe nivelul părinte al ierarhiei. 41 . comanda Create Hierarchy din meniul contextual vă permite să selectați acele coloane și să creați rapid o ierarhie cu mai multe niveluri copil. puteți redenumi un nivel copil. ea va apare în lista de câmpuri a tabelului pivot. acesta nu mai partajează același nume ca și coloana din care este creat. Dacă redenumiți un nivel copil al unei ierarhii.