Ho un rompicapo non semplice da sottoporvi.
Devo pianificare mensilmente i turni di lavoro per dieci dipendenti (dalle
ore 00,00 alle 8,00; dalle ore 8,00 alle 16,00 e dalle ore 16,00 alle 24,00).
Tenuto conto che per ogni turno lavorano due dipendenti, vorrei creare con
un foglio elettronico di excel un prospetto mensile che indichi
automaticamente i nominativi delle persone che devono essere impiegate nei
rispettivi turni tenendo presente che ognuna di esse, in un anno, deve
(possibilmente):
a) svolgere lo stesso numero di turni mensili ; b) essere impiegata in
eguali giornate del sabato; c) essere impiegata in eguali giornate della
domenica;
d) essere impiegata in eguali turni notturni (dalle ore 00,00 alle ore
08,00); e) essere impiegata in eguali turni diurni (dalle ore 08,00 alle ore
16,00); f) essere impiegata in eguali turni serali (dalle ore 16,00 alle ore
24,00).
Es prospetto:
data giorno turno tipo turno nome
nome
01/01/05 sabato 08,00 16,00 diurno 1 persona 2^
persona
Faccio presente che con la funzione MATR.SOMMA.PRODOTTO mi sono creato un
prospetto col quale riesco a quantificare i turni mensili svolti da ogni
dipendente; i sabati e le domeniche in cui hanno lavorato etc..
Quale funzione di excel posso utilizzare che tenga conto delle risultanze
del suddetto prospetto e indichi automaticamente il nominativo della persona
da impiegare? Oppure se devo usare una routine di VB, mi sapreste indicare
come crearla?
Confidando nella vostra bravura vi saluto e vi ringrazio.
> Salve ragazzi.
Eccone uno!
Ciao snooze.
> Devo pianificare mensilmente i turni di lavoro per dieci dipendenti (dalle
> ore 00,00 alle 8,00; dalle ore 8,00 alle 16,00 e dalle ore 16,00 alle 24,00).
> Tenuto conto che per ogni turno lavorano due dipendenti, vorrei creare con
> un foglio elettronico di excel un prospetto mensile che indichi
> automaticamente i nominativi delle persone che devono essere impiegate nei
> rispettivi turni tenendo presente che ognuna di esse, in un anno, deve
> (possibilmente):
> a) svolgere lo stesso numero di turni mensili ; b) essere impiegata in
> eguali giornate del sabato; c) essere impiegata in eguali giornate della
> domenica;
> d) essere impiegata in eguali turni notturni (dalle ore 00,00 alle ore
> 08,00); e) essere impiegata in eguali turni diurni (dalle ore 08,00 alle ore
> 16,00); f) essere impiegata in eguali turni serali (dalle ore 16,00 alle ore
> 24,00).
Ipotizziamo un prospetto come il seguente:
| A | B | C | D | E | F | G | H | I | J | K | L |
---+-----------+----+----+----+----+----+----+----+----+----+----+-----+
1| |D | 73| 73| 73| 73| 73| 73| 73| 73| 73| 73|
2| |S | 73| 73| 73| 73| 73| 73| 73| 73| 73| 73|
3| |N | 73| 73| 73| 73| 73| 73| 73| 73| 73| 73|
4| |R | 146| 146| 146| 146| 146| 146| 146| 146| 146| 146|
5| |sab | 32| 32| 32| 32| 32| 32| 32| 32| 31| 31|
6| |dom | 32| 32| 32| 32| 32| 32| 32| 32| 31| 31|
7| | | | | | | | | | | | |
8| | |op1 |op2 |op3 |op4 |op5 |op6 |op7 |op8 |op9 |op10 |
9| 01/01/2005|sab |D |D |S |S |N |N |R |R |R |R |
10| 02/01/2005|dom |S |S |N |N |R |R |R |R |D |D |
11| 03/01/2005|lun |N |N |R |R |R |R |D |D |S |S |
12| 04/01/2005|mar |R |R |R |R |D |D |S |S |N |N |
13| 05/01/2005|mer |R |R |D |D |S |S |N |N |R |R |
D sta per DIURNO
S sta per SERALE
N sta per NOTTURNO
R sta per RIPOSO
sab sta per SABATO
dom sta per DOMENICA
le date si allungano fino alla fine dell'anno (riga 373).
selezionando C9:L13 e trascinando verso il basso dovresti
ottenere tutti i turni.
Le formule:
| C |
--+--------------------------------------------+
1|=CONTA.SE(C$9:C$373;$B1) |
2|=CONTA.SE(C$9:C$373;$B2) |
3|=CONTA.SE(C$9:C$373;$B3) |
4|=CONTA.SE(C$9:C$373;$B4) |
5|=SOMMA(($B$9:$B$373=$B$5)*(C$9:C$373<>"R")) |
6|=SOMMA(($B$9:$B$373=$B$5)*(C$9:C$373<>"R")) |
da trascinare fino alla colonna L
In B9:=TESTO(A9;"ggg")
da trascinare fino in fondo.
le prime 6 righe, come hai già notato, contengono i conteggi.
Potrebbe corrispondere alle tue specifiche?
Attendo ...
()-- cucchiaino
La dritta che mi hai dato funziona perfettamente. Sei un grande.
Ne approfitto per chiederti un’altra cosa:
ho il seguente prospetto:
dipend. turni sab dom festivi diurni
serali notti
svolti lavorati lavorate lavorati lavorati
lavorati lavorate
A 3 1 1 0 0 0 1
B 3 0 1 0 1 1 0
C 3 1 0 1 0 1 0
e devo stabilire a chi spetta il turno successivo.
La mia domanda è questa:
in una cella di un’altro prospetto, è possibile inserire una funzione (o
anche tramite una routine di VB) per mezzo della quale excel esamini il
suddetto prospetto e, in automatico, indichi sulla base di tutte le
condizioni (nr. Turni; nr. Sab; nr. Dom; nr. Fest etc. ) a quale dipendente
spetti espletare il successivo turno di sabato? E, a parità di condizioni,
indichi il nome del dipendente che ha svolto lo stesso turno in data più
anteriore? (Es. A, B e C hanno svolto tre turni di sabato: “A” lo ha fatto
il 3 gennaio “B” il 3 febbraio e “C” il 3 marzo. Il successivo sabato spetta
farlo ad “A”)!
Spero di essere stato chiaro e grazie tante.
"cucchiaino" ha scritto:
> Ciao Cucchiaino
ciao snooze.
> Ne approfitto per chiederti un’altra cosa:
>
> ho il seguente prospetto:
>
> dipend. turni sab dom festivi diurni
> serali notti
> svolti lavorati lavorate lavorati lavorati
> lavorati lavorate
> A 3 1 1 0 0 0 1
> B 3 0 1 0 1 1 0
> C 3 1 0 1 0 1 0
>
> e devo stabilire a chi spetta il turno successivo.
>
> La mia domanda è questa:
>
> in una cella di un’altro prospetto, è possibile inserire una funzione (o
> anche tramite una routine di VB) per mezzo della quale excel esamini il
> suddetto prospetto e, in automatico, indichi sulla base di tutte le
> condizioni (nr. Turni; nr. Sab; nr. Dom; nr. Fest etc. ) a quale dipendente
> spetti espletare il successivo turno di sabato? E, a parità di condizioni,
> indichi il nome del dipendente che ha svolto lo stesso turno in data più
> anteriore? (Es. A, B e C hanno svolto tre turni di sabato: “A” lo ha
> fatto il 3 gennaio “B” il 3 febbraio e “C” il 3 marzo. Il successivo
> sabato spetta farlo ad “A”)!
Il tuo prospetto non è adatto per ottenere quello che chiedi, mancano,
per esempio le date, mancano le combinazioni a tre:
giorno (lun, mar, mer, ...)
festivo (si, no)
periodo del giorno (diurno, seriale, notturno)
Dimmi, piuttosto com'è strutturato lo storico dei turni svolti.
Per esempio, con le 4 seguenti intestazioni:
dipendente
data
periodo del giorno (D, S o N)
festivo (flag)
Ciao.
()-- cucchiaino
Questo è lo storico del prospetto:
TURNI LAVORATIVI
turni data giorni fest turni diur ser nott Dipend.
1° 1.1.2005 SAB FEST 0,00 8,00 D A B C
2° 3.1.2005 LUN 16,00 24,00 S D E
3° 5.1.2005 MER 8,00 16,00 N F G H
4° 6.1.2005 GIO FEST 8,00 16,00 D (?*)
Come vedi, non tutti i giorni ci sono turni da espletare perché avvengono
sulla base di determinate esigenze.
Anche i turni non sono consequenziali (es 0,00/08,00; 08,00/16,00;
16,00/24,00) ma, a seconda delle necessità, si possono verificare in
sequenza due diurni, un notturno, due serali etc., senza una regola fissa.
Tieni conto che i dipendenti di notte sono in tre, mentre nel diurno o
serale in due.
I dati del suddetto prospetto (ne compilo uno per ogni mese), vengono poi
riportati in quello seguente dove vengono riepilogati: il numero dei turni
svolti da ogni dipendente; i sabati in cui hanno lavorato; le domeniche, i
festivi etc.
dipend. turni sab dom festivi diurni serali notti
A 1 1 0 1 1 0 0
B 1 1 0 1 1 0 0
C 1 1 0 1 1 0 0
Quindi se excel riuscisse, in automatico, a stabilire a quale dipendente
(che sono in tutto 7) tocca fare il turno (?*) mi eviterebbe l’analisi dei
dati che, a fine mese, diventa molto laboriosa.
Se è possibile, prevedere anche una “forzatura” nel caso in cui un
dipendente è per esempio ammalato o assente e devo sostituirlo con un altro..
Ciao e tante grazie.
"cucchiaino" ha scritto: