Sunteți pe pagina 1din 41

Utilizarea instrumentului

PowerPivot n Excel
SUPORT DE CURS

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

Importul fiierelor de tip text (.csv) ........................................................................................ 4

1.2

Importul fiierelor de tip Excel (.xlsx) .................................................................................... 5

1.3

Relaionare .............................................................................................................................. 6

1.4

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

1.5

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

1.6

Crearea de legturi n PowerPivot ........................................................................................ 11

CAPITOLUL 2. LUCRUL CU TABELE N POWERPIVOT ............................................................. 14


CAPITOLUL 3. FUNCII N POWERPIVOT .................................................................................... 16
3.1

Funcii de dat i timp ........................................................................................................... 16

3.1.1 Calcularea zilei din sptmn ............................................................................................. 18


3.1.2 Numrarea sptmnilor ...................................................................................................... 18
3.1.3 Calculul scadenelor ............................................................................................................. 18
3.1.4 Calculul fracional al anilor.................................................................................................. 19
3.1.5 Folosirea funciei TIME pentru calculul timpului ............................................................... 19
3.2

Funcii matematice i trigonometrice.................................................................................... 20

3.3

Funii de text ......................................................................................................................... 22

3.4

Funcii logice ........................................................................................................................ 23

3.5

Funcii informative................................................................................................................ 24

3.6

Funcii de centralizare a datelor corelate din alte tabele ....................................................... 24

3.7

Funcii 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

Opiuni suplimentare ............................................................................................................. 31

CAPITOLUL 5. PERSPECTIVE I MSURI .................................................................................... 34


5.1

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

5.2

Msuri ................................................................................................................................... 34

5.2.1 Funcii utile n calculul msurilor ........................................................................................ 35


5.2.2 Time Intelligence Functions................................................................................................. 36
CAPITOLUL 6. FINE TUNING .......................................................................................................... 39
6.1

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

6.2

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

CAPITOLUL 1. INTRODUCERE N POWERPIVOT


Trebuie spus de la nceput ca POWERPIVOT NU este Excel, ci este un ADD-ON. Are multe
asemnri cu Excel dar i multe deosebiri. POWERPIVOT gestioneaz mari cantiti de date n
memoria RAM (tabele principale) relaionndu-le cu tabele de pe hard disk (tabele de lookup), crend
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 gsi 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 grupri i butoane (Get External Data) cu care putem importa date n
POWERPIVOT, din diferite surse. n exemplul care urmeaz, ne propunem s crem un tabel pivot
dintr-un fiier de date de tip .csv, delimitat cu ; de 999999 de linii i un tabel din Excel, cele dou
avnd un cmp comun (ca i coninut) i anume ID Produs (numele celor dou cmpuri nu e nevoie
s fie identic) .

Un prim mare avantaj al lucrului cu PowerPivot este faptul ca tabelul de tip .csv se va ncrca n
memorie i de acolo va fi accesat, viteza i cantitatea de date crescnd foarte mult (se pot prelucra
peste 100 de milioane de linii din fiierul .csv). Cel de-al doilea mare avantaj const n faptul c pot fi
relaionate dou (sau mai multe) tabele, oarecum similar cu modul de lucru din Access.

Exist un numr de moduri de a obine date n PowerPivot:


Putei lega datele Excel care au fost convertite la un tabel.
Avei posibilitatea s copiai i s lipii date Excel n PowerPoint. Mai trziu, putei aduga la un
tabel existent.
Putei importa de la o baz de date, cum ar fi Access sau SQL Server.
Putei importa de la orice raport SharePoint care are un simbol Atom n antet.
Putei 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 cretere 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 copiai i inserai un tabel Excel sau dac ar trebui s-l legai. Probabil
c exist sute de date Excel potrivite pentru importul n PowerPivot. Pentru datele coninute n fiiere
de tip text, e nevoie de un singur rnd de cap de tabel, urmat de rnduri de date. Cnd avei aceste
date, se pot lega fie la versiunea de tabel a datelor stocate n registrul de lucru, (copy i paste), sau
importa dintr-un fiier Excel. Cnd copiai i lipii, nu trebuie s modificai datele originale n Excel.
Putei 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 modificri ale datelor. Modificrile trebuie sa se fac n Excel i
sa se reimporte. Cnd v legai la un tabel, va trebui s modificai datele n Excel cci ele nu pot fi
modificate n PowerPivot. Tabelele trebuie s fie stocate n fiierul de lucru n care se afl
PowerPivot. Avantajul este c putei actualiza link-ul i orice modificri ale datelor Excel vor aprea
n PowerPivot.
Putei importa, de asemenea, date din fiiere Excel externe. Cnd importai date, putei fie s le
formatai fie ca un tabel, fie ca o zon denumit, pentru import. Din nou, dac modificai datele, putei
remprospta link-ul i noile date vor intra n PowerPivot.
Este esenial ca ordinea n care se ncarc fiierele n POWERPIVOT sa fie urmtoarea: mai nti
tabelul principal, de tranzacii (n cazul nostru - .csv) i apoi cel de "lookup", din dou motive:
importul se face n ordinea prezentrii i relaionarea tabelelor se face presupunnd c primul tabel
importat este cel principal.

1.1 Importul fiierelor de tip text (.csv)


Din POWERPIVOT, tab-ul Home, gruparea Get External Data, butonul From Text alegem fiierul
Demo.csv, bifnd faptul c e separat cu ; i are prima linie ca header:

n acest moment sunt afiate 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 adugate, calculate,
(necesare pentru filtrri) deoarece POWERPIVOT nu poate face filtrri aa ca Excel. Tot acum se fac
4

filtrrile i sortrile necesare. n cazul de fa, adugm o coloan ce va conine anul i una ce va
conine luna, preluate din datele tabelului.

1.2 Importul fiierelor de tip Excel (.xlsx)


Pentru revenirea n Excel se apas butonul de revenire aflat n partea din stnga sus:

n mod uzual, pentru nceput trebuie sa convertim datele pe care le avem, ntr-un tabel, aa cum este
acesta neles n Excel:

Cu un click (celula activ) n interiorul zonei de date (viitorul tabel), accesm tab-ul Home, gruparea
Styles, butonul Format as Table, tabel ce poate fi redenumit cu un nume sugestiv.

Pentru lipirea datelor din Excel n POWERPIVOT, 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, cel de 999999 de linii. Aici, n tab-ul Home vom
apsa butonul Paste iar noului tabel i vom da un nume sugestiv (InfoMagazine).

n acest moment, POWERPIVOT recunoate dou tabele: tabelul principal, Rapoarte, de tip txt (.csv)
i tabelul InfoMagazine de tip .xlsx. Urmeaz relaionarea celor dou: n tab-ul Design gruparea
Relationships butonul CreateRelationship. Dup relaionare, tabelele legate pot fi vizualizate cu
ajutorul butonului Diagram View.

1.3 Relaionare
Vom relaiona o coloan din tabelul principal (.csv) cu o coloan din cellalt tabel (.xlsx) fcnd click
pe o celul din coloana ID Produs a tabelului Rapoarte apoi clik pe butonul CreateRelationship i
completnd linia de jos cu datele din tabelul de tip .xlsx i ncheiem aciunea cu Create.

Faptul c cele dou tabele sunt relaionate se vede n capul de tabel:

n acest moment putem trece la construirea uni PowerPivot Table, avnd toate datele necesare: dou
tabele, primul, principal (.csv) n memorie, i cel de-al doilea (.xlsx) copiat din Excel, relaionate prin
cmpurile ID Produs.

1.4 Construire tabel pivot


Unul dintre avantajele PowerPivot este i faptul c mai multe tabele pivot pot mpri aceleai date i
slicer-e.
n tab-ul Home din POWERPIVOT, butonul Pivot Table poate crea mai multe tipuri de pivoi:

ncepem prin a crea un simplu tabel pivot apsnd Pivot Table ceea ce va determina trecerea n Excel
i posibilitatea de a opta pentru a fi creat ntr-o nou foaie sau n aceeai. Optm pentru unul nou i
obinem un tabel pivot asemntor cu ceea ce tiam din Excel. Se observ existena mai multor
ferestre n zona Field List i apariia tab-ului Pivot Table Tools.

Pntru obinerea unui tabel pivot cu slicere, procedm astfel: bifm Venit (i va apare la Values),
tragem Oras la Row Label, Zona la Columns Label, Anul i Luna la Slicers Vertical i Mall la
Slicers Horizontal orice modificare ulterioar fiind posibil.

Tabelul pivot astfel obinut se poate formata cu ajutorul tab-urilor Design i Options din Pivot Table
Tools: benzi orizontale i/sau verticale ca aspect, formatarea cmpului activ (Sum of Venit) ca numr,
etc.

1.5 Legarea datelor din Excel de PowerPivot


n cazul n care datele se gsesc n alte baze de date i/sau n alte tabele Excel, datele pot fi doar
legate, nu importate n PowerPivot. Astfel, aceluiai tabel Excel din exemplul anterior i se seteaz
atributul de tabel legat, astfel:

rezultatul fiind c n PowerPivot (care este deja activ i are acces la


Production_TransactionHistory din baza de date de tip .accdb), tabelul apare ca fiind legat:

tabela

mai departe construcia tabelului pivot decurgnd similar cu exemplul prezentat deja.
Faptul c datele din Excel trebuie s fie n tabele are unele implicaii:
prima linie e implicit ngheat, liniile sunt colorate alternativ,
opiunea Custom View nu mai e disponibil,
nu se mai poate partaja din Review/ Share Workbook,
auto-filter este implicit,
toate cmpurile calculate se vor recalcula pentru noile rnduri introduse.
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, etc.).
Exist i situaii n care datele nu e indicat sa fie legate cu POWERPIVOT i anume atunci cnd
datele trebuie s poat fi partajate cu alte persoane. n acest caz, datele se vor importa de fiecare dat
cnd va fi nevoie.
Pe lng aceste posibiliti, exist opiunea de a aduga date la cele deja existente i anume cu
opiunea Paste Append. Datele copiate anterior (cu tot cu cap de tabel) se adaug la sfritul tabelului
care trebuie actualizat i din POWERPIVOT, gruparea Clipboard, cu butonul Paste Append. n cazul
n care structura datelor nu se mai potrivete cu structura tabelului existent, se afieaz un mesaj de
eroare.
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 opiunii corespunztoare din fereastra de PastePreview.

n cazul n care se aduc date prin copy/paste, nu trebuie s existe nici o celul fr date (valori) ntr-o
coloan cu valori numerice deoarece aceasta va cauza contorizarea (numrarea) i nu nsumarea
valorilor la crearea tabelului pivot. De asemenea, trebuie tiut c pot aprea greeli la importul datelor
calendaristice din sisteme mai vechi (gen 32/01/2013), valorile invalide fiind convertite n text i se
vor crea celule goale n cazul folosirii celulelor cu date calendaristice incorecte n formule.
La crearea unui tabel pivot cu aceste erori, se va genera o linie care are data calendaristic goal,
plasat la nceputul listei rezultat.

Datele din care se creeaz POWERPIVOT nu pot fi editate n POWERPIVOT, cel mult se pot terge
coloane, dar nu se pot terge linii sau edita celule. Datele de modificat se editeaz n Excel i se
import fie cu PasteAppend fie cu PasteReplace, de la caz la caz.
Dac datele iniiale din care s-au creat tabelele pivot nu mai exist, se pot re-crea din datele existente
n POWERPIVOT apoi edita n Excel i reintroduse n POWERPIVOT cu PasteReplace astfel:
1. n fereastra POWERPIVOT.
2. Selectm iconia din stnga sus a ferestrei pentru a selecta ntregul tabel.

3. Folosim Copy .
4. Ne ntoarcem n Excel.
5. ntr-o zon goal dintr-o foaie facem Paste i editm datele.
6. Selectm tot tabelul cu Ctrl+*.
7. Ne ntoarcem n PowerPivot.
8. Folosim Paste Replace.
Mai exist o metod de a importa date din Excel: aceea de a denumi o parte dintr-o foaie. Avantajele
ar fi c acea zon poate rmne la dispoziia colegilor pentru editare i n plus, POWERPIVOT reine
link-ul ctre acea zon denumit. POWERPIVOT pstreaz o copie a datelor ca i n cazul metodei
copy+paste i un simplu refresh n POWERPIVOT rezolv problema actualizrii datelor din
POWERPIVOT.
Denumirea unui domeniu are unele avantaje printre care cel mai important este c este "elastic", adic
datele adugate sau terse ulterior definirii lui rmn n domeniul denumit.
Importul datelor se face din POWERPIVOT din tab-ul Home gruparea GetExtrernalData, unde exist
o list de surse din care se pot importa date. Din butonul FromOtherSources alegem Excel i din
fereastra de browse alegem fiierul necesar, bifnd c prima linie constituie cap de tabel.

10

Pentru a ne asigura c datele cu care lucrm sunt la zi, se folosete butonul de Refresh din gruparea
GetExtrernalData.

1.6 Crearea de legturi n PowerPivot


Un mare beneficiu al POWERPIVOT este faptul c poate crea legturi ntre dou sau mai multe
tabele, n aa fel nct tabelele s lucreze mpreun. Relaionarea e mai uoar dect VLOKUP, uneori
POWERPIVOT poate detecta coloanele dup care se face relaionarea, dar relaionarea nefiind
obligatoriu s fie fcut automat, se poate face i manual.

Cele trei tabele (puse n trei sheet-uri diferite) se pot relaiona astfel:
Ideal ar fi ca rep din coloana B sa fie relaionat cu rep din coloana E. Apoi sa unim judeele din
colona G cu judeele din coloana I.

rezultat ce este evident greit dar POWERPIVOT sugereaz c ar fi nevoie de o relaionare (care nc
nu a fost fcut).
11

Dup acceptarea crerii, rezultatul va fi urmtorul:

Putem afla ce relaii ai stabilit n POWERPIVOT, n fereastra de POWERPIVOT, n tab-ul Design, la


gruparea Relationships, butonul Manage Relationships se poate edita relaia creat anterior i se
observ c se refer la cmpurile rep din cele dou foi - Sheet1 i Sheet2.

Dac vrem s vedem i bonusurile, adugm i bonus din Sheet3 i din nou POWERPIVOT ne
solicit s acceptm crearea unei relaii:

De data aceasta POWERPIVOT nu mai tie s relaioneze corect cmpurile judet din cele dou tabele.
Pentru a trece peste limitrile relaionrii automate, se realizeaz relaionarea manual realizat din
cteva click-uri de mouse. n cazul n discuie relaionarea cmpurilor judet din cele dou tabele, se
realizeaz astfel:
n tabela din Sheet2, se selecteaz o celul din coloana judet apoi, n tab-ul Design, gruparea
Relationships, butonul CreateRelationship:

12

Dac dorim s calculm bonusul, vom aduga o coloan adiional n tabelul Sheet1 n care vom
aplica formula =[venituri] * Related (Sheet2[bonus]). Utilizm o funcie nou Related, care i va
spune POWERPIVOT cu ce cmp i din ce tabel se va face nmulirea.

Funcia Related e parte a DAX - Data Analysis Expressions este o propunere de limbaj de formule.

De menionat c ntre dou tabele nu poate exista dect o singur relaionare. Dac e nevoie de o
relaionare multipl, se import de mai multe ori aceai tabel, sub nume diferite i se relaioneaz cu
fiecare copie n parte. Nu exist relaionri many-to-many.
Redenumirea unei tabele din POWERPIVOT nu afecteaz relaionrile deja definite. Relaiile se
adapteaz redenumirilor dar cmpurile calculate NU se adapteaz redenumirilor (se vor redenumi
NAINTE de calcularea cmpurilor).
Relaionrile nu sunt CaseSensitive. Caracterele SPATIU de dup denumirea coloanelor nu sunt luate
n calcul.
Numerele stocate ca text nu se vor putea relaiona, coloana care le conine va fi importat ca text.

13

CAPITOLUL 2. LUCRUL CU TABELE N


POWERPIVOT
Tabelul din POWERPIVOT seamn mult cu cel din Excel dar nu poate:
- s editeze o singur celul
- s schimbe culoarea celulelor
- s adauge comentarii celulelor
- s printeze datele
Se pot formata prin schimbarea formatrii, similar cu cea din Excel, dar aici se modific i tipul
datelor, nu doar aspectul lor. Modificarea formatrii unei celule dintr-o coloan are efect asupra
ntregii coloane. n cazul n care pot aprea pierderi de date din cauza convertirii dintr-un format n alt
format apare un mesaj de atenionare.
DAX suporta 8 tipuri de date:
- Intreg pe 8 byte
- Real pe 8 byte
- Boolean YES / NO
- String (ir)
- Date calendaristic n reprezentare SQL Server
- CY currency
- Blank nlocuiete blank din Excel, NULL din SQL, irul vid. Cu toate c se poate formata o
celeul cu funcia BLANK, NU se poate formata o ntreaga coloan ca Blank.
Formatrile din fererastra POWERPIVOT nu se regsesc n PivotTable; tipul datelor definit n
POWERPIVOT afecteaz calculele: intreg + data = data, real + data = real, real * data = data.
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 funcioneaz ca n Excel; pentru mai multe coloane (ex: Data din
Produse din Regiuni) se ncepe sortarea de la Data, apoi Produse apoi Regiuni. Oricum, sortarea nu
se propag n POWERPIVOT.
Filtrarea: se face destul de greoi i oricum NU se propaga n POWERPIVOT, este doar pentru
vizualizarea datelor.
Totui, POWERPIVOT poate folosi la manipularea unei mari cantiti de date, care altfel nu poate fi
manipulat n Excel. Din 5.000.000 de linii prin filtrare se obin 1.000.000 i tot e un ctig:
- Se importa cele 5.000.000 de linii n POWERPIVOT
- Se filtrez
- Se selecteaz toate (butonul triunghiular stnga sus)
- Se copiaz cu butonul Copy
- Se lipesc (dup ntoarcere) n Excel.
Coloanele pot fi mutate prin drag&drop, li se poate modifica laimea i pot fi ngheate (dar se mut la
stnga).
Stergea unei coloane calculate este reversibil (UnDo) dar tergerea unei coloane cu date adevrate,
dupa confirmarea tergerii, nu mai este reversibil.

14

Click dreapta pe o celul are doar dou opiuni, Copy i Filter dar click drepta pe denumirea coloanei
are mult mai multe:

Coloanele calculate se obin cu DAX. Operatorii sunt unii similari cu Excel, alii diferii:
- +-/* operaiuni matematice
- & concatenare
- ^ exponent
- =, >, <, <>, >=, <=, comparaii
- && - AND ntre dou condiii
- || - OR ntre dou condiii
Adugarea de coloane calculate se face n fereastra tabelului. Similar cu Excel, introducerea unei
formule ncepe cu semnul = (egal). n continuare se poate scrie un operator sau se poate accesa fx, de
unde s alegem funciile DAX necesare. Funcia de autocompletare ajut la completarea cu numele
unei funcii sau al unei tabele.
Nu se poate naviga printre celulele unei tabele cu cursoarele sgei i nu se poate aduga semnul $ cu
tasta F4. Nu exist nume definite n Dax, deci nu se poate folosi nici F3.

15

CAPITOLUL 3. FUNCII N POWERPIVOT


Separarea parametrilor din cadrul funciilor DAX se face cu , sau ; aa cum a fost stabilit n setrile
sistemului de operare (Start, Control Panel, Region and Language, tab-ul Formats, Additional
Settings..., Customize Format, Number, List Separator care poate fi , sau ; .

3.1 Funcii de dat i timp


DATE(<year>, <month>, <day>)

ntoarce data specificat n format de dat (e bine


s se foloseasc 4 cifre la an, altfel 07 va fi
convertiti n 1907, nu n 2007).

DATEVALUE(date_text)

Convertete un text n data calendaristic (ex:


1/1/2008 sau 30-Dec-2011).

EDATE(<start_date>, <months>)

ntoarce data calculat prin adugarea sau


scderea (dac e negativ) unui numr de luni.

EOMONTH(<start_date>, <months>)

ntoarce data ultimei zile din luna, calculat prin


adugarea sau scderea unui numr de luni.

YEAR(<date>)

ntoarce un numr reprezentnd anul, dintr-o data


calendaristic.

MONTH(<datetime>)

ntoarce numrul lunii 1 (Ianuarie) la 12


(Decembrie).

DAY(<date>)

ntoarce ziua din dat ca numr ntre 1 i 31.

YEARFRAC(<start_date>, <end_date>,<basis>)

Calculeaz fraciuni dintr-un an reprezentate ca


numr de zile ntregi ntre cele dou date.

HOUR(<datetime>)

ntoarce numrul de ore 0 (12:00 a.m.) la 23


(11:00 p.m.).

MINUTE(<datetime>)

ntoarce numrul de minute ntre 0 la 59

SECOND(<time>)

ntoarce numrul de secunde ca numr ntre 0 i


59.

NOW()

ntoarce data i ora curent n format data i timp.


Dac se folosete la calcule de zile, rezultatul este
n zile i fraciuni de zile. Calculul de zile rezultat
din celule ce conin date calendaristice este tot o
dat calendaristic. Dac dorim s-l avem n
format numeric, va trebui ca rezultatul sa-l
nmulim cu un numr real 1.00 (care va converti
rezultatul la un numr real).

TODAY()

ntoarce data curent. Dac se folosete la calcule


de zile, rezultatul este n zile ntregi. Este de
preferat pentru ca Excel s nu foloseasc zile
fracionate.

TIME(hour, minute, second)

Convertete numere reprezentnd ore minute i


secunde n format timp.

TIMEVALUE(time_text)

Convertete un text n data n format dat.


16

WEEKDAY(<date>, <return_type>)

ntoarce un numr ntre 1 i 7 reprezentnd


numrul zilei din sptmn - implicit 1 este
duminic la 7 care este smbt.

WEEKNUM(<date>, <return_type>)

ntoarce numrul sptmnii din an, n


concordan cu conveniile de numrare a
sptmnilor.

Exemple
=DATE(2010,14,17) va ntoarce 17 februarie, 2011.
Dac luna e mai mic dect 1, se va ntoarce o dat din anul precedent:
=DATE(2010,0,31) ntoarce 31 decembrie, 2009.
=DATE(2010,-1,1) ntoarce 1 noiembrie, 2009.
Dac numrul de zile este mai mare dect numrul de zile din lun, DATE va ntoarce o dat din luna
(lunile) urmtoare.
=DATE(2011,1,33) ntoarce 2 februarie, 2011
Ziua 0 este tratat ca fiind ultima zi a lunii precedente; zile negative vor fi sczute din data ultimei zile
a lunii precedente.
Calcularea datei de 01.01. a anului urmtor anului de angajare se face cu
=DATE(YEAR(dataangajrii)+1,1,1)
Calcularea datei de 15 a lunii urmatoare anjrii se face cu
=DATE(YEAR(dataangajrii),MONTG(dataangajrii)+1,15)
Calcularea ultimei zile din luna precedent a unei date se face cu:
=DATE(YEAR(dataangajrii),MONTH(dataangajrii),0)
Pentru c POWERPIVOT nu ofer grupri de tip data calendaristic, deci vor fi folosite intens aceste
funcii de dat i timp.

Respectiv =YEAR(F1), =MONTH(F1), =DAY(F1), =HOUR(F1), =MINUTE(F1), =SECOND(F1)


sau se poate separa data pe zi i lun pentru mai mult claritate.

nc un ajutor n sortarea n slicer-e ar fi numerotarea lunilor, ex: 06 iun.

n calculul timpului se folosesc urmtoarele funcii:


Duration: =[Stop]-[Start]
Hour: =HOUR([Duration])
Minute: =MINUTE([Duration])
17

Second: =SECOND([Duration])
Decimal Hours: =([Start]-[Stop])*24

3.1.1 Calcularea zilei din sptmn


=WEEKDAY(<date>) va ntoarce 1 pentru duminic pn la 7 pentru sambt.
=WEEKDAY(<date>,2) va ntoarce 1 pentru luni pn la 7 pentru duminic.
= WEEKDAY(<date>,3) va ntoarce 0 pentru luni pn la 6 pentru duminic.

3.1.2 Numrarea sptmnilor


DAX i Excel numr prima sptmn ca fiind cea n care cade 1 ianuarie, indiferent n ce zi a
sptmnii cade 1 ianuarie.
=WEEKNUM(<date>, <return_type>)
return_type indic prima zi a sptmnii: 1 (sau omis) prima zi e duminic, 2 - prima zi e luni. n
plus, n Europa, prima sptmn e cea n care exist cel puin patru zile.

3.1.3 Calculul scadenelor


Se folosesc dou funcii: EOMONTH i EDATE.
=EDATE(<start_date>, <months>)
=EOMONTH(<start_date>, <months>)
=EOMONTH ntoarce ultima zi a lunii curente (dac argumentul e 0, de peste dou luni dac
argumentul e 2, din luna trecut dac argumentul e -1)

18

=EDATE ntoarce data calendaristic rezultat din adunarea (sau scderea) numrului de luni
specificat n parametru. Totui, 3 luni dup 31 ianuarie nu va fi 31 aprilie ci 30 aprilie, aprilie avnd
doar 30 de zile.

3.1.4 Calculul fracional al anilor


n departamentele de personal ale firmelor, deseori e nevoie de calcularea anilor i a fraciilor de ani.
Excel ofer funcia YEARFRAC care poate calcula fracii de ani reprezentnd numrul de zile ntregi
dintre dou date, n cinci moduri:
=YEARFRAC(<start_date>, <end_date>, <basis>)
Unde basis reprezint modul de calcul:
- Dac baza este 0 sau omis, Excel utilizeaz un plan de 30/360, modificat pentru utilizri
americane. n acest plan, salariatul ctig 1/360 de credite pe un an pe cele mai multe zile.
Angajatul nu ctig nici un beneficiu pe zi pentru orice data de 31 a lunii. ntr-un an bisect,
angajatul ctig 2/360 pe un an pentru a compensa pn la 1 martie. ntr-un an nebisect,
salariatul ctig 3/360 de pe un an pentru a compensa pn la 1 martie.
- n cazul n care baza este de 1, numrul efectiv de zile scurse se mparte la numrul real de
zile din an. Aceast metod funcioneaz bine i se asigur c fraciunea de an ncepe la prima
zi de dup data de aniversare, indiferent dac anul este un an bisect sau nu.
- n cazul n care baza este de 2, numrul efectiv de zile scurse se mparte la 360. Dac cineva
ar lucra de 30 de ani doar pentru un angajator, aceast metod ar da persoanei o suplimentare
0.4528 ani de credit.
- n cazul n care baza este de 3, numrul efectiv de zile scurse se mparte la 365. Acest merge
bine pentru trei din fiecare patru ani. Este uor greit n anii biseci.
- Dac baza este 4, Excel utilizeaz un plan de 30/360, modificate pentru utilizri europene.
Acest lucru este similar cu baza implicit 0. n acest plan, angajatul nu primete nici un credit
pentru nici o zi 31 a lunii. Angajatul primeste ins un credit triplu de lucru pentru 01 martie
(pentru a face compensa 29 i 30 februarie). ntr-un an bisect, 1 martie este n valoare de
numai dublu credit.

3.1.5 Folosirea funciei TIME pentru calculul timpului


=TIME(<hour>,<minute>,<second>)
TIME este similar cu DATE, returnnd o valoare datatimp din cei 3 parametrii astfel:
Hour ora, numr ntre 0 i 23; pentru numerele mai mari de 23 se mparte la 24 i se reine restul
mpririi
Minute - minute, numr ntre 0 i 59; pentru numerele mai mari de 59 se mparte la 60 i se reine
restul mpririi
Second - secunde, numr ntre 0 i 59; pentru numerele mai mari de 59 se mparte la 60 i se reine
restul mpririi

19

Ca i pentru date, DAX poate manipula valori mai mari dect 60 pentru minute sau secunde. De ex.:
=TIME(12,72,120) este evaluat la 1:14 PM.

Se observ ca cele 33 de ore din ultimele linii dau ca rezultat doar 9-10 ore i nu o zi i 9 ore.
=TIMEVALUE(time_text),
Conversie text n timp, similar cu DATEVALUE, time-text este un sir de caractere ce reprezint
timpul, n orice format acceptat de Excel. 6:45 PM este acelai lucru cu 18:45. Informaia despre data
este ignorata. 45:30 n Excel nseamn 45 de ore i 30 de minute, n DAX rezult o eroare.

3.2 Funcii matematice i trigonometrice


DAX ofer 22 de funcii matematice i trigonometrice identice cu cele din Excel.
FACT(<number>)

Factorial dintr-un numr (1*2*3*...*, pn la numr).

ABS(<number>)

ntoarce valoare absolut a unui numr.

INT(<number>)

Rotunjete n jos un numr la prima valoare intreag sau pn


la prima valoare semnificativ.

LN(<number>)

ntoarce logaritmul
2.71828182845904

LOG(<number>,<base>)

ntoarce logaritmul unui numr n baza specificat.

LOG10(<number>)

ntoarce logaritmul unui numr n baza 10.

EXP(<number>)

Ridicarea lui e la o putere data de numar. E =


2.71828182845904, baza logaritmilor naturali.

PI()

ntoarce valoare lui Pi 3.14159265358979 cu 15 zecimale.

QUOTIENT(<numerator>,
<denominator>)

ntoarce partea ntreaga dintr-o mprire.

MOD(<number>, <divisor>)

ntoarce restul mpririi numrului la divizor. Rezultatul are


acelai semn cu divizorul. Exprimarea matematic este:
<number> modulo <divisor>.

ROUND(<number>, <num_digits>)

Rotunjete un numr cu un numr specificat de zecimale.

natural

al

unui

numr,

20

ROUNDDOWN(<number>,
<num_digits>)

Rotunjete n jos un numr cu un numr specificat de


zecimale.

ROUNDUP(<number>,
<num_digits>)

Rotunjete n sus un numr cu un numr specificat de


zecimale.
Pn la 0.49 se rotunjete n jos, de la 0,5 inclusiv se
rotunjete n sus. Dac numrul de zecimale este 0 se
rotunjete la ntreg.
Dac numrul de zecimale e pozitiv, se refer la zecimale
Dac numrul de zecimale e negativ, se refer la cifre din
stnga virgulei

CEILING(<number>,
<significance>)

Rotunjete n sus un numr la prima valoare ntreag sau


multiplu.

FLOOR(number,significance)

Rotunjete n jos un numr la prima valoare ntreag sau


multiplu (funcioneaz similar cu CEILING dar n sus).
Funcioneaz corect i pentru numere negative.

MROUND(number,multiple)

Rotunjete la cel mai apropiat multiplu.

SIGN(<number>)

ntoarce semnul unui numr, al rezultatului unui calcul sau a


unei valori dintr-o coloan. Dac rezultatul este 1=pozitiv.
0=zero, -1=negativ.

SQRT(<number>)

Extrage radicalul dintr-un numr.

POWER(<number>, <power>)

Ridicarea unui numr la o putere.

TRUNC(<number>,<num_digits>)

Trunchiaz un numr la un ntreg eliminnd un numr de


zecimalele.

RAND()

ntoarce un numr aleator ntre 0 i 1. Numrul se schimb la


fiecare recalculare a celulei.

RANDBETWEEN(<bottom>,<top>) ntoarce un numr aleator ntre cele dou valori.


Exemple:
=INT(2.2) = 2; INT(-2.2) = 3.
=ROUND(117,-1) = 120
=ROUND(1234567,-3) d 1,235,000
=CEILING(2.1,1) produce 3.
=CEILING(6.1,2) rotunjete 6.1 la urmtorul multiplu de 2, sau 8; Exist o problem cu numerele
negative: =CEILING(-2.1,-1), rezultatul este -3. Standardul ISO spune c CEILING trebuie s dea
numrul mai mare. Numrul mai mare dect -2.1 este -2, nu -3.
=MROUND(12.1,5) ntoarce 10.
=TRUNC(2.2) = 2; =TRUNC(-2.2) = -2

21

3.3 Funii de text


DAX are 18 funcii de text, 17 dintre ele fiind identice cu cele din Excel. Funcia Excel TEXT() a fost
redenumit n FORMAT().
CONCATENATE(<text1>,
<text2>,...)

FIXED(<number>,
<no_commas>)

Lipete dou sau mai multe texte intr-unul singu. Se pot


concatena texte, numere sau valori booleene reprezentate ca
text sau o combinaie a lor. Poate fi folosit i operatorul &
pentru concatenarea irurilor.
=[FirstName]& &[LastName]

<decimals>, Rotunjete un numr la numr de zecimale specificat i ntoarce


un text. Se poate specifica dac s aib sau nu virgula.
Diferena dintre formatarea unui cmp i funcia FIXED este c
funcia ntoarce ca rezultat un text.

VALUE(<text>)

Convertete un text care arat ca un numr, ntr-un numr.

FORMAT(<value>,
<format_string>)

Convertete o valoare la un text n concordan cu un format


specificat.

LEN(<text>)

ntoarce lungimea unui ir (numrul de caractere).

LOWER(<text>)

Convertete toate literele unui text la litere mici.

UPPER(<text>)

Convertete toate literele unui text la litere mari.

REPT(<text>, <num_times>)

Repet un text de un numr de ori.

LEFT(<text>, <num_chars>)

ntoarce primele N caractere dintr-un text.

RIGHT(<text>, <num_chars>)

ntoarce ultimele N dintr-un text.

MID(<text>,
<num_chars>)

<start_num>, ntoarce un subir dintr-un ir, ncepnd de la o poziie de start,


de a anume lungime.

FIND(<find_text>, <within_text>, ntoarce un numr ce reprezint poziia n care este gsit un


text n interiorul altui text, pornind cutarea de la o anumit
<start_num>)
poziie. FIND este case sensitive. Rezultatul poate fi folosit n
alte funcii: LEFT, RIGHT, MID, REPLACE. Dac textul nu
este gsit, se ntoarce o eroare. Pentru o funcionare fr erori:
=NOT(ISERROR(FIND(text,[Denumire])))
SEARCH(<search_text>,
<within_text>, [start_num])

ntoarce numrul care reprezint poziia la care este gsit un


text mai mic ntr-un n alt text mai mare, cutnd de la stnga
spre dreapta. SEARCH este case sensitive. Rezultatul poate fi
folosit n alte funcii: LEFT, RIGHT, MID, REPLACE. Daca
textul nu este gsit, se ntoarce o eroare.

REPLACE(<old_text>,
<start_num>, <num_chars>,
<new_text>)

nlocuiete o parte a unui text cu un alt text, ncepnd de la o


anume locaie, un anumit numr de caractere.

SUBSTITUTE(<text>,
<old_text>, <new_text>,
<instance_num>)

nlocuiete ntr-un text, pri din acel text cu alt text, de un


numr specificat de ori. Dac nu se specific, se nlocuiesc toate
instanele ntlnite. Funioneaz ca i Find And Replace.

EXACT(<text1>,<text2>)

Compar dou iruri i ntoarce TRUE dac sunt exact la fel,


FALSE n mod contrar. EXACT este case sensitive dar ignor
formatrile diferite. Poate fi folosit pentru testarea unui text
introdus ntr-un document.

22

TRIM(<text>)

Elimin toate caracterele spaiu exceptnd cte un singur spaiu


ntre cuvinte (le elimin pe cele de la extremitile irului).

Exemple:
=Format([Date],MMM ) convertete n Jan, Feb...
=Format([Date],YYYY) convertete o dat n 2010, 2011....
=Format([Date],DDD) convertete o dat n Mon, Tue, Wed....
=Format([Date],YYMM) arat data cu dou cifre la an i lun
Yes/No convertete True/False la Yes/No.
On/Off convertete True/False la Yes/No.

=SUBSTITUTE(Sales Data,Sales,Cost) va genera Cost Data

3.4 Funcii logice


IF(<logical_test>,<value_if_true>,
<value_if_false>)

Verific condiia returna de primul argument i dac e TRUE


ntoarce <value_if_true> altfel ntoarce <value_if_false>

IFERROR(<value>,
<value_if_error>)

ntoarce <value_if_error> dac prima expresie este eronat sau


expresia n sine n cellalt caz.
IF(ISERROR([A]/ [B]),0, [A]/ [B]) pentru cazul n care B este
0.

AND(<logical1>,<logical2>,...)

ntoarce TRUE dac TOATE argumentele sunt TRUE, altfel


ntoarce FALSE

OR(<logical1>,<logical2>,...)

ntoarce TRUE dac cel puin unul dintre argumente este TRUE
i FALS n celelalte cazuri.

NOT(<logical>)

Negare; schimb FALSE n TRUE, sau TRUE n FALSE.

TRUE()

ntoarce valoarea logic TRUE.

FALSE()

ntoarce valoarea logic FALSE.

BLANK()

ntoarce blank.

Exemplu: Calculul uni bonus de 2% dac vnzrile depesc 20000:


=IF([Vanzari]>=20000,0.02*[Vanzari],0)
Se pot imbrica:
=IF([Vanzari]>=20000,0.02*[Vanzari], IF([Vanzari]>=10000,0.01*[Vanzari],0))
Funcia AND se folosete pentru testarea condiiilor multiple.
=AND([Vanzari]>=20000, [Pierderi] <=1000)
Funcia OR se folosete pentru testarea a cel puin unei condiii.
=OR(<[Vanzari]>=20000>,<[Persoane]>=200)
23

3.5 Funcii informative


ISBLANK(<value>)

ntoarce TRUE dac o valoare este blank, altfel ntoarce FALSE.

ISERROR(<value>)

ntoarce TRUE dac o valoare este eronat, altfel ntoarce FALSE.

ISLOGICAL(<value>)

Verific dac o valoare este de tip logic (TRUE or FALSE), i ntoarce


TRUE sau FALSE.

ISNONTEXT(<value>)

ntoarce TRUE dac o valoare nu este text (blank nu este text), altfel
ntoarce FALSE.

ISNUMBER(<value>)

ntoarce TRUE dac o valoare este numr, altfel ntoarce FALSE.

ISTEXT(<value>)

ntoarce TRUE dac o valoare este text, altfel ntoarce FALSE.

3.6 Funcii de centralizare a datelor corelate din alte tabele


Toate funciile precedente funcioneaz pe date din acelai tabel; totui e posibil ca DAX s calculeze
cu date preluate din tabele diferite, dar respectivele tabele obligatoriu trebuie s fie relaionate.
AVERAGEX(<table>, <expression>)

Calculeaz media (media aritmetic) a unui set de expresii


evaluate pe o tabel

CALCULATETABLE( <expression>,
<filter1>, <filter2>,...)

Evaluarea unei tabele n contextul unor filtre.

SUMX(<table>, <expression>)

ntoarce un numr zecimal reprezentnd suma numerelor


din tabel, din coloana specificat.

COUNTAX(<table>, <expression>)

Contorizeaz celule nonblank rezultate din evaluarea


rezultat dintr-o expresie pe o tabel.

COUNTX(<table>, <expression>)

Contorizeaz celule numerice nonblank rezultate din


evaluarea rezultat dintr-o expresie pe o tabel.

MAXX(<table>, <expression>)

Evalueaz o expresie pentru fiecare linie a unei tabele i


ntoarce rezultatul cel mai mare.

MINX(<table>, < expression>)

Evalueaz o expresie pentru fiecare linie a unei tabele i


ntoarce rezultatul cel mai mic.

RELATED(<column>)

ntoarce o valoarea dintr-o tabel relaionat.

RELATEDTABLE(<table>)

Urmrind o relaie existent, n orice direcie, ntoarce o


tabel care conine toate liniile care se potrivesc din tabela
relaionat.

3.7 Funcii recursive


EARLIER(<column>, <number>)

ntoarce evaluarea pentru o coloana pentru a fi folosit ca


intrare ntr-un calcul, de un numr de ori.
24

Este util pentru calcule imbricate n cazul n care dorii s


utilizai o anumit valoare la un calcul, n intrare i care s
produc rezultate pe aceast intrare.
EARLIEST(<table_or_column>)

ntoarce valoarea curent a coloanei specificate pentru a fi


folosit ca intrare pentru aceeai coloan.

Exemplu de folosire a unei funcii recursive:


=CountRows(Filter(Sheet12;Earlier([VANZARI])<[VANZARI] && Earlier([TIP])=[TIP]))+1
(1 este adugat la urm pentru a preveni apariia poziiei 0)

25

CAPITOLUL 4. CONSTRUIREA TABELELOR PIVOT


Dup ce am ncrcat tabele i am fcut calculele necesare pe coloane, putem trece la crearea tabelelor
pivot.Un tabel pivot are 4 zone:
zona cu etichetele liniilor n partea stng jos de obicei texte (lungi)
zona cu etichetele coloanelor n partea de sus - de obicei texte (scurte)
zona de date (valori) celule la intersecia liniilor cu colonele de obicei numere, dar pot fi i
texte, (pentru numrarea apariiilor)
zona de filtre deasupra etichetelor coloanelor
Construirea tabelelor pivot se face prin tragerea denumirilor cmpurilor n cele patru zone de sub lista
de cmpuri. Ordinea n care apar n lista de linii determin ordinea de apariie a lor n partea stng a
raportului.
Tabelele pivot OLAP (OnLine Analytical Processing) sunt folosite pentru totalizarea fiierelor cub. n
limbajul fiierelor cub, textul denumirilor etichetelor sunt dimensiuni, iar cmpurile numerice sunt
msuri. Tabelele pivot OLAP conin patru zone de "drag&drop" ca i tabelele pivot obinuite dar cu
cteva limitri. n zona de Valori se pot pune msuri i n celelalte zone dimensiuni. Din fericire,
POWERPIVOT este fcut s arate ca un tabel pivot obinuit, adic se pot pune msuri la dimensiuni
i viceversa. n plus, au fost adugate dou noi zone: Slicere Orizontale i Verticale, o mbuntire
fa de Excel 2010. Totui, nu se pot rearanja zonele. Tabelele pivot obinuite aveau un drop-down la
meninerea mouse-ului pe un cmp din lista (hover) ceea ce nu se mai regsete la POWERPIVOT.
Tabelele pivot obinuite aveau un hover pe cmpurile din zone, POWERPIVOT are acelasi hover dar
mbuntit: mutare n slicere i Summarize By i Edit Measure. n plus avei acces la instrumente n
cele doua tab-uri ale PivotTable care ofer multe setri pentru formatarea tabelelor pivot.
ncepem construirea unui tabel pivot care s lege (relaioneze) ntre ele dou tabele. Unul cu date
despre ID Produs, Cod SF, Mall, Magazin, Anul, Orasul, Zona (InfoMagazine.xlsx, 145 linii). Cellalt
cu rapoarte despre ID Produs, Data, Produs, Unitati, Venit (Rapoarte.csv, 999999 linii).
n POWERPIVOT (apelat din Excel) ncrcm cele dou tabele, mai nti cel de tip text, apoi cel de
tip .xlsx.

La tabela de mai sus, am adugat trei cmpuri calculate: anul, luna, ziua sptmnii.

n tab-ul Design relaionm cmpul ID Produs din tabela Rapoarte cu cmpul ID Produs din tabela
InfoMagazine. Verificarea relaiei se poate face din tab-ul Home, gruparea View, butonul Diagram
View.

26

Revenirea n vizualizare normal se face cu butonul DataView.


Crearea propriu-zis a tabelului pivot se poate face din dou locuri, cu acelai rezultate: din Excel,
butonul PivotTable sau din POWERPIVOT butonul Pivot Table, care are mai multe opiuni:

Alegem locaia unde dorim crearea tabelei pivot de obicei ntr-o foaie noup. Dup confirmare cu OK,
obinem noul tabel pivot.
n partea dreapt va aprea lista cu cmpurile POWERPIVOT, cmpurile din tabela printe fiind deja
afiate. Cmpurile celeilalte tabele apar i ele dar precedate de un semn +, care le poate expanda,
pentru acces.
Implicit, cmpurile de tip text (dac se bifeaz) vor aprea n zona etichetelor de linii, iar cele de tip
numeric n zona de Valori.
Orice bif aplicat unui cmp, l va muta automat conform tipului su, cmpurile numerice fiind
implicit nsumate.
n exemplul nostru cu cteva click-uri putem s avem un raport despre venituri defalcat pe Zona i
Magazin.

Aspectul se poate mbunti mult dac mutm Magazinul n zona Column Labels.

27

Utilizarea Filtrelor: prin adugarea unui cmp n fereastra de Report Filter, avem posibilitatea s
filtrm toate datele deja afiate dup diverse criterii (ex: datele defalcate pe Oras)

Se poate ntmpla ca unele celule s fie 0, altele vor fi afiate ca blank. Cele blank indic faptul c
acolo nu au fost niciodat date, cele cu 0 indic faptul c acolo au fost date dar ulterior au ajuns s fie
0. n funcie de cum dorim s apar aceste date, putem seta cum s apar celulele goale:

Dac datele de pe linii sunt formate din mai multe cmpuri, ele pot afiate sau nu (restrnse sau
expandate) din butoanele de + i din stnga denumirii cmpurilor.

De asemenea, aspectul poate fi ajustat din tab-ul Design al PivotTable Tools, gruparea Layout.

4.1 Filtre i slicer-e


Dac avem nevoie de mai mult dect de un singur filtru, atunci va trebui s apelm la slicer-e care
sunt n esen tot filtre dar cu care se lucreaz mult mai comod.
Pentru aceasta e suficient sa bifm un cmp pe care apoi s-l tragem n zona de slicer dorit: vertical
sau orizontal, respectiv gruparea datelor din slicer s fie pe orizontal sau vertical.

28

4.2 Calculation Fields, Items & Sets n Pivot Table


n cazul lucrului cu tabele pivot care au mai multe nivele de detaliere la cmpurile care compun liniile
(sau coloanele), se poate s nu fie nevoie s fie afiate toate liniile (sau coloanele) care compun
tabelul pivot. Daca avem 16 Orase, 4 Zone, 8 Malluri si 144 de Magazine, e posibil s fie pn la
16*4*8*144 de linii n tabelul pivot, (dac le expandm pe toate cele 4 nivle) ceea ce e foarte mult.
Pentru a putea reduce numrul acestora, se apeleaz la Fields, Items & Sets, din gruparea Calculation
a tab-ului Option de la PivotTable Tool, opiunea Create Set Baset on Row Items...

n fereastra care apare New Set (PowerPivot Data), din mulimea de linii care compun tabelul pivot
putem selecta doar cele ce ne intereseaz s apar la o ulterioar vizualizare a sa, setarea pstrndu-se
cu un nume implicit (sau mai bine explicit) i care va apare in lista de cmpuri. Selecia liniilor se face
cu cele trei butoane Add Row, Delete Row, Copy Row i pot fi reordonate cu cele dou butoane de
mutare n sus sau n jos. Dup confirmarea cu OK, noul set va apare n lista de cmpuri i poate fi
folosit.

4.3 Reguli importante referitoare la Pivot Tables


Dei majoritatea foilor de lucru excel recalculeaz datele la modificarea unei celule, tabelele pivot nu
fac aceasta. Soluia se afl n butonul de Refresh All.
In POWERPIVOT trebuie urmai civa pai suplimentari:
- dac tabela pivot este creat din tabele legate, se poate folosi butonul Update All.
- dac tabela pivot este creat din date copiate i lipite n POWERPIVOT, datele trebuiesc
copiate i lipite din nou.
- dac tabela pivot este creat din alte surse externe, atunci n POWERPIVOT trebuie folosit
Refresh drop-down.

29

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 cmpuri sau butonul de Refresh
All. La adugarea unui cmp calculat trebuie fcut Refresh din butonul corespunztor care apare
deasupra listei de cmpuri.

4.4 Convertirea tabelei pivot n valori


Cteodat e necesar s calculm i altceva dect ne ofer o tabela pivot i asta se poate face scond n
afar datele. Se ncepe prin a selecta ntregul tabel pivot (cu tot cu filtre) dar fr slicer-e i copierea
lui cu butonul Copy din tab-ul Home. Se alege foaia unde dorim s facem copierea i se lipete cu
opiunea Paste Value.

4.5 Convertirea unui tabel pivot n format cub


n mod normal, tabelele OLAP pivot citesc un tip special de baze de date numit un cub, de obicei
creat de un administrator de baze de date. POWERPIVOT ne ajut s ne descurcm fr administrator
de date crend el fiierul cub.
Se selecteaz o celul din cadrul tabelului pivot; din tab-ul Options, gruparea Tools, din butonul
OLAP Tools alegem Convert to Formulas.

Dup cteva secunde de calcule, valorile vor apare din nou, de data aceasta, fiecare celul avnd
ataat o formul. Dup aceast manevr se pot aduga linii sau coloane n tabelul pivot.

4.6 Lucrul cu Pivot Charts


Lucrul cu Pivot Charts este oarecum similar cu Pivot table, cu deosebirile urmtoare:
- Zona Row Labels este acum numit Axis Fiels (sau Categories)
- Zona Column Labels este acum numit Legend Fields (sau Series)

30

Se poate observa c filtrele se pstreaz i sunt funcionale; orice alt cmp care va fi bifat, va deveni
un filtru cu care se pot face selecii de date de afiat.

Aa ca i la graficele pe care le tim din Excel, aspectul se poate schimba din tab-ul Design, gruparea
Type, butonul Change Chart Type. n plus, din tab-ul Analyze, gruparea Show/Hide, butonul Fields
Buttons putem afia sau nu diverse butoane din grafic. Toate graficele din POWERPIVOT au n spate
un tabel pivot.

4.7 Opiuni suplimentare


a) Sortare dup valoare i nu alfabetic
Cu un click dreapta pe cmpul care se doreste a fi sortat descresctor dup valoare se alege Sort
More Sort Option... apoi se stabilete ce anume s se sorteze:

b) Sortarea lunilor n secven natural


Tabelele pivot din Excel ordoneaz n mod implicit dup listele personalizate; POWERPIVOT nu
face asta implicit dar poate fi convins prin opiunile se sortare:

n plus, listele personalizate pot fi lrgite prin adugarea unora noi: n Excel, tab-ul File, Options,
Advanced, Edit Custom List. Listele pot fi ierarhii de calificri, funcii ntr-o firm, zone geografice,
etc.

31

c) Afiarea primelor n poziii


Cu click dreapta pe una din celulele din zona RowLabels, alegem Filter i de acolo Top 10... i de
acolo alegem ce ne ajut la afiarea primelor n poziii:

d) Schimbarea calculelor
n mod implicit, POWERPIVOT mut cmpurile numerice n zona de vlori: dac mutm cmpuri de
tip text n zona de valori, coninutul lor va fi contorizat (numrat). Exist dou tipuri de contorizri:
COUNTA i DISTINCTCOUNT. n timp ce prima contorizeaz TOATE liniile care satisfac filtrul,
cea de-a doua contorizeaz doar apariiile corelate cu alte criterii.

Dac nsumarea implicit nu ne satisface, putem s o schimbm n alte trei calcule: MIN, MAX,
AVERAGE, fie cu click dreapta i alegem Summarize By fie click pe numele cmpului i alegem Edit
Measure...
e) Schimbarea felului n care se vd datele
Cu click dreapta pe una din celulele tabelului pivot putem sa schimbm felul n care se vad datele
raportate la alte calcule (ca % din total pe lini/coloana/general, etc.) aa cum le tim din tabele pivot
din Excel. (n exemplu, ca procente din totalul general). E posibil s avem nevoie de calcul valorilor
fa de alte valori din aceai grup sau s tim rangul unei valori. Aceasta se poate face cu ajutorul
Base Fields i Base Item.
% 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.
Deasemenea, selectnd celulele de date se pot formata condiionat (tab-ul Home, gruparea Style,
Conditional Formating) aa ca n exemplu sau se pot crea mici grafice de tip SparkLine n celula din
dreapta unui serii de celule (tab-ul Insert, click pe celula din dreapta seriei, i din gruparea SparkLine
una dintre opiuni)

32

33

CAPITOLUL 5. PERSPECTIVE I MSURI


5.1 Perspective
Unul dintre avantajele utilizrii programului de completare PowerPivot pentru a rafina un model de
date este capacitatea de a aduga perspective. Perspectivele ofer vizualizri particularizate pe care le
definii pentru un anumit grup de utilizatori sau pentru un anumit scenariu de afaceri, facilitnd
navigarea n seturi mari de date i/sau regsirea uoar a unor seturi restrnse de colecii de tabele i
coloane.
Putei include (i aa va fi pstrat) orice combinaie de tabele, coloane i msuri (inclusiv indicatori
KPI) ntr-o perspectiv i putei crea mai multe perspective pentru diveri clieni de raportare din
organizaia dvs.
Perspectivele pot fi utilizate ca surs de date pentru rapoartele PivotTable i alte rapoarte, inclusiv
rapoarte Power View (Office 2013). Cnd v conectai la un fiier de lucru ce include perspective,
putei alege o anumit perspectiv n pagina selectare tabele i vizualizri din expertul de conectare a
datelor.
Pentru a putea fi create, POWERPIVOT trebuie s fie trecut n modul Advanced; n tab-ul Advanced,
primul buton este Perspectives, de unde putem gestiona (pentru nceput crea) perspectivele. Implicit ni
se ofer toate tabelele relaionate de care are cunotin POWERPIVOT la momentul respectiv (n
cazul nostru Rapoarte i InfoMagazine). Bifm cmpurile necesare, dm un nume sugestiv
perspectivei i confirmm cu OK.

Dup creare, perspectivele pot fi gsite i accesate din fereastra de table pivot, n partea de sus.

5.2 Msuri
Valorile calculate sunt numite msuri. Ele pot fi de tip implicit i explicit. Cele de tip implicit sunt
create automat de sistem la glisarea unui cmp numeric din lista de cmpuri, n zona de valori a unui
tabel pivot. Deoarece cmpurile calculate implicite sunt generate de Excel, este posibil s nu tii c a
fost creat un nou cmp calculat. Dar dac examinai mai atent lista Valori, vei vedea c acest
cmp (n cazul nostru Venit) este de fapt un cmp calculat denumit Sum of Venit.
Pornim de la un tabel pivot n care avem doar dou cmpuri, Mall (pe linii) i Produs (pe coloane)
(obinut din POWERPIVOT dar pentru exemplificare am debifat cmpul Venit) i tabelul n
POWERPIVOT fr nici o celul calculat:

Bifm n lista de cmpuri din tabelul pivot pe cmpul Venit i vom avea n lista Valori suma
cmpului Venit; n acelai timp, n tabelul din POWERPIVOT se va crea automat un cmp calculat
implicit, cu suma pe Venit:

34

Crearea unui cmp calculat explicit, care va fi i o msur, se face astfel:

Diferena dintre cele dou cmpuri, cel calculat implicit i cel calculat explicit, chiar dac folosesc
aceeai funcie i au acelai rezultat, este aceea c, cmpul calculat explicit poate fi folosit la crearea
de KPI

Cmpurile calculate explicite pot fi utilizate de orice raport PivotTable sau PivotChart din registrul de
lucru i de rapoartele Power View. Dup ce utilizai un cmp calculat ca indicator KPI, nu putei s l
utilizai pentru alte calcule; trebuie s creai o copie dac dorii s utilizai formula i n calcule.

5.2.1 Funcii utile n calculul msurilor


ALLEXCEPT(<table>,column1>,<column2>,..)

ALLNONBLANKROW(<table_or_column>)

Anuleaz toate filtrele contextuale din tabel, cu


excepia filtrelor care au fost aplicate la coloanele
specificate.
Returneaz toate rndurile, cu excepia rndurilor
necompletate, ntr-un tabel sau o coloan, i
ignor orice filtre de context care ar putea exista.

COUNTBLANK(<column>)

Contorizeaz numrul celulelor goale dintr-o


coloan.

COUNTROWS(<table>)

Contorizeaz numrul de rnduri n tabela


specificat, sau ntr-un tabel definit de o expresie

FILTER(<table>,<filter>)

Returneaz un tabel care reprezint un subset din


alt tabel sau expresie.

FIRSTNONBLANK(<column>,<expression>)

Returneaz valorile care nu sunt goale pentru


prima dat n coloan, filtrate de expresie.

VALUES(<column>)

Returneaz o tabel de o coloan care conine


valori distincte din coloana specificat. Aceast
funcie este similar cu funcia Distinct, dar
funcia Values poate ntoarce de asemenea i un
membru necunoscut.
35

5.2.2 Time Intelligence Functions


Sunt funcii complexe de calcul al timpului. n contextul curent nseamn dup aplicarea tuturor
filtrelor.
CLOSINGBALANCEMONTH(<expression>,<
dates>,<filter>)

Evalueaz parametrul expression n ultima dat a


lunii n contextul curent.

CLOSINGBALANCEQUARTER(<expression
>,<dates>,<filter>)

Evalueaz parametrul expression la ultima dat a


semestrului n contextul curent.

CLOSINGBALANCEYEAR(<expression>,<da
tes>,<filter>)

Evalueaz parametrul expression la ultima dat a


anului n contextul curent

DATEADD(<date_column>,<number_of_interv
als>,<interval>)

Returneaz un tabel ce conine o coloan de date


calendaristice, deplasate nainte sau napoi n
timp n funcie de numrul specificat de intervale
de la datele calendaristice din contextul curent.

DATESBETWEEN(<column>,<start_date>,<en
d_date>

Returneaz un tabel ce conine o coloan de date


calendaristice care ncepe cu start_date i
continu pn la end_date.

DATESINPERIOD(<date_column>,<start_date
>,<number_of_intervals>,<intervals>)

Returneaz un tabel ce conine o coloan de date


calendaristice care ncepe cu start_date i
continu
pentru
numrul
specificat
de number_of_intervals.

DATESMTD(<date_column>)

Returneaz un tabel ce conine o coloan cu


datele lunii curente, n contextul current.

DATESQTD (<date_column>)

Returneaz un tabel ce conine o coloan cu


datele trimestrului curent, n contextul curent

DATESYTD (<date_column> [,<YE_date>])

Returneaz un tabel ce conine o coloan cu


datele anului curent, n contextul curent.

ENDOFMONTH(<date_column>)

Returneaz ultima dat a lunii n contextul curent,


pentru coloana specificat de date calendaristice

ENDOFQUARTER(<date_column>)

Returneaz ultima dat a trimestrului n contextul


curent pentru coloana specificat de date
calendaristice.

ENDOFYEAR(<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.

FIRSTNONBLANK
(<date_column><Expression>)

Returneaz
prima
valoare
din
coloana column filtrat n funcie de contextul
curent, pentru care expresia nu este necompletat.

LASTDATE (<date_column>)

Returneaz ultima dat n contextul curent pentru


coloana specificat de date calendaristice.

LASTNONBLANK
(<date_column>,<expression>)

Returneaz
ultima
valoare
din
coloana column filtrat de contextul curent,
pentru care expresia nu este necompletat.

36

NEXTDAY(<date_column>)

Returneaz un tabel ce conine o coloan cu toate


datele din ziua urmtoare, n funcie de prima
dat specificat n coloana dates, n contextul
curent.

NEXTMONTH(<date_column>)

Returneaz un tabel ce conine o coloan cu toate


datele din luna urmtoare, n funcie de prima
dat din coloana dates, n contextul curent.

NEXTQUARTER (<date_column>)

Returneaz un tabel ce conine o coloan cu toate


datele din trimestrul urmtor, n funcie de prima
dat specificat n coloana dates, n contextul
curent.

NEXTYEAR(<date_column>[,<YE_date>])

Returneaz un tabel ce conine o coloan cu toate


datele din anul urmtor, n funcie de prima dat
din coloana dates, n contextul curent.

OPENINGBALANCEMONTH(<expression>,< Evalueaz parametrul expression n prima dat a


dates>,<filter>)
lunii n contextul curent.
OPENINGBALANCEQUARTER(<expression
>,<dates>,<filter>)

Evalueaz parametrul expression la prima dat a


trimestrului, n contextul curent.

OPENINGBALANCEYEAR(<expression>,<da
tes>,<filter>)

Evalueaz parametrul expression n prima dat a


anului n contextul curent.

PARALLELPERIOD(<date_column>,<number
_of_intervals>,<intervals>)

Returneaz un tabel ce conine o coloan de date


calendaristice care reprezint o perioad paralel
cu datele calendaristice din coloana dates
specificat, n contextul curent, cu datele
calendaristice deplasate n timp cu un numr de
intervale fie nainte, fie napoi.

PREVIOUSDAY(<date_column>)

Returneaz un tabel ce conine o coloan cu toate


datele reprezentnd ziua anterioar primei date
din coloana dates, n contextul curent.

PREVIOUSMONTH(<date_column>)

Returneaz un tabel ce conine o coloan cu toate


datele din luna anterioar pe baza primei date din
coloana dates, n contextul curent.

PREVIOUSQUARTER(<date_column>)

Returneaz un tabel ce conine o coloan cu toate


datele din trimestrul anterior pe baza primei date
din coloana dates, n contextul curent.

PREVIOUSYEAR(<date_column>[,<YE_Date
>])

Returneaz un tabel ce conine o coloan cu toate


datele din anul anterior, innd cont de ultima
dat n coloana dates, n contextul curent.

SAMEPERIODLASTYEAR(<date column>)

Returneaz un tabel ce conine o coloan de date


calendaristice deplasate cu un an n urm fa de
datele din coloana dates specificat n contextul
curent.

STARTOFMONTH (<date_column>)

Returneaz prima dat a lunii n contextul curent,


pentru coloana specificat de date calendaristice.

STARTOFQUARTER (<date_column>)

Returneaz o prim dat a trimestrului n


contextul curent, pentru coloana specificat de
date calendaristice.
37

STARTOFYEAR
(<date_column>[,<YE_date>])

Returneaz prima dat a anului n contextul


curent, pentru coloana specificat de date
calendaristice.

TOTALMTD(<expression>,<dates>,<filter>)

Evalueaz valoarea parametrului expression


pentru ultima lun, n contextul current.

TOTALQTD(<expression>,<dates>,<filter>)

Evalueaz valoarea parametrului expression


pentru datele din ultimul trimestru, n contextul
curent

TOTALYTD(<expression>,<dates>,<filter>)

Evalueaz valoarea ultimului an a parametrului


expression n contextul current.

38

CAPITOLUL 6. FINE TUNING


6.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 msurtori comparativ cu o int
definit. Este o ilustrare grafic a unor raporturi ntre diferite date, unele fiind de referin. KPI
msoar performana valorii, definit de un cmp calculat Baz, comparativ cu o valoare int,
definit, de asemenea, de un cmp calculat sau de o valoare absolut. n terminologia de afaceri, un
KPI este unitatea de msur cuantificabil pentru msurarea obiectivelor de afaceri. De exemplu,
departamentul de vnzri dintr-o organizaie poate s utilizeze un KPI pentru a msura profitul brut
lunar comparativ cu profitul brut previzionat. Departamentul de contabilitate poate msura cheltuielile
lunare comparativ cu veniturile pentru a evalua costurile, iar departamentul de resurse umane poate
msura indicele de rotaie trimestrial a personalului. Toate acestea sunt exemple de KPI. Specialitii
utilizeaz frecvent KPI-uri grupate mpreun ntr-un raport de tip scorecard de afaceri pentru a obine
un rezumat istoric rapid i corect al succesului unei afaceri sau pentru a identifica tendine.
Un KPI include:
Valoarea de baz - definit de un cmp calculat din care reiese o valoare. Aceast valoare, de
exemplu, poate fi creat ca agregat pentru vnzri sau creat pentru a defini profitul pentru o
perioad dat.
Valoarea int - definit de un cmp calculat din care reiese o valoare sau de o valoare
absolut. De exemplu, un cmp calculat se poate utiliza ca valoare int atunci cnd managerii
unei organizaii doresc s compare modul n care departamentul de vnzri se ndreapt spre o
cot dat, unde cmpul calculat pentru buget reprezint valoarea int. Un exemplu de valoare
absolut utilizat ca valoare int poate fi atunci cnd managerul de resurse umane dorete s
evalueze numrul de zile de concediu medical al fiecrui angajat comparativ cu media, unde
numrul mediu de zile de concediu medical reprezint valoarea absolut.
Praguri de stare - definit de intervalul dintre un prag minim i un prag maxim. Pragul de stare
se afieaz cu un element grafic pentru a-i ajuta pe utilizatori s determine cu uurin starea
valorii de baz comparativ cu valoarea int.
n exemplul nostru: ne propunem s vedem dac valorile veniturilor rezultate din vnzrile
produselor, repartizate pe Mall-uri, se ncadreaz n target-ul de 10.000.000.
Pentru aceasta, n POWERPIVOT, pe tabela cu cmpul de nsumat (Rapoarte), facem suma pe Venit.
Pe baza acestei sume construim KPI-ul:

n POWERPIVOT, n tab-ul Home, gruparea Measures, butonul Create KPI; Avem valoarea absolut
de 10.000.000 i se consider ca ntre 5.000.000 i 10.000.000 e o zon galben, acceptabil, abia
peste 10.000.000 fiind ndeplinit target-ul. Confirmm cu OK i facem Refresh la tabela pivot pe
butonul din partea de sus a listei cmpurilor. Vor aprea cele trei cmpuri n plus n lista de cmpuri.
Dac vrem s vedem doar grafic ncadrarea n target, debifm Value i Target i lsm doar Status:

39

Editri ulterioare ale KPI se pot face n dou locuri: fie n POWERPIVOT, cu click dreapta pe celula
care conine nsumarea de coloan, fie n Excel, cu click dreapta pe cmpul de KPI din lista de
cmpuri a tabelului pivot.

6.2 Ierarhii
Una dintre modificrile pe care le putei efectua la un model de date este adugarea ierarhiilor. De
exemplu, dac avei date geografice, este bine s creai o ierarhie care ncepe cu ara i se detaliaz cu
regiunea i oraul. Sau, n cazul nostru, REGIUNE, ORAS, MALL, MAGAZIN.
O ierarhie este o list de coloane care sunt considerate a fi un singur element cnd sunt utilizate ntrun raport Pivot sau Power View. O ierarhie apare ca un singur obiect n lista de cmpuri. Ierarhiile
faciliteaz pentru utilizatori selectarea i navigarea pe ci obinuite ale datelor la crearea rapoartelor i
a rapoartelor PivotTable.
n fereastra PowerPivot, n tab-ul Home, gruparea View, butonul Diagram View. Aici selectai una
sau mai multe coloane din acelai tabel, pe care dorii s le plasai ntr-o ierarhie. Dac tabelul nu
include toate coloanele pe care dorii s le utilizai, le putei aduga utiliznd funcia Related. Facei
clic dreapta pe una dintre coloanele selectate i alegei Create Hierarchy. Un nivel printe al
ierarhiei este creat n partea de jos a tabelului, iar coloanele selectate sunt copiate n ierarhie ca
niveluri copil i editai numele ierarhiei.
Apoi, putei glisa mai multe coloane n nivelul printe al ierarhiei, ceea ce creeaz niveluri copil din
coloane i plaseaz nivelurile n partea de jos a ierarhiei. Iniial, ordinea coloanelor copil este cea din
tabel dar ea poate fi modificat prin glisarea unei coloane din ierarhie n sus sau n jos, pn pe poziia
n care dorii s apar n ierarhie.
Cnd utilizai o selecie multipl pentru a crea o ierarhie, ordinea nivelurilor copil se bazeaz iniial pe
cardinalitatea coloanelor. Cardinalitatea de cel mai nalt nivel este listat prima, unde valorile sunt
cele mai rare sau unice (REGIUNE), iar coloanele cu nivelul cel mai sczut de cardinalitate sunt
listate ultimele (MALL), unde valorile pot avea mai multe duplicate. Totui, adugarea coloanelor
suplimentare plaseaz nivelurile copil n partea de jos a listei. Putei glisa coloanele pentru a modifica
ordinea.
Putei crea o ierarhie dintr-o coloan ascuns (o coloan ce este ascuns de instrumentele client).

40

Dac tii ce coloane dorii s creai ca niveluri copil n ierarhia dvs., comanda Create Hierarchy din
meniul contextual v permite s selectai acele coloane i s creai rapid o ierarhie cu mai multe
niveluri copil.
Putei redenumi o ierarhie, putei redenumi un nivel copil, putei modifica ordinea nivelurilor copil,
putei aduga coloane suplimentare ca niveluri copil, putei elimina un nivel copil dintr-o ierarhie,
putei afia numele surs al unui nivel copil (numele coloanei) i putei ascunde un nivel copil dac
acesta are acelai nume cu nivelul printe al ierarhiei, toate acestea cu click dreapta pe nivelul printe
al ierarhiei.
Putei aduga o coloan numai o singur dat la o ierarhie. Dup ce adugai o coloan la o ierarhie,
nu o putei aduga din nou la aceeai ierarhie.
Dac redenumii un nivel copil al unei ierarhii, acesta nu mai partajeaz acelai nume ca i coloana
din care este creat. n mod implicit, numele surs al coloanei apare n partea dreapt a nivelului copil
i poate fi ascuns sau afiat cu click dreapta de unde alegem Hide/Show Source Column Name. Dup
crearea unei ierarhii, ea va apare n lista de cmpuri a tabelului pivot.

41

S-ar putea să vă placă și