Sunteți pe pagina 1din 4

A 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

tat de plat - validri


Marca 1001 1002 1003 1004 1005 1006 1007 1008 1009 Nume i Prenume BADEA Cornel CORNEA Alexa LOLEV Viorel MANEA Florin MONDEA Carmen POPA Virgil POPESCU Ana TATARU Cristina VASILESCU Dan Data nasterii 5/23/1985 7/9/1984 3/12/1967 5/30/1980 12/19/1981 1/23/1972 11/25/1959 3/3/1985 11/18/1962 Compartiment Resurse umane Marketing Contabilitate Contabilitate Contabilitate Informatica Marketing Informatica Informatica Indicativ loc de munc R1001 M1002 C1003 C1004 C1005 I1006 M1007 I1008 I1009 Cod Salariat BADEA R1001 CORNEA M1002 LOLEV C1003 MANEA C1004 MONDE C1005 POPA I1006 POPESCU M1007 TATARU I1008 VASILESCU I1009 Functie economist merceolog economist contabil economist programator merceolog operator designer WEB Data angajarii ###################### Thursday, 03 May 1973 Thursday, 10 January 1980 Monday, 02 April 2001 Monday, 25 January 1993 ###################### Monday, 03 April 1995 Thursday, 14 March 2002 Monday, 04 March 1991 Vechime 12 ani 40 ani 33 ani 12 ani 20 ani 10 ani 18 ani 11 ani 22 ani Salariu tarifar 2,500,000 4,500,000 8,500,000 2,500,000 4,800,000 2,100,000 3,500,000 2,300,000 6,850,000 Spor vechime 375,000 lei 1,125,000 lei 2,125,000 lei 375,000 lei 1,200,000 lei 315,000 lei 700,000 lei 345,000 lei 1,712,500 lei

Marca
1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032

Compartiment

Contabilitate economist contabil

Funcii de ncadrare pe compartimente Resurse umane Marketing Informatica economist economist analist jurist merceolog programator psiholog operator reea inginer sistem designer WEB

Salariu tarifar
Functie / Plafon salarii analist contabil designer WEB economist inginer sistem jurist merceolog operator reea programator psiholog Borna minim 3,500,000 2,500,000 5,000,000 4,000,000 5,000,000 4,000,000 3,000,000 3,000,000 3,500,000 4,000,000 Borna maxim 5,500,000 6,000,000 9,000,000 10,000,000 9,000,000 8,000,000 5,000,000 6,500,000 7,000,000 8,500,000

Nr. coloan de recuperat Funcie / Trane vechime analist contabil designer WEB economist inginer sistem jurist merceolog operator retea programator psiholog

2 < 5 ani 3,500,000 2,500,000 5,000,000 4,000,000 5,000,000 4,000,000 3,000,000 3,000,000 3,500,000 4,000,000

Tabel de consultare vertical "Salarii" (B37:G46) 3 4 5-10 ani 10-15 ani 3,900,000 4,700,000 3,500,000 4,000,000 6,500,000 7,000,000 4,500,000 6,500,000 6,000,000 7,000,000 5,000,000 6,000,000 3,500,000 4,000,000 4,000,000 5,000,000 4,500,000 5,500,000 4,800,000 5,200,000

5 15-20 ani 5,000,000 5,000,000 8,000,000 8,000,000 8,000,000 7,000,000 4,500,000 6,000,000 6,500,000 7,300,000

6 > 20 ani 5,500,000 6,000,000 9,000,000 10,000,000 9,000,000 8000000 5000000 6,500,000 7,000,000 8,500,000

A 48 49 50 51

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)

52

53 54 55 56

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

57 58 59 61 62

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) 60 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.

63 64 65

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. 66
67

68 69 70 71 72 73 74 75 76

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))) 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.

77

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 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)))))

78 79

80

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:
Function Spor (Vec,Sal) Select Case Vec Case Is < 3 Spor = 0 Case Is < 5 Spor = Sal * 5/100 Case Is < 10 Spor = Sal * 10/100 Case Is < 15 Spor = Sal * 15/100 Case Is < 20 Spor = Sal * 20/100 Case Else Spor = Sal * 25/100 End Select End Function

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

S A U
SAU

Function Spor_1 (Vec,Sal) If Vec < 3 then Spor_1 = 0 Else If Vec < 5 then Spor_1 = Sal * 5/100 Else If Vec < 10 then Spor_1 = Sal * 10/100 Else If Vec < 15 then Spor_1 = Sal * 15/100 Else If Vec < 20 then Spor_1 = Sal * 20/100 Else

Spor_1 = Sal * 25/100 End If End If End If End If End If End Function

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

106

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