|
[ Siki 5 @ 27.05.2012. 19:49 ] @
| Meri se neko odsustvovanje sa posla u toku radnog vremena . Po pravilu format vremena koje u sebi sadrže sate i minute se piše sa dvotačkom i excel to izračuna. Za zbir sam koristio format ćelije [h]:mm kako bi izbegao automatsko pretvaranje zbira u dane. Taj zbir treba podeliti sa 8, (radi se o 8 časova), kako bi dobio broj izgubljenih radnih dana. Pokušao sam da broj sati i minuta ne pišem sa dvotačkom već sa zarezom,ne 6:15 već 6,15 ,ali kad recimo imate 5 dana po 6,15 proračun je 30,75 ,a pretvoreno u sate i minute trebalo bi da bude 31:15. Klasično deljenje ćelije sa 8 daje 3:54 što je približno 4 dana ali u ovom formatu je potpuno nejasno da se radi o danima. Isprobao sam postojeće formate koje nudi excel u kategoriji “ prilagođeni“ ali nisam uspeo da rešim problem.
Kako format vremena 31:15 podeliti sa 8 i dobijeni broj ,ako je decimalan, zaokružiti na ceo broj? Hvala.
|
[ 3okc @ 28.05.2012. 07:44 ] @
Kada te zanima udeo "osmice" ne deliš sumu sa 8 nego množiš sa 3; zato što je 8 sati trećina od dana.
Ako ti se već ne čita HELP -gde se ovakve stvari do detalja objašnjavaju, vidi Promena oblika vremena iz 2:30 [H:MM] u 2,5 [H]
[Edit: ispravljen deo gde se množi sa 3: deljenje sa 1/3 je isto što i množenje recipročnom vrednošću.]
[Ovu poruku je menjao 3okc dana 28.05.2012. u 11:41 GMT+1]
[ Siki 5 @ 28.05.2012. 12:26 ] @
Na kraju sam i ja shvatio uz Vašu pomoć. Hvala.
U prilogu je moj skromni doprinos sajtu ,možda će nekom zatrebati nešto slično. Radi se o obračunu vremena koje zaposleni provede van radnog mesta,a u toku radnog vremena,u prevodu, ode iz firme.
Za one koji koriste excel na amaterski način,baš kao i ja,nekoliko napomena:
1. imena i prezimena je moguće upisati samo u listu " zbir za celu godinu",u ostalim listama po mesecima će se pojavljivati bez upisivanja
2. u ostalim "mesečnim" listama je moguće ali i neophodno upisati samo vreme u formatu sa dvotačkom npr. 5:25 .Nije dozvoljeno da se upiše veći broj od 8:00. Vreme se upisuje za određeni datum.
3. ostalo radi excel
4. lista je napravljena za 2000 zaposlenih.
Pozdrav svima.
[ 3okc @ 28.05.2012. 13:03 ] @
Nije dobro.
Zaokruživanje je neophodno izvršiti formulom a ne oblikovanjem jer Excel nastavlja da računa sa izvornom vrednošću.
Zaokr. nagore radi CEILING:
Code: =CEILING(3*F1;1)
[ Siki 5 @ 28.05.2012. 14:13 ] @
Sada su se stvari dodatno iskompikovale. Zaokruživanje nije adekvatno ako se formula koju ste napisali smatra univerzalnom. Pokušao sam da objasnim šta se događa u prilogu na konkretnijim primerima.
Dopunjeno:
Neophodno bi bilo da svaka vrednost koja je ispod 4 ili 4 sati od 8 sati bude zaokružena na niži broj ,a svaka veća vrednost od toga treba da bude zaokružena na veći broj. U zadnjem primeru s obzirom da vrednost ne prelazi više od 4 sata preko 8 sati zaokruživanjem bi moralo da se dobije 1 ,a ne 2.
[Ovu poruku je menjao 3okc dana 28.05.2012. u 16:55 GMT+1]
[ djoka_l @ 28.05.2012. 14:56 ] @
Tebi, u stvari, treba funkcija ROUND, a ne CEILING. Ono što uvodi dodatnu komplikaciju je to što u slučaju kada je vreme 4 želiš da dobiješ 0, a ne 1. Slično, kod 12 sati odsustva treba da dobiješ 1, a ne 2.
Evo rešenja u prilogu.
Prvi deo formule round(A1*3) radi onako kako bi trebalo da radi formula kada ne bi bilo tvog zahteva da se 4 sati odsustva beleži kao 0 dana.
Drugi deo formule -ROUND(ROUND(A1*3,0)-ROUND(A1*3,1),0) oduzima 1 onda kada su sati 4+8*k k=0,1,2,...
Evo excela u prilogu (u donjoj tabeli je ispravna formula sa tvojim podacima, plus nekoliko mojih test primera)
[ 3okc @ 28.05.2012. 16:19 ] @
Možda je ovako još i jasnije:
Code: =INT(24*F16/8) + (F16>4/24)*(F16<8/24)
[ Siki 5 @ 28.05.2012. 17:36 ] @
Opet nešto nije u redu.Na nekim primerima tačno zaokružuje formula sa ROUND funkcijom,a na nekim formula sa INT funkcijom.Pokušao sam da objasnim u prilogu detalje.
Da pokušam da definišem problem ispočetka:
ako je neko odsutan 4 sata ili manje sa posla zaokružuje se na 0,
ako je preko 4 sata odsutan zaokružuje se na 1.
Npr.ako je konačni zbir u pretposlednjem primeru 15:59 to je vrednost veća od 12:00,a manja od 16:00 ,treba je zaokružiti na 2,isto kao i ako je vrednost 12:10 treba je zaokružiti na 2.
Ako je vrednost između 8:00 i 12:00 treba je zaokružiti na 1.Ćelije obojene u zeleno su vrednosti koje sam dodavao vašim primerima.
[Ovu poruku je menjao 3okc dana 28.05.2012. u 21:32 GMT+1]
[ djoka_l @ 28.05.2012. 20:00 ] @
Evo ti nova formula. Kod malih grešaka u zaokruženju nije dobro radilo
(ubaci umesto stare formule u G26)
=ROUND(F26*3,0)-IF(AND(TRUNC(F26*8*3)=F26*8*3, MOD(F26*3*8,8)=4),1,0)
[ 3okc @ 28.05.2012. 20:47 ] @
Code: =INT(24*F26/8) + ((8-MOD(24*F26;8))<4)
[ Siki 5 @ 29.05.2012. 15:55 ] @
Koliko sam uspeo da istestiram neke brojeve ovo izgleda baš kako je potrebno. U formuli sa funkcijom ROUND mogu da budu problem separatori,ovde je zarez,a obično je ;. Ovo bi ostalo nezavršeno bez nesebične pomoći moderatora i Đoke_ I,njima veliko HVALA.
Zbog veličine fajla ne mogu da ga "okačim" ali ako je nekom potrebno nešto od ove evidencije,ustupiću na korišćenje. Adresa je : [email protected]
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|