Sunteți pe pagina 1din 11

A B C D E F G H I J K L M N O P

1 DA NU
2 CENTRALIZATORUL FACTURILOR EMISE
3
Cod Nume Nr zile Valoare Suma MAJORĂRI NR. ZILE
4 Localitate Client Adresa Nr factură Data facturii Data scadenţei Plătit Data plăţii Majorări TVA (19%)
Client Client graţie Factură datorată Funcţie proprie INTARZIERE
5 100 Client1 Constanta Str.A 456 Wednesday, 07 January 2004 20 zile Wednesday, 04 February 2004 38,060,000 NU 2,040,396,600 326,463,456 2,404,920,056 #VALUE! 5,439 zile
6 101 Client2 Bucuresti Str.B 888 Saturday, 10 April 2004 30 zile Tuesday, 25 May 2004 21,000,000 NU 1,102,500,000 176,400,000 1,299,900,000 #VALUE! 5,328 zile
7 102 Client3 Brasov Str.C 343 Saturday, 10 April 2004 15 zile Tuesday, 04 May 2004 7,000,000 NU 368,970,000 59,035,200 435,005,200 #VALUE! 5,349 zile
8 104 Client5 Constanta Str.A 87 Sunday, 24 November 2002 20 zile Friday, 20 December 2002 5,200,100 DA 2/12/2003 1,092,021 174,723 6,466,844 #VALUE! 54 zile
9 103 Client4 Cluj Str.D 566 Monday, 07 April 2003 - Monday, 07 April 2003 9,500,000 NU 538,080,000 86,092,800 633,672,800 #VALUE! 5,742 zile
10 102 Client3 Brasov Str.C 70 Thursday, 19 December 2002 15 zile Thursday, 09 January 2003 14,000,000 DA 1/7/2003 0 0 14,000,000 #VALUE!
11 100 Client1 Constanta Str.A 244 Thursday, 25 September 2003 20 zile Thursday, 23 October 2003 3,600,000 DA 11/12/2003 216,000 34,560 3,850,560 #VALUE! 20 zile
12 103 Client4 Cluj Str.D 670 Saturday, 15 March 2003 - Saturday, 15 March 2003 12,500,000 DA 1/15/2004 28,500,000 4,560,000 45,560,000 #VALUE! 306 zile
13 101 Client2 Bucuresti Str.B 590 Monday, 07 April 2003 15 zile Monday, 28 April 2003 23,000,000 NU 1,297,890,000 207,662,400 1,528,552,400 #VALUE! 5,721 zile
14 101 Client2 Bucuresti Str.B 122 Thursday, 22 August 2002 30 zile Thursday, 03 October 2002 6,760,000 DA 11/30/2003 23,322,000 3,731,520 33,813,520 #VALUE! 423 zile
15 100 Client1 Constanta Str.A 406 Tuesday, 16 December 2003 10 zile Tuesday, 30 December 2003 2,300,000 NU 124,131,000 19,860,960 146,291,960 #VALUE! 5,475 zile
16 102 Client3 Brasov Str.C 111 Tuesday, 06 April 2004 15 zile Thursday, 29 April 2004 10,000,000 DA 4/12/2004 0 0 10,000,000 #VALUE!
17
18 1. Să se calculeze data scadenţei excluzând week-end-urile şi sărbătorile legale.
Răspuns: Funcţia folosită este WORKDAY(). În sintaxa acestei funcţii, pentru că enunţul o cere în mod expres, trebuie precizată şi o plajă de celule care să cuprindă zilele de sărbătoare pe care nu trebuie să le ia în seamă în calculul datei scadente. Aşadar, s-a ales plaja de celule
19
$C$21:$C$32.
20
21 SĂRBĂTORI LEGALE Funcţia WORKDAY( ) este o funcţie care trebuie activată astfel: Tools - > Add Ins… - >Analysis ToolPak
22 Thursday, 01 January 2004 Selectaţi o celulă de pe plaja de celule H5:H16 şi vedeţi formula scrisă.
23 Friday, 02 January 2004
24 Sunday, 11 April 2004
25 Monday, 12 April 2004
26 Tuesday, 13 April 2004
27 Saturday, 01 May 2004
28 Sunday, 02 May 2004
29 Wednesday, 01 December 2004
30 Saturday, 25 December 2004
31 Sunday, 26 December 2004
32 Monday, 27 December 2004
33
34
35 2. Rubrica Plătit va conţine o listă derulantă, cu răspunsurile DA/NU, care va fi disponibilă pentru un cod client numeric şi non-vid
36 Răspuns: pentru început s-a ales o plajă de celule în care să scriem valorile din listă. Acestă plajă este: A1:C1 - 2 celule cu valorile "DA", respectiv "NU" şi o celulă vidă care va apare în listă numai dacă se încalcă condiţiile din enunţ.
37 Soluţia 1: selectaţi plaja de celule J5:J10 - > Data - >Validation - > List - > Source: =IF(ISNUMBER(A5);$A$1:$B$1;$C$1) - > trebuie debifată opţiunea R Ignore Blank
Soluţia 2: selectaţi plaja de celule J11:J16 - > Data - >Validation - > List - > Source: =IF(AND(NOT(ISBLANK(A11));ISNUMBER(A11));$A$1:$B$1;$C$1) - > de data aceasta nu trebuie, în mod obligatoriu, debifată opţiunea R Ignore Blank, deoarece în cadrul condiţiilor din
38
formulă am inclus şi funcţia Not(IsBlank(A11)) care este echivalentă cu debifarea acelei opţiuni.
39
3. Data plăţii (plaja de celule K5:K16) va fi validată astfel:
40 - se completează numai dacă pe coloana "Platit" este valoarea "DA"
- trebuie să fie mai mică sau egală cu data curentă şi mai mare sau egală cu data facturii
41 Răspuns: selectaţi plaja de celule K5:K16 - > Data - >Validation - > Custom - > Formula: =AND(J5="DA";K5<=TODAY();K5>=F5)
42
4. Să se calculeze majorările aplicate la valoarea facturii, în raport de numărul de zile întârziere, astfel:
- <=30 zile de la data scadenţei - majorare de 0,3% pe fiecare zi de întârziere;
- între 30 zile şi 90 zile – majorarea este de 0,3% pentru primele 30 de zile, iar pentru ceea ce depăşeşte 30 de zile este de 0,5% pe fiecare zi de întârziere;
- între 90 zile şi 180 zile – majorarea este de 0,3% pentru primele 30 de zile, 0,5% pentru următoarele 60 de zile, iar pentru ceea ce depăşeşte 90 de zile este de 0,7% pe fiecare zi de întârziere;
43 - peste 180 zile – majorarea este de 0,3% pentru primele 30 de zile, 0,5% pentru următoarele 60 de zile, 0,7% pentru următoarele 90 zile, iar pentru ceea ce depăşeşte 180 zile este de 1% pe fiecare zi de întârziere;
- dacă data scadenţei este mai mare decât data curentă, atunci mojorările sunt zero pentru că nu s-a depăşit termenul de scadenţă, deci nu a început perioada de calculare a majorărilor;
- se calculează majorările indiferent dacă nu a plătit sau a plătit - în acest caz tinându-se cont de "Data Plăţii" - ;
- de asemenea, se va lua în calcul şi situaţia în care pe coloana "Plătit" să fie "DA", dar la "Data Plăţii" să nu fie scris nimic. În acest caz, utlizatorul va fi avertizat prin apariţia la majorări a textului "EROARE".

44 Răspuns: selectaţi o celulă de pe plaja de celule L5:L16 şi vedeţi formula scrisă.


45
A B C D E F G H I J K L M N O P
46 5. Să se insereze o nouă coloană în baza de date unde se vor calcula majorările de întârziere printr-o funcţie definită de utilizator, numită „Penalitati”.
Răspuns: adăugarea unei noi coloane la sfărşitul tabelului (O4:O16) în care vom calcula majorările folosind o funţie proprie (definită de utilizator).
47 1. Scrierea funcţiei proprii (numită "Penalităţi") în editorul Visual Basic: Tools - > Macro - > Visual Basic Editor - > apare o nouă fereastră specifică Visual Basic.
Din meniul Insert al ferestrei Visual Basic se alege opţiunea Module, apare o subfereastră în care trebuie să scriem codul sursă al funcţiei noastre. Acest cod sursă este:
48
49 Function Penalitati(Data_Scadenta, Valoare, Platit, Data_Platii)
50
51 If Data_Scadenta >= Date Then
52 Penalitati = 0
53 Else
54 If Platit = "DA" Then
55 If Data_Platii = "" Then
56 Penalitati = "EROARE"
57 Else
58 If Data_Platii <= Data_Scadenta Then
59 Penalitati = 0
60 Else
61 If (Data_Platii - Data_Scadenta) <= 30 Then
62 Penalitati = (Data_Platii - Data_Scadenta) * Valoare * 0.003
63 Else
64 If (Data_Platii - Data_Scadenta) <= 90 Then
65 Penalitati = Valoare * 30 * 0.003 + (Data_Platii - Data_Scadenta - 30) * Valoare * 0.005
66 Else
67 If (Data_Platii - Data_Scadenta) <= 180 Then
68 Penalitati = Valoare * 30 * 0.003 + Valoare * 60 * 0.005 + (Data_Platii - Data_Scadenta - 90) * Valoare * 0.007
69 Else
70 Penalitati = Valoare * 30 * 0.003 + Valoare * 60 * 0.005 + Valoare * 90 * 0.007 + (Data_Platii - Data_Scadenta - 180) * Valoare * 0.01
71 End If
72 End If
73 End If
74 End If
75 End If
76 Else
77 If (Date - Data_Scadenta) <= 30 Then
78 Penalitati = (Date - Data_Scadenta) * Valoare * 0.003
79 Else
80 If (Date - Data_Scadenta) <= 90 Then
81 Penalitati = Valoare * 30 * 0.003 + (Date - Data_Scadenta - 30) * Valoare * 0.005
82 Else
83 If (Date - Data_Scadenta) <= 180 Then
84 Penalitati = Valoare * 30 * 0.003 + Valoare * 60 * 0.005 + (Date - Data_Scadenta - 90) * Valoare * 0.007
85 Else
86 Penalitati = Valoare * 30 * 0.003 + Valoare * 60 * 0.005 + Valoare * 90 * 0.007 + (Date - Data_Scadenta - 180) * Valoare * 0.01
87 End If
88 End If
89 End If
90 End If
91 End If
92
93 End Function
94
95 2. Revenirea în foaia de calcul din Excel, selectarea celulei O5 şi scrierea următoarei formule: =PENALITATI(H5;I5;J5;K5)
96
A B C D E F G H I J K L M N O P
97 6. Să se afişeze lista clienţilor care au majorări de întârziere cuprinse între 20% şi 80% din valoare (câmpul de rezultate va cuprinde rubricile: Cod Client, Nume Client, Valoare, Majorări)
Răspuns: Se va folosi filtrarea avansată: Data - > Filter - > Advanced Filter…. Fereastra de dialog ce apare impune completarea acesteia cu următoarele informaţii: Filter the lis, in-place - opţiune ce trebuie bifată dacă se doreşte ca rezultatul interogării să fie plasat peste tabelul supus
filtrării (opţiune nerecomandată deorece datele din tabelul de bază se vor pierde definitiv - se foloseşte numai dacă dorim în mod expres să rămână numai rezultatul filtrării); Copy to another location - opţiune ce trebuie bifată dacă se doreşte ca rezultatul interogării să fie plasat într-o
98 altă zonă şi nu peste tabelul de bază (opţiune frecvent folosită) - bifarea acestei opţiuni activează zona Copy To (citiţi la ce este folosită Copy To); List Range - plaja de celule pe care se află tabelul supus interogării; Criteria Range - plaja de celule pe care am stabilit criteriile conform
enunţului; Copy To - locul în care se doreşte plasarea rezultatului acestei interogări.

99
100 Altfel spus avem nevoie de:
101 1. tabelul supus filtrării - a cărui plajă de celule trebuie se specifică în zona List Range
102 2. o plajă de celule pe care să se stabilească criteriile din enunţ - plajă ce trebuie specificată în zona Criteria Range
103 3. precizarea locului din foaia de calcul Excel în care se doreşte plasarea rezultatului filtrării - plajă de celule ce trebuie specificată în zona Copy To
104
105 1. Tabelul supus filtrării sau interogării este $A$4:$N$16.
106 2. Crearea zonei de criterii: se alege o plajă de celule în care vom specifica criteriile impuse de enunţ.
107
108 CRITERII Pentru a preciza o condiţie logică "ŞI" criteriile se precizează pe aceeaşi linie . Altfel spus se doreşte aflarea clienţilor care au majorări mai mari de
109
20% din valoarea facturii (criteriu plasat pe celula A111) şi mai mici de 80% din valoarea facturii (criteriu plasat pe celula B111).
Pentru a preciza o condiţie logică "SAU" criteriile se precizează pe linii diferite (de exemplu pe celula A111 prima condiţie, iar pe celula A112 cealaltă
110 condiţie)
111 1 0
112
113 Aşadar, zona de citerii este $C$110:$D$111 - se precizează şi celula vidă de deasupra formulelor din criterii (face parte din logica realizării condiţiilor din criterii).
114
3. Pentru că se doreşte afişarea în tabelul rezultat numai a coloanelor "Cod Client", "Nume Client", "Valoare Factură" şi "Majorări" se impune copierea acestor denumiri de coloane din tabelul de bază într-o altă plajă de celule pe care se va afişa tabelul rezultat. S-a ales plaja de celule
115 $R$117:$U$117.
116
Valoare Orice modificare efectuată în tabelul de bază (A4:N16) nu se va reflecta şi în tabelul rezultat în urma filtrării (B117:E120 în
117 Cod Client Nume Client Majorări
Factură exemplul nostru).
118 100 Client1 38,060,000 11,608,300
119 104 Client5 5,200,100 1,092,021
120 100 Client1 2,300,000 1,202,900
121
122 Dispunem acum de toate elementele necesare completării ferestrei Advanced Filter. Aşadar, Data - > Filter - > Advanced Filter - > apare fereastra Advanced Filter. Completată această fereastră se prezintă astfel:
123 Din motive didactice s-a copiat tabelul rezultat de pe plaja de celule $R$117:$U$120 pe plaja de celule $B$117:$E$120, lăsând loc pentru a verifica şi dvs.
124 ATENŢIE!!! Plasarea capului de tabel rezultat (în cazul nostru capul tabelului rezultat l-am fixat în $R$117:$U$117 - este plasat bine) într-o zonă în care mai jos există alte informaţii din foia de calcul ar putea duce,
125 fie la ştergerea informaţiilor din foaia de calcul peste care se va suprapune tot tabelul rezultat, fie la apariţia unui mesaj de eroare care ne avertizează că nu poate şterge informaţiile din foaia de calcul Excel pentru că
126 acestea se află pe o celulă concatenată ce depăşeste dimensiunea tuturor coloanelor tabelului rezultat (dacă celula concatenată nu este mai mare decât dimensiunea tuturor coloanelor tabelului rezultat, atunci se va
127 face automat deconcatenare şi ştergerea conţinutului acesteia, plasând în această celulă informaţiile rezultate în urma interogării). La apariţia acestui mesaj (pentru că operaţia nu a fost executată) schimbaţi plaja de
celule pe care doriţi să afişaţi tabelul rezultat în urma interogării şi reluaţi numai filtrarea. Acest mesaj se prezintă astfel:
128
129
130 Tabelul supus filtrării (tabelul de bază) Orice modificare adusă tabelului sursă nu se va reflecta şi în tabelul rezultat
131 Plaja de celule pe care se află stabilite criteriile în urma interogării. Pentru a se vedea modificările făcute în tabelul de bază şi
în tabelul rezultat trebuie să refaceţi filtrarea.
132 Plaja de celule pe care se va afişa rezultatul interogării
133
134
A B C D E F G H I J K L M N O P
135 7. Să se afişeze lista clienţilor (informaţii de identificare - Cod Client, Nume Client, Localitate Client, Adresa) cu care societatea a încheiat contracte în luna curentă. Se vor afişa informaţii unice.
136 Răspuns: Se va folosi filtrarea avansată: Data - > Filter - > Advanced Filter.
137 Altfel spus avem nevoie de:
138 1. tabelul supus filtrării - a cărui plajă de celule trebuie se specifică în zona List Range
139 2. o plajă de celule pe care să se stabilească criteriile din enunţ - plajă ce trebuie specificată în zona Criteria Range
140 3. precizarea locului din foaia de calcul Excel în care se doreşte plasarea rezultatului filtrării - plajă de celule ce trebuie specificată în zona Copy To
141 4. specificarea faptului că se doreşte obţinerea de informaţii unice - se bifează caseta Unique records only
Observaţie: caseta Unique records only se poate bifa dacă nu se doreşte afişarea în tabelul rezultat a mai multor linii comune. Prin linie comună se înţelege aceleaşi valori pe mai multe linii din tabelul rezultat. ATENŢIE !!!! Se va lua în calcul toată linia tabelului rezultat.
Exemplu:
Din enunţ deducem că se doreşte ca tabelul rezultat să aibe numai coloanele: "Cod Client", "Nume Client", "Localitate Client" şi "Adresa", iar informaţiile cuprinse în tabelul rezultat să fie unice. Dacă în tabelul rezultat ar trebui să se afişeze de exemplu pe linia 1: la Cod Client:
142 101, la Nume Client: Client2, la Localitate Client: Bucureşti şi la Adresa: Str.B, iar pe linia 3: la Cod Client: 101, la Nume Client: Client2, la Localitate: Bucureşti şi la Adresa: Str.B, atunci bifarea casetei Unique Record Only va face ca în tabelul rezultat acestă linie să apară o
singură dată. Dacă diferă măcar o informaţie pe cele două linii, cum ar fi de exemplu pe linia 3 să avem: la Cod Client: 101, la Nume Client: Client2, la Localitate: Bucureşti, la Adresa: Str.C, atunci cele două linii nu sunt considerate comune şi deci vor fi ambele afişate în tabelul
rezultat.

143
144 1. Tabelul supus filtrării sau interogării este $A$4:$N$16.
145 2. Crearea zonei de criterii: se alege o plajă de celule în care vom specifica criteriile impuse de enunţ.
146
147 CRITERII
148
149
150 0 0
151
152 Aşadar, zona de citerii este $C$149:$D$150 - se precizează şi celula vidă de deasupra formulelor din criterii (face parte din logica realizării condiţiilor din criterii).
153
3. Pentru că se doreşte afişarea în tabelul rezultat numai a coloanelor "Cod Client", "Nume Client", "Localitate Client" şi "Adresa" se impune copierea acestor denumiri de coloane din tabelul de bază într-o altă plajă de celule pe care se va afişa tabelul rezultat. S-a ales plaja de celule
154
$R$156:$U$156.
155
Localitate
156 Cod Client Nume Client Adresa
Client
157 101 Client2 Bucuresti Str.B
158 102 Client3 Brasov Str.C
159
160 Dispunem acum de toate elementele necesare completării ferestrei Advanced Filter. Aşadar, Data - > Filter - > Advanced Filter - > apare fereastra Advanced Filter. Completată această fereastră se prezintă astfel:
161

162 Din motive didactice s-a copiat tabelul rezultat de pe plaja de celule $R$156:$U$158 pe plaja de celule $B$156:$E$158, lăsând loc pentru a verifica şi dvs.
163 ATENŢIE!!! Plasarea capului de tabel rezultat (în cazul nostru capul tabelului rezultat l-am fixat în $R$156:$U$156 - este plasat bine) într-o zonă în care mai jos există alte informaţii din foia de calcul ar putea duce,
164 fie la ştergerea informaţiilor din foaia de calcul peste care se va suprapune tot tabelul rezultat, fie la apariţia unui mesaj de eroare care ne avertizează că nu poate şterge informaţiile din foaia de calcul Excel pentru că
165 acestea se află pe o celulă concatenată ce depăşeste dimensiunea tuturor coloanelor tabelului rezultat (dacă celula concatenată nu este mai mare decât dimensiunea tuturor coloanelor tabelului rezultat, atunci se va
166 face automat deconcatenare şi ştergerea conţinutului acesteia, plasând în această celulă informaţiile rezultate în urma interogării). La apariţia acestui mesaj (pentru că operaţia nu a fost executată) schimbaţi plaja de
celule pe care doriţi să afişaţi tabelul rezultat în urma interogării şi reluaţi numai filtrarea. Acest mesaj se prezintă astfel:
167
168
169 Tabelul supus filtrării (tabelul de bază)
170 Plaja de celule pe care se află stabilite criteriile
171 Plaja de celule pe care se va afişa rezultatul interogării
172
173
174
A B C D E F G H I J K L M N O P
175 8. Să se afişeze lista facturilor emise în ultimele 6 luni, pentru care clientul a beneficiat de un termen de graţie.
176 Răspuns: Se va folosi filtrarea avansată: Data - > Filter - > Advanced Filter.
177 Altfel spus avem nevoie de:
178 1. tabelul supus filtrării - a cărui plajă de celule trebuie se specifică în zona List Range
179 2. o plajă de celule pe care să se stabilească criteriile din enunţ - plajă ce trebuie specificată în zona Criteria Range
180 3. precizarea locului din foaia de calcul Excel în care se doreşte plasarea rezultatului filtrării - plajă de celule ce trebuie specificată în zona Copy To
181
182 1. Tabelul supus filtrării sau interogării este $A$4:$N$16.
183 2. Crearea zonei de criterii: se alege o plajă de celule în care vom specifica criteriile impuse de enunţ.
184
185 CRITERII Funcţia EDATE( ) este o funcţie care trebuie activată astfel: Tools - > Add Ins… - >Analysis ToolPak
186
187
188 0 1
189
190 Aşadar, zona de citerii este $C$187:$D$188 - se precizează şi celula vidă de deasupra formulelor din criterii (face parte din logica realizării condiţiilor din criterii).
191
3. Pentru că în enunţ nu se specifică exact care va fi capul de tabel al tabelului rezultat, vom preciza ca loc de unde să înceapă afişarea tabelului rezultat o celulă vidă, capul de tabel al tabelului rezultat find, de data aceasta, acelaşi cu cel al tabelului supus filtrării (se va completa
192 automat), iar ca înregistrări vor apare numai cele care respectă condiţiile precizate în criterii. S-a ales celula $R$194.
193
Cod Nume Nr zile Valoare Suma
194 Localitate Client Adresa Nr factură Data facturii Data scadenţei Plătit Data plăţii Majorări TVA (19%)
Client Client graţie Factură datorată
195 100 Client1 Constanta Str.A 456 Wednesday, 07 January 2004 20 zile Wednesday, 04 February 2004 38,060,000 NU 11,608,300 1,857,328 51,525,628
196 101 Client2 Bucuresti Str.B 888 Saturday, 10 April 2004 30 zile Tuesday, 25 May 2004 21,000,000 NU 0 0 21,000,000
197 102 Client3 Brasov Str.C 343 Saturday, 10 April 2004 15 zile Tuesday, 04 May 2004 7,000,000 NU 0 0 7,000,000
198 100 Client1 Constanta Str.A 406 Tuesday, 16 December 2003 10 zile Tuesday, 30 December 2003 2,300,000 NU 1,202,900 192,464 3,695,364
199 102 Client3 Brasov Str.C 111 Tuesday, 06 April 2004 15 zile Thursday, 29 April 2004 10,000,000 DA 4/12/2004 0 0 10,000,000
200
201 Dispunem acum de toate elementele necesare completării ferestrei Advanced Filter. Aşadar, Data - > Filter - > Advanced Filter - > apare fereastra Advanced Filter. Completată această fereastră se prezintă astfel:
202
203 Din motive didactice s-a copiat tabelul rezultat de pe plaja de celule $R$194:$AE$199 pe plaja de celule $A$194:$N$199, lăsând loc pentru a verifica şi dvs.
204 ATENŢIE!!! Plasarea începutului capului de tabel rezultat (în cazul nostru l-am fixat în $R$194 - este plasat bine) într-o zonă în care mai jos există alte informaţii din foia de calcul ar putea duce, fie la ştergerea
205 informaţiilor din foaia de calcul peste care se va suprapune tot tabelul rezultat, fie la apariţia unui mesaj de eroare care ne avertizează că nu poate şterge informaţiile din foaia de calcul Excel pentru că acestea se află
pe o celulă concatenată ce depăşeste dimensiunea tuturor coloanelor tabelului rezultat (dacă celula concatenată nu este mai mare decât dimensiunea tuturor coloanelor tabelului rezultat, atunci se va face automat
206 deconcatenare şi ştergerea conţinutului acesteia, plasând în această celulă informaţiile rezultate în urma interogării). La apariţia acestui mesaj (pentru că operaţia nu a fost executată) schimbaţi plaja de celule pe care
207 doriţi să afişaţi tabelul rezultat în urma interogării şi reluaţi numai filtrarea. Acest mesaj se prezintă astfel:
208
209
210 Tabelul supus filtrării (tabelul de bază)
211 Plaja de celule pe care se află stabilite criteriile
212 Plaja de celule pe care se va afişa rezultatul interogării
213
214
215
A B C D E F G H I J K L M N O P
216 9. Să se afişeze lista facturilor neplătite la care nr. de zile de întârziere depăşeşte media acestora (câmpul de rezultate va fi: "Nr Factură", "Majorări" şi "Nr zile întârziere" - această coloana nu există în tabelul de bază).
217 Răspuns: Mai întâi trebuie să determinăm numărul de zile de întârziere. Pentru aceasta s-a ales plaja de celule P4:P16. Selectaţi o celulă de pe plaja de celule P5:P16 şi vedeţi formula scrisă pentru determinarea numărului de zile de întârziere.
218 Se va folosi filtrarea avansată: Data - > Filter - > Advanced Filter.
219 Altfel spus avem nevoie de:
220 1. tabelul supus filtrării - a cărui plajă de celule trebuie se specifică în zona List Range
221 2. o plajă de celule pe care să se stabilească criteriile din enunţ - plajă ce trebuie specificată în zona Criteria Range
222 3. precizarea locului din foaia de calcul Excel în care se doreşte plasarea rezultatului filtrării - plajă de celule ce trebuie specificată în zona Copy To
223
224 1. Tabelul supus filtrării sau interogării este $A$4:$P$16.
225 2. Crearea zonei de criterii: se alege o plajă de celule în care vom specifica criteriile impuse de enunţ.
226
227 CRITERII
228
229
230 1 1
231
232 Aşadar, zona de citerii este $C$229:$D$130 - se precizează şi celula vidă de deasupra formulelor din criterii (face parte din logica realizării condiţiilor din criterii).
233
3. Pentru că se doreşte afişarea în tabelul rezultat numai a coloanelor "Nr Factură", "Majorări" şi "Nr. zile de întârziere" se impune copierea acestor denumiri de coloane din tabelul de bază într-o altă plajă de celule pe care se va afişa tabelul rezultat. S-a ales plaja de celule
234
$R$236:$T$236.
235
NR. ZILE
236 Nr factură Majorări INTARZIERE
237 566 28,310,000 376 zile
238 590 63,710,000 355 zile
239
240 Dispunem acum de toate elementele necesare completării ferestrei Advanced Filter. Aşadar, Data - > Filter - > Advanced Filter - > apare fereastra Advanced Filter. Completată această fereastră se prezintă astfel:
241
242 Din motive didactice s-a copiat tabelul rezultat de pe plaja de celule $R$1236:$T$238 pe plaja de celule $B$236:$D$238, lăsând loc pentru a verifica şi dvs.
243 ATENŢIE!!! Plasarea capului de tabel rezultat (în cazul nostru $R$236:$T$236 - este plasat bine) într-o zonă în care mai jos există alte informaţii din foia de calcul ar putea duce, fie la ştergerea informaţiilor din
244 foaia de calcul peste care se va suprapune tot tabelul rezultat, fie la apariţia unui mesaj de eroare care ne avertizează că nu poate şterge informaţiile din foaia de calcul Excel pentru că acestea se află pe o celulă
245 concatenată ce depăşeste dimensiunea tuturor coloanelor tabelului rezultat (dacă celula concatenată nu este mai mare decât dimensiunea tuturor coloanelor tabelului rezultat, atunci se va face automat deconcatenare
246 şi ştergerea conţinutului acesteia, plasând în această celulă informaţiile rezultate în urma interogării). La apariţia acestui mesaj (pentru că operaţia nu a fost executată) schimbaţi plaja de celule pe care doriţi să afişaţi
tabelul rezultat în urma interogării şi reluaţi numai filtrarea. Acest mesaj se prezintă astfel:
247
248
249 Tabelul supus filtrării (tabelul de bază)
250 Plaja de celule pe care se află stabilite criteriile
251 Plaja de celule pe care se va afişa rezultatul interogării
252
253
254
255 10. Câte facturi s-au emis în zilele de week-end?
Răspuns: Pentru a determina câte facturi s-au emis în zilele de Week-end se foloseşte funcţia bază de date DCOUNT( ).
Această funcţie bază de date are în sintaxa sa următorii parametrii:
1. plaja de celule pe care se află tabelul (baza de date) utilizat la determinarea nr. de facturi emise în Week -end
256
2. coloana din tabel pe care să realizeze numărarea
3. plaja de celule pe care se află criteriile specificate în enunţ

257 Aşadar:
258 1. Plaja de celule pe care se află tabelul este: $A$4:$N$16
259 2. Coloana din tabel pe care se va face numărarea trebuie să fie de tip numeric. S-a ales coloana 1, dar putea fi şi 5 sau 7, etc.
260 3. Realizarea plajei de celule în care vom specifica criteriile din enunţ. S-a ales plaja de celule: $C$264:$C$265
261
262 CRITERII
263
264
265 0
266
267 Toţi parametrii funcţiei bază de date sunt acum cunoscuţi. Nu ne-a rămas decât să scriem funcţia baza de date într-o celulă. S-a ales celula B269.
268
A B C D E F G H I J K L M N O P
269 Err:504
270
271
272 11. Care este factura la care s-au aplicat cele mai mari penalităţi datorită nerespectării condiţiilor contractuale?
Răspuns: Pentru a determina care este factura cu cele mai multe penalităţi se foloseşte funcţia bază de date DGET( ).
Această funcţie bază de date are în sintaxa sa următorii parametrii:
1. plaja de celule pe care se află tabelul (baza de date) utilizat la rezolvarea cerinţei din enunţ
273
2. coloana din tabel pe care trebuie să o returnăm
3. plaja de celule pe care se află criteriile specificate în enunţ

274 Aşadar:
275 1. Plaja de celule pe care se află tabelul este: $A$4:$N$16
276 2. Coloana din tabel pe care trebuie să o returnăm este, conform enunţului, "Nr Factură", care se află pe coloana a 5 -a.
277 3. Realizarea plajei de celule în care vom specifica criteriile din enunţ. S-a ales plaja de celule: $C$281:$C$282
278

279 CRITERII
280

281

282 1
283
284 Toţi parametrii funcţiei bază de date sunt acum cunoscuţi. Nu ne-a rămas decât să scriem funcţia baza de date într-o celulă. S-a ales celula B286.
285
286 Err:504
287
288
12. Care este anul în care s-au emis cele mai multe facturi, câte facturi s-au emis în acest cel mai frecvent an, care este valoarea totală a acestora şi câţi clienţi au plătit penalităţi pentru întârzieri la plata facturii?
289 Aceste informaţii vor fi disponibile într-o celulă a foii de calcul, respectând următorul format de afişare: „În anul <X>, s-au încheiat <N> facturi, în valoare de <Y> lei, <Z> clienţi plătind penalităţi pentru nerespectarea obligaţiilor contractuale”.

Răspuns: Pentru a determina:


- care este anul în care s-au emis cele mai multe facturi vom folosi funcţi MODE( );
- câte facturi s-au încheiat în anul cel mai frecvent vom folosi funcţia bază de date DCOUNT( )
290
- care este valoarea totală a facturilor emise în acest an vom folosi funcţia bază de date DSUM( );
- câţi clienţi au plătit penalităţi în anul cel mai frecvent folosim funcţia bază de date DCOUNT( );

291
CRITERII pentru funcţia bază de date CRITERII pentru funcţia bază de date Dsum( ) CRITERII pentru funcţia bază de date Dcount( )
Dcount( ) care determină câte facturi care determină valoarea tuturor facturilor emise care determină câţi clienţi au plătit penalităţi în
292 s-au încheiat în anul cel mai frecvent. în anul cel mai frecvent. anul cel mai frecvent.

293
294
295 0 0 0 1
296
297 Toţi parametrii funcţiilor bază de date sunt acum cunoscuţi. Nu ne-a rămas decât să scriem funcţia baza de date într-o celulă. S-a ales celula B299.
298
299 Err:504
300
301
A B C D E F G H I J K L M N O P
302 13. Care este ziua în care s-au încheiat cele mai multe facturi în luna curentă? Formatul de afişare: "Cele mai multe facturi s-au încheiat pe data de <dd-mm-yyyy>."

Răspuns: Rezolvarea acestui enunţ impune 2 etape şi anume:


303 A. realizarea unei interogări în care să ne fie afişate numai acele facturi emise în luna curentă.
B. folosindu-ne de acest tabel rezultat în urma interogării vom determina care este ziua în care s-au încheiat cele mai multe facturi.
304 A. Se va folosi filtrarea avansată: Data - > Filter - > Advanced Filter.
305 Altfel spus avem nevoie de:
306 1. tabelul supus filtrării - a cărui plajă de celule trebuie se specifică în zona List Range
307 2. o plajă de celule pe care să se stabilească criteriile din enunţ - plajă ce trebuie specificată în zona Criteria Range
308 3. precizarea locului din foaia de calcul Excel în care se doreşte plasarea rezultatului filtrării - plajă de celule ce trebuie specificată în zona Copy To
309 4. specificarea faptului că se doreşte obţinerea de informaţii unice - se bifează caseta Unique records only
310
311 1. Tabelul supus filtrării sau interogării este $A$4:$N$16.
312 2. Crearea zonei de criterii: se alege o plajă de celule în care vom specifica criteriile impuse de enunţ.
313
314 CRITERII
315
316
317 0 0
318
319 Aşadar, zona de citerii este $C$316:$D$317 - se precizează şi celula vidă de deasupra formulelor din criterii (face parte din logica realizării condiţiilor din criterii).
320
3. În enunţ nu se precizează ca tabelul rezultat în urma interogării să aibă numai anumite coloane, dar pentru uşurinţă am ales coloanele "Cod Client", "Nume Client", ", "Data facturii" şi "Adresa" se impune copierea acestor denumiri de coloane din tabelul de bază într-o altă
321 plajă de celule pe care se va afişa tabelul rezultat. S-a ales plaja de celule $R$323:$U$323.
322

323 Cod Client Nume Client Data facturii Adresa

324 101 Client2 4/10/2004 Str.B


325 102 Client3 4/10/2004 Str.C
326 102 Client3 4/6/2004 Str.C
327 Dispunem acum de toate elementele necesare completării ferestrei Advanced Filter. Aşadar, Data - > Filter - > Advanced Filter - > apare fereastra Advanced Filter. Completată această fereastră se prezintă astfel:
328
329 Din motive didactice s-a copiat tabelul rezultat de pe plaja de celule $R$156:$U$158 pe plaja de celule $B$156:$E$158, lăsând loc pentru a verifica şi dvs.
330 ATENŢIE!!! Plasarea capului de tabel rezultat (în cazul nostru capul tabelului rezultat l-am fixat în $R$323:$U$323 - este plasat bine) într-o zonă în care mai jos există alte informaţii din foia de calcul ar putea duce,
331 fie la ştergerea informaţiilor din foaia de calcul peste care se va suprapune tot tabelul rezultat, fie la apariţia unui mesaj de eroare care ne avertizează că nu poate şterge informaţiile din foaia de calcul Excel pentru că
332 acestea se află pe o celulă concatenată ce depăşeste dimensiunea tuturor coloanelor tabelului rezultat (dacă celula concatenată nu este mai mare decât dimensiunea tuturor coloanelor tabelului rezultat, atunci se va
333 face automat deconcatenare şi ştergerea conţinutului acesteia, plasând în această celulă informaţiile rezultate în urma interogării). La apariţia acestui mesaj (pentru că operaţia nu a fost executată) schimbaţi plaja de
celule pe care doriţi să afişaţi tabelul rezultat în urma interogării şi reluaţi numai filtrarea. Acest mesaj se prezintă astfel:
334
335
336 Tabelul supus filtrării (tabelul de bază)
337 Plaja de celule pe care se află stabilite criteriile
338 Plaja de celule pe care se va afişa rezultatul interogării
339
340

341 B. Determinarea zilei în care s-au încheiat cele mai multe facturi se face cu ajutorul funcţiei MODE( ).
342
343 Ne vom folosi de tabelul rezultat în urma interogării. Alegem o celulă în care să scriem răspunsul la cerinţa aplicaţiei noastre: B345.
344
345 Cele mai multe facturi s-au încheiat pe data de 10-04-2004.
346
347
A B C D E F G H I J K L M N O P
348 14. Să se afiseze lista facturilor neplătite pentru care s-a depăşit scadenţa cu mai mult de un an de zile (câmp de rezultate: "Nr factură", "Data scadenţei", "Plătit" şi "Majorări")
349 Răspuns: Se va folosi filtrarea avansată: Data - > Filter - > Advanced Filter.
350 Altfel spus avem nevoie de:
351 1. tabelul supus filtrării - a cărui plajă de celule trebuie se specifică în zona List Range
352 2. o plajă de celule pe care să se stabilească criteriile din enunţ - plajă ce trebuie specificată în zona Criteria Range
353 3. precizarea locului din foaia de calcul Excel în care se doreşte plasarea rezultatului filtrării - plajă de celule ce trebuie specificată în zona Copy To
354
355 1. Tabelul supus filtrării sau interogării este $A$4:$N$16.
356 2. Crearea zonei de criterii: se alege o plajă de celule în care vom specifica criteriile impuse de enunţ.
357
358 CRITERII
359
360 Plătit
361 NU ###
362
363 Aşadar, zona de citerii este $C$360:$D$361
364
3. Pentru că se doreşte afişarea în tabelul rezultat numai a coloanelor "Nr Factură", "Data Scadenţei", "Plătit" şi "Majorări" se impune copierea acestor denumiri de coloane din tabelul de bază într-o altă plajă de celule pe care se va afişa tabelul rezultat. S-a ales plaja de celule
365
$R$367:$U$367.
366
Nr Data
367 Plătit Majorări
factură scadenţei
368 566 Monday, 07 April 2003 NU 29,450,000
369 590 Monday, 28 April 2003 NU 66,470,000
370
371 Dispunem acum de toate elementele necesare completării ferestrei Advanced Filter. Aşadar, Data - > Filter - > Advanced Filter - > apare fereastra Advanced Filter. Completată această fereastră se prezintă astfel:
372
373 Din motive didactice s-a copiat tabelul rezultat de pe plaja de celule $R$367:$U$369 pe plaja de celule $B$367:$E$369, lăsând loc pentru a verifica şi dvs.
374 ATENŢIE!!! Plasarea capului de tabel rezultat (în cazul nostru capul tabelului rezultat l-am fixat în $R$367:$U$367 - este plasat bine) într-o zonă în care mai jos există alte informaţii din foia de calcul ar putea duce,
375 fie la ştergerea informaţiilor din foaia de calcul peste care se va suprapune tot tabelul rezultat, fie la apariţia unui mesaj de eroare care ne avertizează că nu poate şterge informaţiile din foaia de calcul Excel pentru că
376 acestea se află pe o celulă concatenată ce depăşeste dimensiunea tuturor coloanelor tabelului rezultat (dacă celula concatenată nu este mai mare decât dimensiunea tuturor coloanelor tabelului rezultat, atunci se va
377 face automat deconcatenare şi ştergerea conţinutului acesteia, plasând în această celulă informaţiile rezultate în urma interogării). La apariţia acestui mesaj (pentru că operaţia nu a fost executată) schimbaţi plaja de
celule pe care doriţi să afişaţi tabelul rezultat în urma interogării şi reluaţi numai filtrarea. Acest mesaj se prezintă astfel:
378
379
380 Tabelul supus filtrării (tabelul de bază)
381 Plaja de celule pe care se află stabilite criteriile
382 Plaja de celule pe care se va afişa rezultatul interogării
383
384
385
A B C D E F G H I J K L M N O P
15. Să se genereze pentru anul curent, serii de date referitoare la zilele din săptămână corespunzătoare începutului, respectiv sfârşitului de lună. Altfel spus: în ce zi din săptămâna (Luni sau Marţi sau Miercuri, sau .....etc) cade fiecare zi de 1 a lunii (1 ianuarie 2004, 1 februarie 2004,
386
.....etc) şi fiecare zi de sfârşit de lună (31 ianuarie, 28 sau 29 februarie, 31 martie, 30 aprilie, .....etc).
Răspuns: Ø într-o celulă se va scrie prima zi din anul curent (s-a ales celula $B$394).
Ø pe o altă plajă de celule se vor scrie în cifre cele 12 luni ale anului începând cu cifra 0 (zero), deoarece se doreşte şi aflarea zilei din săptămână a datei de 1 ianuarie 2004 (EDATE( )), respectiv 31 ianuarie 2004 (EOMONTH( )). Valoarea 0 (zero) în cadrul funcţiei
387 EDATE( ) va determina data calendaristică existentă peste 0 (zero) luni - ca rezultat va fi aceeaşi dată precizată în celula $B$394 - , iar în cadrul funcţiei EOMONTH( ) care este ultima zi a lunii ce rezultă sărind peste 0 (zero) luni - ca rezultat va fi 31 ianuarie 2004.
S-a ales ca plaja de celule în care vom scrie în cifre cele 12 luni (începând cu cifra 0 (zero)) B395:B406.

388 Ø scrierea formulelor funcţiilor EDATE( ) şi EOMONTH( ). S-a ales celula C395 pentru EDATE( ) - şi F395 pentru EOMONTH( ). Pentru restul valorilor formulele au fost copiate.
389
390 Funcţia EDATE( ) Funcţia EOMONTH( )
Verificarea
Ziua din Verificarea datei Ziua din
391 1/1/2004 săptămână calendaristice
datei
săptămână
calendaristice
392 0 Thursday ### ### Saturday
393 1 Sunday ### ### Sunday
394 2 Monday ### ### Wednesday
395 3 Thursday ### Friday, April 30, 2004 Friday
396 4 Saturday ### Monday, May 31, 2004 Monday
397 5 Tuesday ### ### Wednesday
398 6 Thursday ### Saturday, July 31, 2004 Saturday
399 7 Sunday ### Tuesday, August 31, 2004 Tuesday
400 8 Wednesday ### ### Thursday
401 9 Friday ### Sunday, October 31, 2004 Sunday
402 10 Monday ### ### Tuesday
403 11 Wednesday ### ### Friday
404
405
406 Aceeaşi funcţie, dar formatări de celule diferite. Aceeaşi funcţie, dar formatări de celule diferite.
407
408 Prima zi a anului curent.
409
A B C D E F G H I J K L M N O P Q
1 DA NU
2 CENTRALIZATORUL FACTURILOR EMISE
3
Cod Nume Localitate Nr zile Valoare Suma MAJORĂRI NR. ZILE
4 Adresa Nr factură Data facturii Data scadenţei Plătit Data plăţii Majorări TVA (19%) SĂRBĂTORI LEGALE
Funcţie proprie INTARZIERE
Client Client Client graţie Factură datorată
5 100 Client1 Constanta Str.A 456 Wednesday, 07 January 2004 20 zile Wednesday, 04 February 2004 38,060,000 NU 2,040,396,600 326,463,456 2,404,920,056 Thursday, 01 January 2004 #VALUE! 5,439
6 101 Client2 Bucuresti Str.B 888 Saturday, 10 April 2004 30 zile Tuesday, 25 May 2004 21,000,000 NU 1,102,500,000 176,400,000 1,299,900,000 Friday, 02 January 2004 #VALUE! 5,328
7 102 Client3 Brasov Str.C 343 Saturday, 10 April 2004 15 zile Tuesday, 04 May 2004 7,000,000 NU 368,970,000 59,035,200 435,005,200 Sunday, 11 April 2004 #VALUE! 5,349
8 100 Client1 Constanta Str.A 87 Sunday, 24 November 2002 20 zile Friday, 20 December 2002 5,200,100 DA 2/12/2003 1,092,021 174,723 6,466,844 Monday, 12 April 2004 #VALUE! 5,850
9 103 Client4 Cluj Str.D 566 Monday, 07 April 2003 - Monday, 07 April 2003 9,500,000 NU 538,080,000 86,092,800 633,672,800 Tuesday, 13 April 2004 #VALUE! 5,742
10 102 Client3 Brasov Str.C 70 Thursday, 19 December 2002 15 zile Thursday, 09 January 2003 14,000,000 DA 1/7/2003 0 0 14,000,000 Saturday, 01 May 2004 #VALUE! 5,830
11 100 Client1 Constanta Str.A 244 Thursday, 25 September 2003 20 zile Thursday, 23 October 2003 3,600,000 DA 11/12/2003 216,000 34,560 3,850,560 Sunday, 02 May 2004 #VALUE! 5,543
12 103 Client4 Cluj Str.D 670 Saturday, 15 March 2003 - Saturday, 15 March 2003 12,500,000 DA 1/15/2004 28,500,000 4,560,000 45,560,000 ### #VALUE! 5,765
13 101 Client2 Bucuresti Str.B 590 Monday, 07 April 2003 15 zile Monday, 28 April 2003 23,000,000 NU 1,297,890,000 207,662,400 1,528,552,400 ### #VALUE! 5,721
14 101 Client2 Bucuresti Str.B 122 Thursday, 22 August 2002 30 zile Thursday, 03 October 2002 6,760,000 DA 11/30/2003 23,322,000 3,731,520 33,813,520 Sunday, 26 December 2004 #VALUE! 5,928
15 100 Client1 Constanta Str.A 406 Tuesday, 16 December 2003 10 zile Tuesday, 30 December 2003 2,300,000 NU 124,131,000 19,860,960 146,291,960 Monday, 27 December 2004 #VALUE! 5,475
16 100 Client1 Constanta Str.A 111 Tuesday, 06 April 2004 15 zile Thursday, 29 April 2004 10,000,000 DA 4/12/2004 0 0 10,000,000 #VALUE! 5,354
17

18 CERINŢE FORMULA CRITERII


19 Suma valorică a facturilor încasate de la clienţii din Constanta. Err:504
20 1 0
21
22 Maximul valoric al facturilor neîncasate din Brasov. Err:504
23 0 1
24
25 Minimul valoric al facturilor emise de "Client1". Err:504
26 1
27
28 Media facturilor emise şi neîncasate. Err:504
29 1
30
31 Numărul facturilor emise şi neîncasate de la clienţii din Cluj şi  Err:504
32
Brasov în anul precedent. 0 1 0
33 0 1 0
34
35 Care este valoarea facturii numărul 888? Err:504
36 0
37
38 Care este suma datorată aferentă facturilor încasate pe ultimele 4  Err:504
39 luni? 0 0
40
41 Media valorică a facturilor neplătite de clientii din Bucuresti în  Nu sunt date în tabel!!!
42
ultima decadă a lunii precedente. 1 0 0
43
44 Câte zile de graţie s­au acordat pentru factura numărul 244? Err:504
45 0

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