Documente Academic
Documente Profesional
Documente Cultură
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
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
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