Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 2 odgovora
  • 5.807 pregleda

Najnovija ↓

[Excel] Funkcija za državne praznike 18.12.2006. u 00:42 · pre 241 mesec #1
u tabeli "tbleksploatacija" imam kolone: zaposlenik, početakrada(format datum i vrijeme zajedno), završetak rada(format isti kao početakrada)
napravio sam drugu tabelu državnih praznika "tblpraznici" s dvije kolone praznici(format samo datum),nazivpraznika.
Kako napraviti upit u kojem se vidi tko je i koliko sati radio na državne praznike.
Ja sam probao s ovim ali ne do kraja. nešto treba ubaciti u između < > u kodu ali ne znam što.
=IIF(nz(Dlookup("[praznici]";"tblpraznici";"[praznici]=#" &[pocetakrada] & "# OR [praznici]=#" &[zavrsetakrada] & "#");0)=0,< >,)
Osim ovoga možda se može napraviti funkcija
Re: [Excel] Funkcija za državne praznike 18.12.2006. u 14:49 · pre 241 mesec #2
Problem je interesantan ali nije baš jednostavan. Ovo su samo neka moja razmišljanja, koja možda mogu da ti pomognu - ne i konačno rešenje.

Za početeka mislim da ćeš morati da u tabeli praznika staviš vreme za početak i kraj: ako je neko počeo 1.1.2007 u 20:00 i završio 2.1.2007 u 6:00 - u tom slučaju radio je delom na jedan a delom na drugi datum pa mi se čini unos samo datuma nedovoljan.

Glavni problem se svodi na nalaženje preseka između dva datumska opsega. Nazovimo ih Opseg1 (start1, end1) i Opseg2 (start2, end2).
Neka su podaci o ovim osezima uneti u ćelije B3, C3 i B4, C4
A ! B ! C
Opseg1 ! 01/01/07 20:00 ! 02/01/07 08:00
Opseg2 ! 01/01/07 00:00 ! 03/01/07 00:00


U ćeliji B5 nalazimo = MAX(B3, B4), a u ćeliji C5 = MIN(C3, C4)
Presek opsega - tj sati rada na prazinik dobijaš u tom slučaju kao razliku ove dve vrednosti
=IF(B5<=C5, C5-B5, 0)

Ovo neće funkcionisati ukoliko je radno vreme duže od 24 sata. U tom slučaju bi se moralo izvršiti izvršiti preračunavanje dana u sate.

Detaljnije o problemu preseka opsega vidi npr. http://ryanfarley.com/blog/archive/2004/08/19/966.aspx

Dalje je problem kako naći opseg praznika koji treba uporediti sa opsegom radnog vremena. Probao sam neke kombinacija sa VLOOKUP ali nisam uspeo. Naravno uvek postoji mogućnost da se napravi funkcija koja će to raditi. U tom slučaju u funkciju može da se implementira i gornja logika.
Potpis
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Re: [Excel] Funkcija za državne praznike 20.12.2006. u 12:49 · pre 241 mesec #3
Evo pokušao sam da napišem funkciju, pa ti proveri da li je to to.
Code:

Function SatiRada(poc As Date, kraj As Date, tblPraznici As Range) As Double
Dim poc1 As Date
Dim kraj1 As Date
Dim r As Long
  For r = 1 To tblPraznici.Rows.Count  ' Prolazak kroz tabelu praznika
     ' Trazi se da li postoji moguci presek radnog vremena i praznika
     If kraj >= tblPraznici(r, 1).Value And poc <= tblPraznici(r, 2).Value Then GoTo Presek
  Next r
  SatiRada = 0  ' Nema preseka
  Exit Function
Presek:
  poc1 = IIf(poc > tblPraznici(r, 1), poc, tblPraznici(r, 1))
  kraj1 = IIf(kraj < tblPraznici(r, 2), kraj, tblPraznici(r, 2))
  If kraj1 > poc1 Then
    SatiRada = DateDiff("h", poc1, kraj1)
  Else
    SatiRada = 0
  End If
End Function

Primer korišćenja funkcije imaš u prilogu.
Potpis
Nije to loše Rembrante, samo što ne bi dodao još malo boje?
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme