|
[ pondeke @ 15.10.2013. 20:07 ] @
| U prilogu sam okacio primjer, original tabelu. Potrebno je da ID brojeve pretvorim u imena, dolje postoji spisak ID brojeva sa imenima. Unaprijed zahvalan.
Edit: Vlookup sam odradio sinoc, nije to to, premnogo pomocnih tabela. Postoji li neka funkcija kontra Vlookup-a, da napravim na primjer jedno polje u koje bih ukucavao imena koja bi automatski mijenjala ID brojeve kroz cijelu tabelu.
[Ovu poruku je menjao pondeke dana 15.10.2013. u 21:58 GMT+1] |
[ ib.kroki @ 16.10.2013. 02:23 ] @
Ja sam nešto uradio. Imaš makro (startuje se na dugme) koji menja u celom listu sve brojeve identične broju u polju D26 sa imenom u polju E26 (podaci koji se menjaju obojeni su).
Kada izmeni, briše ih sa spiska i možeš sledeću promenu uraditi.
[ Jpeca @ 16.10.2013. 08:06 ] @
Na osnovu tvog primera nisam video zašto bi bilo puno pomoćnih tabela sa VLOOKUP.
Imaš jednu pomoćnu tabelu za parove id - ime, nazovimo je KonvTbl
Na novom listu kopiraš praznu tabelu (samo zaglavlje)
U praznu tabelu uneseš formulu
Code: =VLOOKUP(OKTOBAR!A3;KonvTbl;2;FALSE)
I kopiraraš ovu formulu kroz celu novu tabelu
Dobićeš tabelu u kojoj us svi ID zamenjeni za imenima.
Formule sad možeš da zaveniš sa vrednostima (Copy-PasteSpecial Values) i obrišeš originalni list sa id-ijevima
Jedino što tako mora za svaki mesec.
Ako je to problem i to može da se reši davanjem odgovarajućih naziva listova - npr. redni broj meseca. Izvučeš naziva lista u ćeliju (vidi http://www.elitesecurity.org/t141064-0#333257) pa na osnovu tog naziva lista u nekoj ćeliji nazovimo je SheetName formiraš tekst za mesec - što je prema tvom primeru naziv originalnog lista.
Sad možeš da koristiš tako dobijenog naziv originalon lista u vlookup formuli
Datume u zaglavlju napravi da ti se dinamički kreiraju na osnovu naziva lista
Nakon toga možeš da kopiraš list sa formulama i dodeljuješ nazive 1 za januar, 2 za februar itd.
[ pondeke @ 16.10.2013. 10:07 ] @
ib.kroki, ovo sto si ti odradio je upravo to sto mi konkretno treba. Zamolio bih te ako mozes ispravit kod da moze sve na "click" da se odradi, a ne jedno po jedno i da se nista ne brise. Neka ostanu dolje i ID brojevi i imena. Dosta cesto se vrse ispravke, zato mi odgovara da se ne brisu ID i imena.
Peco, ova tvoja vlookup formula je za mene previse, odradio sam onaj najobicniji primjer, gdje sam pored svakog ID dodavaoo tabelu u koju sam rucno unosio ID broj da bih preko vlookup dobio ime, izmlatio sam se dva tri dana dobro a nista uradio nisam. Ovo sto si ti odradio je odlicno i bice jako korisno i za ovaj primjer kao i za masu drugih.
Veliko hvala obojici!
[ ib.kroki @ 16.10.2013. 11:10 ] @
Citat: pondeke: Zamolio bih te ako mozes ispravit kod da moze sve na "click" da se odradi, a ne jedno po jedno i da se nista ne brise. Neka ostanu dolje i ID brojevi i imena.
Izvini, ali ne umem. Ja sam skoro nešto malo naučio da "čačkam" VB u excelu. Mislim da to nije problem i nadam se da će ti to @Jpeca prepraviti.
Meni je za VB dosta pomogao @FOX028.
[ Jpeca @ 16.10.2013. 12:11 ] @
Evo dodao sam u rešenju koji je postavio ib.kroki petlju Do while LEN(Selection.Text) > 0 ... Loop tako da se zamena ponavlja dok se ne dodje do prazne ćelije. Nije kako bih ja odradio u VBA ali možda može da posluži
[ pondeke @ 16.10.2013. 12:49 ] @
E ovo je vrh, kako radi dobro, hvala po ko zna koji put.
Edit: Peco, imam jos jedan problem, moze li se ovo napravit da valja ...
[Ovu poruku je menjao pondeke dana 16.10.2013. u 14:58 GMT+1]
[Ovu poruku je menjao pondeke dana 16.10.2013. u 14:59 GMT+1]
[Ovu poruku je menjao pondeke dana 16.10.2013. u 15:00 GMT+1]
[ pondeke @ 17.10.2013. 10:33 ] @
Peco, mozes li me makar usmjeriti kako da rijesim ovaj problem? nije ovo jednostavno da se poklope i datumi i smjene ...
[ elektroing @ 17.10.2013. 12:01 ] @
Evo resenja.
Sve rade bez macroa.
Tabela je napravljena za sest radnika, ako postoji puno radnika tebala se komplikuje.
[ pondeke @ 17.10.2013. 13:09 ] @
Ekstra, odusevljen sam. Vidim da je napravljeno za 6 prvih, mene treba za 25 ? Smjenski je rad, ne rade svi, svaki dan. Smjene idu 4-6-6, a nekad i 4-5-5, u 1 smjenu cetvoro, u 2 i 3 po 6 a nekad i po petoro zavisno od situacije.
[ Jpeca @ 17.10.2013. 14:38 ] @
Pošto već imaš makroe, moguće je jedno rešenje je pomoću VBA koda. Postavio sam u prilogu pa probaj. Treba pozvati makro Prepisi da se izvrš prepis id-jeva sa lista ID na list Oktobar. Stavio sam komentare u kodu. Sad nemam vremena za detaljnije objašnjenje koda
Problem da VBA kodom jer on često zahteva neke sitne prepravke nova kolon ili sl , pa ako nemaš iskustva moraćeš stalno negog da cimaš.
Zbog toga sam dao i alternativno rešenje pomoću formula na list Oktobar Formule
Za ovo rešenje je bitno da li uvek imaš (do) šest radnika po smeni?. Ako je tako onda možeš da koristiš korisničku funkciju Nth_Occurrence koju sam preuzeo sa sajta http://www.ozgrid.com/Excel/find-nth.htm
Ova funkcije nalazi n –to pojavljivanje zadatog stringa u opsegu
Znači ideja je da zadamo kolonu za 1-Okt i onda tražimo prvo, drugo, treće… šesto pojavljivanje u toj koloni broja 1 (prvu smenu). Kad nađemo odgvarajuću ćeliju uzima se tekst iz kolone A u istom redu. (offset_row = 0, offset_column = -1)
Konkretno za drugo pojavljivanje smene 1 u koloni 1-okt biće
Code: =Nth_Occurrence(ID!B$8:B$412;1;2;0;-1)
Traži u opsegu B8 do B412 - obrati pažnju na kombinaciju relativnog i apsolutnog indeksiranja kako bi se formula kopirala
1 - Traži se prva smena
2- drugo pojavljivanje u koloni
0 - isti red
-1 vraća kolonu ispred znači 103 (B kolonu sam izbacio)
Da bi ovu formulu mogli da kopiramo sa sve redove i kolone (ja sam uradio samo prva dva dana, prve dve smene) potrebno je obezbediti podatak sa zmenu i redni broj pojavljivanja i njih sam dodao u pomoćnim kolonama B i C koje možeš naknadno sakriti ako ti smetaju
Problem rešenja sa formulom je makro za Replace - on neće raditi sa formulama nego je potrebno da sve rezultate prvo pretvoriš u vrednosti pa tek onda makro
Medjutim ako je potrebno dobiti imena umesto ID, onda je lako na listu ID dodti imena pored i u formalama se referencirati na ime umesto ID - onda je makro ne potreban
Napomene:
Na listu ID nemaš datume. Niz 1, 2 … su redni brojevi. Ukoliko je potrebno da to uparuješ sa datumima treba postaviti da i to budu datumi. Onda preko custom formata možeš da prikažeš samo 1, ili nazive dana pon, uto. Napravio sam ti to u primeru, mada za ovo rešenje nisam koristio, nego situaciju da je redosled kolona po datumima isti na lisut ID i Oktobar.
Nema razloga da preskaces kolone, a pogoova da ih mergujes. To otežava pravljenje formula. Uvek možeš da proširiš kolonu po potrebi. Obrisao sam kolonu B na listu ID.
[ elektroing @ 17.10.2013. 15:44 ] @
@Jpeca ti je nasao resenje sto se trazio.
Za konverziju id u ime dodas jos vlookup funkciju.
Code:
=VLOOKUP(Nth_Occurrence(ID!B$7:B$413;$B2;$C2;0;3-COLUMN());$G$25:$H$100;2;FALSE)
[ pondeke @ 17.10.2013. 16:15 ] @
Veliko hvala obojici, sad idem da sve ovo fino ispratim, odlicni primjeri, svaka cast!
[ pondeke @ 17.10.2013. 17:41 ] @
Ima jedan problem, ako na primjer u 1 smjeni rade samo 2 radnika, u tabeli se oni dupliraju na dva mjesta, ista stvar je i za 2 i 3 smjenu? Tabela je odlicna kad su smjene sve fulirane, medjutim problem je, sto skoro pa nikad nisu, cesti su izostanci, bolovanja itd. Posto je to tabela koja se stampa dosta cesto, jer se stalno rade ispravke rasporeda, odgovaralo bi da se ne javlja pomenuto dupliranje. Evo primjer dupliranja
[ elektroing @ 18.10.2013. 08:17 ] @
Evo formula bez dupliranja.
Code:
=IF(COUNTIF(ID!B$8:B$142;1)>=$C2;(VLOOKUP(Nth_Occurrence(ID!B$7:B$413;$B2;$C2;0;3-COLUMN());$G$25:$H$100;2;FALSE));"")
[ Jpeca @ 18.10.2013. 12:33 ] @
U pravu si . Funkcija Nth_Occurrence ako ne nađe odgovarajuće pojavljivanje kreće pretragu iz početka pa se javljaju duplirani podaci. Npr ako tražimo peto pojavljevanj 1 u opsegu a ima tri jedince naći će se drugo pojavljevanje.
Ja sam funkciju našao i kao takvu preuzeo, nisam je detaljnije testirao. (Makro koji sam postavio nema taj problem)
Kako mi se ovo mi se ne čini logično ponašanje funkcije, prepravio sam funkciju da vraća NA ukoliko ne nađe odgovarajuće pojavljivanje. (Za tebe bi bilo bolje da vrati prazan string, ali zbog logike same funkcije čini mi se bolje ovako)
Dodao sam kolonu sa imenima na list ID, pa sad možeš da dobiješ ime direktno kao rezultat funkcije Nth_Occurence.
Inače umesto koristničke funkcije može se napraviti i formula koja bi (koristeći ugrađene funkcije) radila isto http://www.bettersolutions.com/excel/EUV214/LN031821611.htm, ali je formula dosta komplikovana, pa zbog potrebe kopiranja čini mi se nepogodna za odražavanje. Zato sam ostavio rešenje sa korisničkom funkcijom.
[ pondeke @ 18.10.2013. 17:08 ] @
Perfect!!! Interesuje me moze li se u funkciji dodat i neka druga vrijednost za pretragu, na primjer uz smjene 1,2,3 da nadje i praznicne smjene npr. PR1,PRK2,PRK3. Probao sam uz 1 da dodam i ;PR1, ne radi?
[ Jpeca @ 18.10.2013. 20:13 ] @
Moze tako što bi praznične smene ubacio kao posebne sekcije. Bitno je da u koloni B ručno upišeš PR1, PR2 itd za odgvarajuće smene - isto kako je uneto na listu ID sa koga se pretražuje. Formule ostaju iste.
Makro treba prepraviti da se dodaju praznične smene sa odgovarajućim početni i krajnjim redom
[ pondeke @ 18.10.2013. 21:55 ] @
Kad se dodaju praznicne, nije vise to ta tabela koja je ok, ostaje macro varijanta kao jedino moguce resenje, ako budes imao vremena i zivaca....
[ elektroing @ 19.10.2013. 08:18 ] @
Citat: pondeke:
Perfect!!! Interesuje me moze li se u funkciji dodat i neka druga vrijednost za pretragu, na primjer uz smjene 1,2,3 da nadje i praznicne smjene npr. PR1,PRK2,PRK3. Probao sam uz 1 da dodam i ;PR1, ne radi?
Ovo sto ti hoces radi i na prezadnjem primjeru sto je je Jpeca poslao bez dodavanja dodatnih kolona i izmjena koda.
[ pondeke @ 19.10.2013. 09:47 ] @
Neka sto radi za 1 i za PR1, no radi za sve moguce varijante uz dodavanje 1. Cim Jpeca prepravi macro i za PR1,PR2,PR3 fino cu sredit sve i okacit odje, mislim da ce valjat mnogima.
[ pondeke @ 21.10.2013. 14:59 ] @
Evo da izbacim, pa mogu rec skoro kao finalni, ali radi kao finalni....
[ Jpeca @ 22.10.2013. 10:25 ] @
Evo probaću da prepravim makro, samo da proverim da li sam razumeo
Ako je za Marko upisano PR2 za 3-sept treba da se pre se u rasporedu za 3-sep upiše Marko u smenu II? Odnosno u rasporedu se ne vidi da je to
Za GO, BL, SL ostaviti prazno prilikom prepisavanja u raspored?
[ pondeke @ 22.10.2013. 13:26 ] @
Provjerio sam, sve je perfect!! U mom slucaju ID tabela je bitna jer se ona na kraj mjeseca predaje u racunovodstvo, a onda oni dalje obracunavaju plate. Oni imaju program za tu namjenu. Na mene je da napravim mjesecni zavrsni spisak, koliko je ko radio,praznici, nocni rad, kad je ko na odmor, bolovanje, slave. Ove ostale tabele sluze za organizaciju smjenskog rada sa radnicima koji su prisutni u toku mjeseca. Tabele sa formulama kao i tabela sa macroom, prepisuje samo one osobe koje zaista i rade, a to svi oni koji za koje su unesene smjene 1,2,3 ili PR1,PR2,PR3. Za one gdje im pise GO, BO, SL., su to to neradni dani, i ne prepisuju se u tabele za smjenski rad, sto je i normalno jer ne rade. Bitno je da se vrsi prepis samo onih radnika koji rade. Jpeco ova zadnja tabela sto si je postavio je i finalna, tabela ima prepis i sa formulama i sa macroom. Interesuje me jos jedna stvar, postoji li mogucnost da se radnicima dodjeljuje iz smjene u smjenu drugo radno mjesto? to su sve ista radna mjesta, samo su pozicije drugacije, zato sam i ostavio one redove izmjedju smjena. Evo primjer, gdje se vidi da Marko na radi na radnoj stanici 10, 1 oktobra, a drugoga na stanici 20. Stanica ima 6, mogu li svi zaposleni automatski iz dana u dan dobijati razlicite stanice, redom od 10 do 60 do kraja mjeseca ?
edit: napravio sam neku matricu, tj., izvrtio sam i ubacio u tabelu rucno od 10 do 60, redom sve kombinacije do kraja mjeseca, i nije to lose toliko, ali jes problem kad rade na primjer petoro a matrica je za sestoro. Ne znam uopste jel to moguce i odraditi nekako. To bi bilo neko resenje koje prati zaposlenog cio mjesec, bez obzira na slobodne dane, da formula nastavlja da mu dodjeljuje stanice koje su definisane od 10 do 60 ili od 1 do 6 nebitno, s tim da ako radi petoro da dodjeluje stanice redom za petoro a ne sestoro, bez obzira sto je definisano od 10 do 60.. Ako je na primjer radio prvoga oktobra na stanici 1, a onda ode na slobodne dane, pa pocne petoga, da automatski dobije redom stanicu 2, 3 itd dokle god se pojavljuje na spisak. Na taj nacin bi uvijek radio na razlicite stanice, kad god da pocne.
[Ovu poruku je menjao pondeke dana 22.10.2013. u 15:32 GMT+1]
[Ovu poruku je menjao pondeke dana 22.10.2013. u 19:44 GMT+1]
[Ovu poruku je menjao pondeke dana 22.10.2013. u 19:49 GMT+1]
[ elektroing @ 23.10.2013. 17:05 ] @
Evo nekog moguceg resenja, al se moze desit da dva radnika rade na istu masinu.
[ pondeke @ 23.10.2013. 21:24 ] @
Nije ok, ima dosta dupliranja. Mozes li pogledat ovaj primjer sa matricom, cini mi se da nema dupliranja. Plus sto mi je jako bitno, mogu tacno da odredim koje stanice treba da rade. Dosta cesto se javljaju i kvarovi na neke stanice, desi da ne rade neko vrijeme. A onda imam na raspolaganju na primjer stanice 1,2,3, 5 i 6. Cetvorka ne radi, tako da opet mogu odradit istu matricu ali bez cetvorke. Evo primjer pa vidi kako ti se cini.
[ elektroing @ 25.10.2013. 09:04 ] @
Dodata linija koda.
Code: ActiveSheet.Cells(rw, col + 1).Value = Sheets("MATRICA ZA STANICE").Cells(rw - 1, col / 2 + 1).Value
[ pondeke @ 25.10.2013. 15:07 ] @
Nece da prebaci zaposlene iz ID u raspored za 6,7 i 12 mjesec...
[ elektroing @ 25.10.2013. 16:14 ] @
Samo prosiri kolonu da stane pun naziv.

[ pondeke @ 25.10.2013. 20:43 ] @
izludjeh vise, decembar oce, jun i jul nece pa nece, kakva je ovo greska?
Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|