România
Roportal.ro

Problema Excel 2007

Început de Paullatan_u 17771, Vin 12 feb 2010 · 20 răspunsuri · 18.381 vizualizări

impresie1.286 mesaje#11

tind sa cred ca vrei sa stii de fapt zilele libere dintr-o luna, caz in care nu-ti trebuie nicio formula, ci doar un tabel, de genul celui de mai jos.

de exemplu, pentru aprilie

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 -

J V S D L - M M J V S D - L M M J - V S D L M - M J V S D - L M M J V -

unde sunt libere: luni pe 5, sambata pe 10 (implicit duminica pe 11), joi pe 15, marti pe 20, duminica pe 25, vineri pe 30

dar, cand a 4-a zi lucratoare este duminica (cum este in cazul de fata: duminica 4 aprilie), n-o consideri libera ?

Editat Sâm 6 mar 2010 00:52

Skytronic5 mesaje#12

si a 4-a zi,chiar daca este duminica se lucreaza.

eu ma gindeam la oformula ,gen algoritm,care o data introdusa sa-mi genereze programul pe perioada mai mare de timp(1an).oricum ,merci

impresie1.286 mesaje#13

salut, revin tarziu, ca nu am prea avut chef sa dau atentie :giveheart: pentru ca se poate realiza, chiar si pe un an fara programare si formule, doar cu un calendar pe hartie in care sa fie toate lunile pe acelasi carton, marcand cu pixul din 5 in 5 zile cate una libera, si aia este tot...

dar uite un Macro care-ti face exact ce vrei tu.

Este doar pe anul 2010. Pentru altii ani trebuie facute niste mici modificari in program.

copiaza-l in Visual Basic-ul Excel-ului si apoi distractie placuta (daca nu stii unde sa-l copiezi, da-mi mesaj)

Sub Calendar()

For i = 1 To 366

Cells(i, 2).Value = "V"

Cells(i + 1, 2).Value = "S"

Cells(i + 2, 2).Value = "D"

Cells(i + 3, 2).Value = "L"

Cells(i + 4, 2).Value = "Ma"

Cells(i + 5, 2).Value = "Mi"

Cells(i + 6, 2).Value = "J"

i = i + 6

Next i

For j = 1 To 73

Cells(5 * j, 2).Interior.Color = 65535

Next j

For k = 1 To 73

If Cells(5 * k, 2).Value = "S" Then

Cells(5 * k + 1, 2).Interior.Color = 65535

End If

Next k

Range("B32:B59").Copy Destination:=Range("C1")

Range("B60:B90").Copy Destination:=Range("D1")

Range("B91:B120").Copy Destination:=Range("E1")

Range("B121:B151").Copy Destination:=Range("F1")

Range("B152:B181").Copy Destination:=Range("G1")

Range("B182:B212").Copy Destination:=Range("H1")

Range("B213:B243").Copy Destination:=Range("I1")

Range("B244:B273").Copy Destination:=Range("J1")

Range("B274:B304").Copy Destination:=Range("K1")

Range("B305:B334").Copy Destination:=Range("L1")

Range("B335:B366").Copy Destination:=Range("M1")

Rows("32:375").Select

Selection.Delete

Cells(1, 1).Value = 1

Cells(2, 1).Value = "=R[-1]C+1"

Range("A2").Select

Selection.AutoFill Destination:=Range("A2:A31"), Type:=xlFillDefault

Range("A1:A32").Font.Bold = True

Rows("1:1").Select

Selection.Insert

Dim An As Variant

An = Array("Ianuarie", "Februarie", "Martie", "Aprilie", "Mai", "Iunie", "Iulie", "August", "Septembrie", "Octombrie", "Noiembrie", "Decembrie")

For f = 0 To 11

Cells(1, f + 2).Value = An(f)

Next f

Range("B1:M1").Font.Bold = True

Columns("A:M").Select

With Selection

.ColumnWidth = 11

.HorizontalAlignment = xlCenter

.Vertical.Alignment = xlCenter

End With

Range("A1").Select

End Sub

si rezulta tabelul asta :

Editat Lun 22 mar 2010 17:12

EIILCELF3 mesaje#14

Salut

Am nevoie de o formula care : pentru o valoare introdusa de mine in celula A1 sa-mi apara o valoare prestabilita in celula B1 . De exemplu , introduc in celula A1 valoarea 10,23 si in celula B1 sa-mi apara valoarea 9,19 .Valorile din celulele A1 , A2 , A3 , etc. sunt cuprinse intre 7,00 si 11,80 , sunt pe sarite si se pot repeta .Formula trebuie sa functioneze pentru orice valoare din celula A1 cuprinsa intre 7,00 si 11,80 , deci pentru acest interval eu trebuie sa introduc valorile prestabilite , care sa-mi apara in coloana B .

Multumesc

Paul Brahtl2.177 mesaje#15

=IF(A1=10.23,9.19,0)

Formula de mai sus este pentru o singura valoare. Pentru mai multe valori, in loc de 0 treci un alt IF cu urmatoarea pereche de valori.

EIILCELF3 mesaje#16
Paul Brahtl a scris:
=IF(A1=10.23,9.19,0)

Formula de mai sus este pentru o singura valoare. Pentru mai multe valori, in loc de 0 treci un alt IF cu urmatoarea pereche de valori.

Multumesc pentru ajutor.Pentru o singura valoare functioneaza.Dar nu am inteles cum sa scriu formula pentru mai multe valori.Poate nu am explicat destul :

-valorile pe care le introduc in celulele A1,A2,A3,A4,etc sunt valorile unor masuratori .Aceste valori sunt cuprinse intre 7,00 si 11,80 , din sutime in sutime , nu sunt consecutive si se pot repeta

-fiecarei valori masurate ii corespunde o alta valoare dintr-un tabel , valoare pe care pana acum o treceam manual , si pe care vreau sa o gaseasca formula

Daca trec un alt IF cu urmatoarea pereche de valori in loc de zero , imi apare un mesaj ca formula e gresita.Daca trec in continuare formula (repet formula) , imi apare "adevarat"sau 'fals' in celulele din coloana B , in loc sa apara valori.

post-305908-1285010966_thumb.jpg

post-305908-1285011324_thumb.jpg

Paul Brahtl2.177 mesaje#17

Sa presupunem ca a doua pereche ar fi 10.24 cu 9.11

atunci formula cu doua perechi arata asa:

=IF(A1=10.23,9.19,IF(A1=10.24,9.11,0))

Dar ... daca tu pe intervalul 7.00-10.80 ai perechi distincte pentru fiecare sutime diferita, rezulta ca vei avea 480 de perechi. Mie mi se pare munca de Sisif.

Varianta 2:

perechile le treci in Sheet2, pe coloanele A si B (pe A e valoarea masurata si pe B corespondentul ei)

formula va fi:

=VLOOKUP(A1,Sheet2!A1:B480,2,FALSE)

Adriana.c942 mesaje#19

Trebuie sa inlocuiesc in textul "Sunt x titluri de carte" litera x cu numar (suma din celulele C2:C6). Aveti vreo idee? Am incercat cu replace, dar nu ia in considerare o formula. Multumesc !

← Înapoi la Office si baze de date