Sunteți pe pagina 1din 4

1

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
A B C D E F G H I J K
Marca Nume i Prenume Data nasterii Compartiment
Indicativ
loc de munc
Cod
Salariat
Functie Data angajarii Vechime
Salariu
tarifar
Spor
vechime
1001 BADEA Cornel 5/23/1985 Resurse umane R1001 BADEA R1001 economist ###################### 13 ani 2,500,000 375,000 lei
1002 CORNEA Alexa 7/9/1984 Marketing M1002 CORNEA M1002 merceolog Thursday, 03 May 1973 41 ani 4,500,000 1,125,000 lei
1003 LOLEV Viorel 3/12/1967 Contabilitate C1003 LOLEV C1003 economist Thursday, 10 January 1980 34 ani 8,500,000 2,125,000 lei
1004 MANEA Florin 5/30/1980 Contabilitate C1004 MANEA C1004 contabil Monday, 02 April 2001 13 ani 2,500,000 375,000 lei
1005 MONDEA Carmen 12/19/1981 Contabilitate C1005 MONDE C1005 economist Monday, 25 January 1993 21 ani 4,800,000 1,200,000 lei
1006 POPA Virgil 1/23/1972 Informatica I1006 POPA I1006 programator ###################### 11 ani 2,100,000 315,000 lei
1007 POPESCU Ana 11/25/1959 Marketing M1007 POPESCU M1007 merceolog Monday, 03 April 1995 19 ani 3,500,000 700,000 lei
1008 TATARU Cristina 3/3/1985 Informatica I1008 TATARU I1008 operator Thursday, 14 March 2002 12 ani 2,300,000 345,000 lei
1009 VASILESCU Dan 11/18/1962 Informatica I1009 VASILESCU I1009 designer WEB Monday, 04 March 1991 23 ani 6,850,000 1,712,500 lei
Marca
Compartiment Contabilitate Resurse umane Marketing Informatica
1001 economist economist economist analist
1002 contabil jurist merceolog programator
1003 psiholog operator reea
1004 inginer sistem
1005 designer WEB
1006
1007
1008 Functie / Plafon salarii Borna minim Borna maxim
1009 analist 3,500,000 5,500,000
1010 contabil 2,500,000 6,000,000
1011 designer WEB 5,000,000 9,000,000
1012 economist 4,000,000 10,000,000
1013 inginer sistem 5,000,000 9,000,000
1014 jurist 4,000,000 8,000,000
1015 merceolog 3,000,000 5,000,000
1016 operator reea 3,000,000 6,500,000
1017 programator 3,500,000 7,000,000
1018 psiholog 4,000,000 8,500,000
1019
1020
1021 Nr. coloan de recuperat 2 3 4 5 6
1022 Funcie / Trane vechime < 5 ani 5-10 ani 10-15 ani 15-20 ani > 20 ani
1023 analist 3,500,000 3,900,000 4,700,000 5,000,000 5,500,000
1024 contabil 2,500,000 3,500,000 4,000,000 5,000,000 6,000,000
1025 designer WEB 5,000,000 6,500,000 7,000,000 8,000,000 9,000,000
1026 economist 4,000,000 4,500,000 6,500,000 8,000,000 10,000,000
1027 inginer sistem 5,000,000 6,000,000 7,000,000 8,000,000 9,000,000
1028 jurist 4,000,000 5,000,000 6,000,000 7,000,000 8000000
1029 merceolog 3,000,000 3,500,000 4,000,000 4,500,000 5000000
1030 operator retea 3,000,000 4,000,000 5,000,000 6,000,000 6,500,000
1031 programator 3,500,000 4,500,000 5,500,000 6,500,000 7,000,000
1032 psiholog 4,000,000 4,800,000 5,200,000 7,300,000 8,500,000
tat de plat - validri
Funcii de ncadrare pe compartimente
Salariu tarifar
Tabel de consultare vertical "Salarii" (B37:G46)
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
A B C D E F G H I J K
8. n cmpul "Data angajrii" (plaja de celule H3:H11) se va accepta orice dat din ultimii 30 de ani cu excepia zilelor de week-end.
Rspuns: Selectai plaja de celule H3:H11 -> Data -> Validation ->Custom ->
- > Source: =AND(H3>=TODAY()-365*30;WEEKDAY(H3;2)<>6;WEEKDAY(H3;2)<>7)
9. Vechimea (n ani) se calculeaz reinndu-se numai partea ntreag.
Rspuns: Selectai o celul de pe plaja de celule I3:I11 i vedei formula scris.
4. Compartimentul (plaja de celule D3:D11) va fi selectat dintr-o list derulant (valorile domeniului "C14:F14"). Lista va fi disponibil numai dac se completeaz "Marca" i "Nume
i Prenume".
Rspuns: Selectai plaja de celule D3:D11 -> Data -> Validation ->List -> Source: =IF(OR(ISBLANK(A3);ISBLANK(B3));$B$15;$C$14:$F$14)
7. Funcia salariatului (plaja de celule G3:G11) va fi selectat dintr-o list derulant, n raport de compartimentul funcional. Funciile disponibile pe compartimente sunt pe plaja de
celule C15:F19. Astfel: pentru compartimentul "Contabilitate" funciile disponibile sunt: "economist" i "contabil"; pentru compartimentul "Resurse umane" funciile disponibile sunt:
"economist", "jurist", "psiholog"; etc
Rspuns: Selectai plaja de celule G3:G11 -> Data -> Validation ->List ->
- > Source: =IF(D3="CONTABILITATE";$C$15:$C$16;IF(D3="RESURSE UMANE";$D$15:$D$17;IF(D3="MARKETING";$E$15:$E$16;$F$15:$F$19)))
5. Indicativul locului de munc este un ir format din prima liter a compartimentului funcional i marca salariatului (Ex: R1001).
Rspuns 1: Selectai o celul de pe plaja de celule E3:E5 i vedei formula scris.
Rspuns 2: Selectai o celul de pe plaja de celule E6:E8 i vedei formula scris.
Rspuns 3: Selectai o celul de pe plaja de celule E9:E11 i vedei formula scris.
6. Codul salariatului este un agregat format din numele salariatului i indicativul locului de munc al acestuia. (Ex: BADEA R1001)
Rspuns 1: Selectai o celul de pe plaja de celule F3:F5 i vedei formula scris.
Rspuns 2: Selectai o celul de pe plaja de celule F6:F8 i vedei formula scris.
Rspuns 3: Selectai o celul de pe plaja de celule F9:F11 i vedei formula scris.
1. Intrrile pe cmpul "Marca" (plaja de celule A3:A11) vor fi restricionate la valorile domeniului "A15:A46" prin consultare vertical.
Rspuns 1: Selectai plaja de celule A3:A7 -> Data -> Validation ->Custom -> Formula: =NOT(ISERROR(VLOOKUP(A3;$A$14:$A$46;1;FALSE)))
Rspuns 2: Selectai plaja de celule A8:A11 -> Data -> Validation ->Custom -> Formula: =A8=VLOOKUP(A8;$A$14:$A$46;1;FALSE)
2. Numele salariatului (plaja de celule B3:B11) se editeaz obligatoriu cu majuscule, iar Prenumele cu minuscule, exceptnd primul caracter (Ex: VASILESCU Nicolae).
Lungimea textului va fi cuprins ntre 7 i 30 de caractere, intrarea n celul fiind valid numai pentru o marc valid i nevid.
Rspuns: Selectai plaja de celule B3:B11 -> Data -> Validation ->Text Length - > Between:
- Minimum: =IF(AND(NOT(ISBLANK(A3));EXACT(LEFT(B3;SEARCH(" ";B3;1)-1);UPPER(LEFT(B3;SEARCH(" ";B3;1)-1)));EXACT(RIGHT(B3;LEN(B3)-SEARCH("
";B3;1));PROPER(RIGHT(B3;LEN(B3)-SEARCH(" ";B3;1))));NOT(ISERROR(VLOOKUP(A3;$A$14:$A$46;1;FALSE))));7;0)
- Maximum: =IF(AND(NOT(ISBLANK(A3));EXACT(LEFT(B3;SEARCH(" ";B3;1)-1);UPPER(LEFT(B3;SEARCH(" ";B3;1)-1)));EXACT(RIGHT(B3;LEN(B3)-SEARCH("
";B3;1));PROPER(RIGHT(B3;LEN(B3)-SEARCH(" ";B3;1))));NOT(ISERROR(VLOOKUP(A3;$A$14:$A$46;1;FALSE))));30;0)
3. Data naterii (plaja de celule C3:C11)va fi acceptat numai dac salariatul are o vrst cuprins ntre 18 ani i 50 de ani .
Rspuns 1: Selectai plaja de celule C3:C6 -> Data -> Validation ->Custom -> Source: =AND(C3>=TODAY()-365*50;C3<=TODAY()-365*18)
Rspuns 2: Selectai plaja de celule C7:C11 -> Data -> Validation ->Date -> Between:
- Start date: =TODAY() - 365*50
- End date: =TODAY() - 365*18
77
78
79
A B C D E F G H I J K
Rspuns: Tranele de salarizare pe funcii i vechime se regsesc pe plaja de celule B37:G46. Astfel: dac funcia este "analist" i vechime <= 5 ani, atunci salariu minim este de
2.100.000 lei (plafonul minim din enun), iar salariu maxim este de 3.500.000 lei (salariu pentru trana de vechime curent); dac funcia este "analist" i vechime ntre 5 i 10 ani,
atunci salariu minim este de 3.500.000 lei (salariu pentru trana de vechime precedent), iar salariu maxim este de 4.900.000 lei (salariu pentru trana de vechime curent); .... ... ......
....... .....; dac funcia este "analist" i vechime peste 20 de ani, atunci salariu minim este de 5.000.000 lei (salariu pentru trana de vechime precedent), iar salariu maxim este de
5.500.000 lei (salariu pentru trana de vechime curent).
Aceste sume trebuie s le prelum automat n raport de funcia acestuia (deci Vlookup( ) ) i de vechimea acestuia (n cadrul funciei Vlookup( ) trebuie s precizm coloana
corespunztoare vechimii).
Aadar:
Selectai plaja de celule J3:J11 -> Data -> Validation ->Whole number -> Between:
- Minimum: =IF(I3<5;2100000;IF(I3<10;VLOOKUP(G3;$B$35:$G$46;2);IF(I3<15;VLOOKUP(G3;$B$35:$G$46;3);IF(I3<20;VLOOKUP(G3;$B$35:$G$46;4);VLOOKUP(G3;$B$35:$G$46;5)))))
- Maximum: =IF(I3<5;VLOOKUP(G3;$B$35:$G$46;2);IF(I3<10;VLOOKUP(G3;$B$35:$G$46;3);IF(I3<15;VLOOKUP(G3;$B$35:$G$46;4);IF(I3<20;VLOOKUP(G3;$B$35:$G$46;5);VLOOKUP(G3;$B$35:$G$46;6)))))
10. Salariul tarifar se va stabili pe funcii, innd cont de trana de vechime n care se ncadreaz salariatul. Pentru o funcie de ncadrare dat:
- plafonul minim este de 2.100.000 lei
- borna minim este egal cu salariul maxim pentru trana de vechime precedent
- borna maxim este egal cu salariul maxim pentru trana de vechime curent
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
A B C D E F G H I J K
Function Spor (Vec,Sal) Function Spor_1 (Vec,Sal) Spor_1 = Sal * 25/100
Select Case Vec If Vec < 3 then End If
Case Is < 3 Spor_1 = 0 End If
Spor = 0 Else End If
Case Is < 5 If Vec < 5 then End If
Spor = Sal * 5/100 Spor_1 = Sal * 5/100 End If
Case Is < 10 Else End Function
Spor = Sal * 10/100 If Vec < 10 then
Case Is < 15 Spor_1 = Sal * 10/100
Spor = Sal * 15/100 Else
Case Is < 20 If Vec < 15 then
Spor = Sal * 20/100 Spor_1 = Sal * 15/100
Case Else Else
Spor = Sal * 25/100 If Vec < 20 then
End Select Spor_1 = Sal * 20/100
End Function Else
Dup scrirea codului surs nchidem fereastra specific Visual Basic cu tot cu subfereastra.
2. Scrierea funciei din Visual Basic ntr-o celul Excel.
Ne poziionm pe celula K3. Tastm urmtoarea formula: =spor(I3;J3) . Vezi o celul de pe plaja de celule K3:K6. Ce se observ dup copierea formulei?
Ne poziionm pe celula K7. Tastm urmtoarea formula: =spor_1(I3;J3) . Vezi o celul de pe plaja de celule K7:K11. Ce se observ dup copierea formulei?
Observaie:
Dac rezultatul returnat n celul de funcia din Visual Basic nu este cel corect, atunci trebuie s vedem i s corectm codul surs, astfel:
1. Tools -> Macro - > Visual Basic Editor: se deschide o nou fereastr specific Visual Basic
2. Se execut dublu click pe numele modului (implicit numele este Module1) din partea stng a ferestrei Visual Basic n care noi am tastat funcia proprie. Va apare o
subfereastra ce are codul surs scris de noi anterior. Se aduc modificri acestui cod surs.
3. Se revine n foaia de calcul Excel i se retasteaz formula n celul.
Salvarea funciei definite de utilizator se face automat, atunci cnd se salveaz i fiierul din Excel (fie cu Save As.. la nceput, fie cu Save pe parcursul rezolvrii
tuturor cerinelor din fiier dat).
tergerea formulei din celula Excel n care avem funcia proprie nu are ca efect tergerea definitiv a acesteia din urm, funcia proprie rmnnd n cadrul Visual
Basic-ului. tergerea definitiv se face numai din Visual Basic, astfel: se selecteaz modulul ce conine funcia proprie - > click dreapta pe numele modului selectat ->
Remove .....
11. S se determine "Spor vechime" (plaja de celule K3:K11), utiliznd o funcie definit de utilizator. Sporul de vechime n lei se va calcula astfel:
- pentru vechime < 3 ani - nu se acord spor de vechime (adic este zero)
- pentru vechime cuprins ntre [3 i 5) ani - spor de vechime 5% din salariu tarifar
- pentru vechime cuprins ntre [5 i 10) ani - spor de vechime 10% din salariu tarifar
- pentru vechime cuprins ntre [10 i 15) ani - spor de vechime 15% din salariu tarifar
- pentru vechime cuprins ntre [15 i 20) ani - spor de vechime 20% din salariu tarifar
- pentru vechime de peste 20 ani - spor de vechime 25% din salariu tarifar
Rspuns: Pentru c trebuie s calculm sporul de vechime cu ajutorul unei funcii definite de utilizator (de fapt aceasta este o funcie scris n Visual Basic) trebuie s parcurgem
2 etape, i anume:
1. scrierea funcie definite de utilizator n Visual Basic;
2. scrierea funciei din Visual Basic ntr-o celul Excel.
1. Scrierea funciei definite de utilizator n Visual Basic:
Tool -> Macro - > Visual Basic Editor: se deschide o nou fereastr specific Visual Basic
n cadrul acestei ferestre din meniul Insert se alege opiunea Module: se deschide o subfereastr n care trebuie s scriem codul surs al funciei noastre. Acest cod surs
este:
S
A
U
SAU

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