| | Post: 14 | Registrato il: 09/11/2015
| Utente Junior | 2013 | | OFFLINE | |
|
27/06/2018 19:26 | |
Buonasera a tutti,
ho un problema con una tabella che allego alla discussione:
ho bisogno di sapere, con una formula, se Rossi ha lavorato in 2 appalti diversi nella stessa data, per di piu sapere anche se ha fatto degli orari che si sovrappongono, che poi è la situazione che si palesa con il dipendente Bianchi che lavora nello stesso giorno in orari sovrapposti.
AIUTO !!!
Attendo la vostra immensa disponibilità supportata dalla vostra grandiosa conoscenza. [Modificato da Peppe Capano 27/06/2018 19:31] |
|
| | Post: 203 | Registrato il: 15/01/2016
| Città: ROMA | Età: 51 | Utente Junior | 2016 | | OFFLINE |
|
27/06/2018 22:23 | |
Buonasera
Credo che dovresti allegare il file con i risultati che vuoi ottenere scritti a mano che da quella tabella si possono estrarre i nomi gli orari o altro però prima di fare formule che poi magari non soddisfano le aspettative è meglio avere chiaro cosa bisogna fare |
| | Post: 14 | Registrato il: 09/11/2015
| Utente Junior | 2013 | | OFFLINE | |
|
28/06/2018 06:17 | |
Buonasera,
allego file come vorrei che risultasse.
Attendo gentilmente vostre |
| | Post: 5.435 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
28/06/2018 06:44 | |
Ciao una mia semplice soluzione con la formattazione condizionale, in questo modo controlli visivamente se ci sono sovrapposizioni, ma attenzione alle date, la sovrapposizione può essere una data,appalto, operatore, diverso.
credo che dovresti prima ordinare per date, oltre l'appalto ed il dipendente.
questa la formula da inserire nella formattazione condizionale, attenzione ad i riferimenti(segno del dollaro)
allego il file
Ciao By Sal
[Modificato da by sal 28/06/2018 06:44] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 15 | Registrato il: 09/11/2015
| Utente Junior | 2013 | | OFFLINE | |
|
28/06/2018 13:45 | |
Ciao Sal,
io vorrei che il il valore della colonna "esito" variasse in funzione dell'avverarsi delle eccezioni sopra scritte, quindi se Bianchi ha lavorato dalle 6 alle 9 a venezia e qualora venisse inserito un nuovo record con almeno una delle eccezioni, la cella della colonna "esito" relativa a quel record deve riportarti se ha lavorato in orari accavallati nel caso della stessa giornata e/o se ha lavorato in 2 appalti nella stessa gioranta, o adirittura se entrambe le situazioni.
Spero di essere stato chiaro.
|
| | Post: 5.437 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
28/06/2018 15:01 | |
Ciao La tua richiesta riguardava la sovrapposizione di orario.
Comunque con le formule non so se riesco ad ottenere ciò che vuoi come te la cavi con il VBA, potrei proporti una macro.
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 16 | Registrato il: 09/11/2015
| Utente Junior | 2013 | | OFFLINE | |
|
28/06/2018 17:58 | |
Ciao Sal,
va bene, la elaboriamo assieme mano mano.
Grazie davvero |
| | Post: 3.569 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
29/06/2018 03:00 | |
Dovrebbe funzionare ad una sola condizione.
La tabella deve essere ordinata con queste tre regole:
1) Per data
2) Per dipendente
3) Per Appalto
In F2 vedi allegato il forum la taglia [Modificato da raffaele1953 29/06/2018 03:03] Excel 2013 |
| | Post: 5.438 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
29/06/2018 11:21 | |
Ciao ecco il file con la macro, ho notato che le entrate ed uscite non vengono inserite in formato orario, mi sono attenuto a quel formato.
Raffaele, ciao la tua formula non funziona bene in quanto da il risultato prima che si inseriscono le entrate ed uscite, almeno a me da quel risultato.
il file non ha bisogno di ordinamento basta inserire la data,cantiere,dipendente, entrata ed uscita.
quando si inserisce l'uscita parte la macro che da il risultato controllando giorno, cantiere, dipendente e sovrapposizioni orari, riportando l'esito nella colonna "F", la formattazione condizionale a questo punto è un di più, l'ho lasciata tanto per.
una sola cosa controlla soltanto il nuovo inserimento, se si vogliono aggiornare quelli già inseriti devo modificare la macro.
questa le macro sono 2 una nel modulo del foglio, l'altra in un modulo Standrd
Modulo del foglio
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r, c, d
r = Target.Row
c = Target.Column
If Not Intersect(Target, [E:E]) Is Nothing Then
If r = 1 Then Exit Sub
d = Target
Call Controlla(Cells(r, 1), Cells(r, 2), Cells(r, 3), Cells(r, 4), d, r)
End If
End Sub
Modulo Standard
Sub Controlla(d1, d2, d3, d4, d5, rr)
Dim r, c, x, y, d, m1, m2, n1, k4, k5
m1 = "LAVORATO SU PIU APPALTI E IN ORARI SOVRAPPOSTI"
m2 = "ORARI SOVRAPPOSTI"
For x = 2 To Cells(Rows.Count, 1).End(xlUp).Row - 1
k4 = Cells(x, 4): k5 = Cells(x, 5)
'controlla data e dipendente
If Cells(x, 1) = d1 And Cells(x, 3) = d3 Then
n1 = ""
Application.EnableEvents = False
'controlla sovrapposizione orario stesso cantiere
If Cells(x, 2) = d2 Then
For y = k4 To k5
If y = d4 Then n1 = 1
If y = d5 Then n1 = 1
Next y
If n1 = 1 Then Cells(rr, 6) = m2
End If
'controlla cantiere ed orari sovrapposti
If Cells(x, 2) <> d2 Then
For y = k4 To k5
If y = d4 Then n1 = 1
If y = d5 Then n1 = 1
Next y
If n1 = 1 Then Cells(rr, 6) = m1
End If
End If
Next x
Application.EnableEvents = True
End Sub
Peppe fai le prove può essermi sfuggito qualcosa
allego il file
Ciao By Sal
[Modificato da by sal 29/06/2018 11:26] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 3.571 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
29/06/2018 12:04 | |
>>>Raffaele, ciao la tua formula non funziona bene
Grazie by sal, sbagliare è una mia priorità. Basta mettere questa, dopo al posto di 33333 mettere l'altra (spero funzioni).
=SE(E(D2="";E2="");"";33333) Excel 2013 |
| | Post: 18 | Registrato il: 09/11/2015
| Utente Junior | 2013 | | OFFLINE | |
|
29/06/2018 12:32 | |
Ciao Sal,
ho rilevato un caso di errore: inserisco in celle D3 ed E3 orari diversi e non sovrapposti alle celle D2 ed E2, inserisco Roma in B3, il risultato della cella F3 dovrebbe essere LAVORATO SU PIU APPALTI invece non restituisce nulla.
Attendo tue |
| | Post: 5.439 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
29/06/2018 15:17 | |
Ciao La data qual'è?
dammi tutti i dati della riga che faccio io le prove, per vedere
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 19 | Registrato il: 09/11/2015
| Utente Junior | 2013 | | OFFLINE | |
|
29/06/2018 15:22 | |
Ciao Sal, ho rifatto il file con i 3 risultati che vorrei ottenere ogni volta che inserisco un nuovo record.
[Modificato da Peppe Capano 29/06/2018 15:23] |
| | Post: 5.440 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
29/06/2018 16:13 | |
Ciao Peppe, eccoti il file con la modifica, ho inserito la 3° voce.
Comunque quanto Lavora su più appalti anche se non ha sovrapposizione di ore ti riporta che ha lavorato su più appalti.
Controlla sempre.
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 20 | Registrato il: 09/11/2015
| Utente Junior | 2013 | | OFFLINE | |
|
29/06/2018 16:24 | |
Ciao Sal, perdonami ma sono ignorantissimo in materia, se inserisco altri record che soddisfano le eccezioni trattate non succede nulla, in pratica se inserisco un dipendente "ROSSI" che lavora a "ROMA" il 01/06/2018 e fa ORARI SOVRAPPOSTI, nella cella adiacente della colonna F non appare nulla...è normale ? se no, come si attiva? |
| | Post: 5.442 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
29/06/2018 16:51 | |
Ciao se inserisci una nuova data con nuovo appalto e nuovo dipendente non da nessun riscontro in quanto precedentemente non ci sono dati per la data.
esempio
1/6/18-venezia-rossi-6-12, nessun riscontro
1/6/18-roma-rossi-13-15, qui indica che ha lavorato su 2 appalti diversi
1/6/18-venezia-rossi-12-16, qui indica che ci sono orari sovrapposti
1/6/18-roma.rossi-15-16, qui indica che ci sono appalti diversi e orario sovrapposto
il controllo parte quando inserisci l'uscita cioè 12-15-16-16
quando inserisci l'orario di uscita in automatico parte la macro che fa il controllo prima sulla data e nome, poi su sovrapposizione orario e poi su sovrapposizione orario e appalti diversi.
Ciao By Sal
ti invio un mp controlla le mail
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 21 | Registrato il: 09/11/2015
| Utente Junior | 2013 | | OFFLINE | |
|
29/06/2018 17:26 | |
Ciao Sal,
ti ho risposto al tuo mp e comunque purtroppo continua a non attivarsi nulla.
Non capisco perché... |
| | Post: 22 | Registrato il: 09/11/2015
| Utente Junior | 2013 | | OFFLINE | |
|
01/07/2018 16:32 | |
Ciao Sal,
ci sarebbe la possibilità di avere la tua versione della macro in formato "formula matriciale" ?
Attendo tue e dal forum |
| | Post: 23 | Registrato il: 09/11/2015
| Utente Junior | 2013 | | OFFLINE | |
|
01/07/2018 16:44 | |
raffaele1953, 29/06/2018 12.04:
>>>Raffaele, ciao la tua formula non funziona bene
Grazie by sal, sbagliare è una mia priorità. Basta mettere questa, dopo al posto di 33333 mettere l'altra (spero funzioni).
=SE(E(D2="";E2="");"";33333)
Ciao Raffaele,
questo il problema che mi si presenta quando inserisco la tua formula, che in alcuni casi restituisce esiti corretti, ma in altri come questo qui sotto, restituisce esiti non corretti:
DATA PUNTO VENDITA SOCIO LAVORATORE ENTRATA USCITA ESITO
lunedì 4 giugno 2018 MILANO BIANCHI 14 18
martedì 5 giugno 2018 MILANO BIANCHI 21 24 ORARI SOVRAPPOSTI
martedì 5 giugno 2018 MILANO BIANCHI 6,45 9,45 ORARI SOVRAPPOSTI
mercoledì 6 giugno 2018 MILANO BIANCHI 0,45 2,45
Attendo tue [Modificato da Peppe Capano 01/07/2018 16:51] |
| | Post: 1.639 | Registrato il: 10/10/2013
| Città: VICENZA | Età: 69 | Utente Veteran | 365 | | OFFLINE |
|
01/07/2018 18:01 | |
ciao
varia la macro in foglio 1
in
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r, c, d
r = Target.Row
c = Target.Column
If Not Intersect(Target, [D:E]) Is Nothing Then
If r = 1 Then Exit Sub
d = Target
Call Controlla(Cells(r, 1), Cells(r, 2), Cells(r, 3), Cells(r, 4), d, r)
End If
End Sub
la parte in rosso da cambiare
fai così il controllo sia in entrata che in uscita
funziona bene
complimenti a by sal
nb
è lapalissiano che se le date non coincidono
non ti darà risposa |
| | Post: 24 | Registrato il: 09/11/2015
| Utente Junior | 2013 | | OFFLINE | |
|
01/07/2018 18:46 | |
federico460, 01/07/2018 18.01:
ciao
varia la macro in foglio 1
in
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r, c, d
r = Target.Row
c = Target.Column
If Not Intersect(Target, [D:E]) Is Nothing Then
If r = 1 Then Exit Sub
d = Target
Call Controlla(Cells(r, 1), Cells(r, 2), Cells(r, 3), Cells(r, 4), d, r)
End If
End Sub
la parte in rosso da cambiare
fai così il controllo sia in entrata che in uscita
funziona bene
complimenti a by sal
nb
è lapalissiano che se le date non coincidono
non ti darà risposa
Ciao Federico,
ad un certo punto appena premo su f5 per avviare la macro, mi apre una finestra di dialogo nella quale dovrebbe apparire la macro ma non la vedo, sai come mai?
|
| | Post: 25 | Registrato il: 09/11/2015
| Utente Junior | 2013 | | OFFLINE | |
|
01/07/2018 18:46 | |
federico460, 01/07/2018 18.01:
ciao
varia la macro in foglio 1
in
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r, c, d
r = Target.Row
c = Target.Column
If Not Intersect(Target, [D:E]) Is Nothing Then
If r = 1 Then Exit Sub
d = Target
Call Controlla(Cells(r, 1), Cells(r, 2), Cells(r, 3), Cells(r, 4), d, r)
End If
End Sub
la parte in rosso da cambiare
fai così il controllo sia in entrata che in uscita
funziona bene
complimenti a by sal
nb
è lapalissiano che se le date non coincidono
non ti darà risposa
Con cosa andrebbe variata la parte in rosso? |
| | Post: 3.577 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
01/07/2018 22:25 | |
Ciao a tutti
Si, inoltre suggerisco agli esperTi di fare pure un ORDINA nel VBA
Premesso che non esiste il 24 (casomai sarebbe zero).
Sarebbe meglio inserire direttamente degli orari, invece di numeri.
La mia formula andava bene prima, dopo hai aggiunto un'altra opzione e ho desistito.
Faccio notare che se esistono orari che finiscono a mezzanotte ed oltre, devi farlo presente sul forum.
Comunque meglio il VBA invece delle formule per fare questo confronto. Excel 2013 |
| | Post: 26 | Registrato il: 09/11/2015
| Utente Junior | 2013 | | OFFLINE | |
|
02/07/2018 14:38 | |
raffaele1953, 01/07/2018 22.25:
Ciao a tutti
Si, inoltre suggerisco agli esperTi di fare pure un ORDINA nel VBA
Premesso che non esiste il 24 (casomai sarebbe zero).
Sarebbe meglio inserire direttamente degli orari, invece di numeri.
La mia formula andava bene prima, dopo hai aggiunto un'altra opzione e ho desistito.
Faccio notare che se esistono orari che finiscono a mezzanotte ed oltre, devi farlo presente sul forum.
Comunque meglio il VBA invece delle formule per fare questo confronto.
Ciao Raffaele,
quella di inserire gli orari in formato numero è una necessità.
|
| | Post: 3.580 | Registrato il: 28/06/2011
| Città: AGORDO | Età: 70 | Utente Master | 2013 | | OFFLINE | |
|
03/07/2018 00:15 | |
>>>quella di inserire gli orari in formato numero è una necessità.
No, secondo me sarebbe giusto, per gli orari che finiscono dopo le 24:00
Ho provato con le formule, però non ci riesco. Vediamo se mi viene in mente qualche idea. Excel 2013 |
|
|