Risposte:
È correttamente selezionato "Usa il sistema di dati 1904" per la cartella di lavoro, nella sezione File> Avanzate> "Quando si calcola questa cartella di lavoro" (scorrere fino alla fine).
Ciò è necessario per consentire i tempi di calcolo come negativi. (Prova a spegnerlo e vedrai i neg trasformarsi in tutti i #)
Ad esempio, in B16 e C16 l'ora viene semplicemente inserita alle 18:00 e all'01: 00 senza alcuna data. 01:00 - 18:00 è davvero un momento negativo. Circa -0,71 se visualizzato come numero.
La soluzione è quella di modificare ogni singolo calcolo dell'ora di fine inizio in modo da soddisfare la mezzanotte. Quindi sostituire "C16-B16" con "IF (C16-B16 <0, C16-B16 + 1, C16-B16)"
Dovresti farlo per ogni giorno della settimana, il che rende la formula piuttosto lunga.
Valuta di aggiungere una colonna aggiuntiva tra i giorni per visualizzare le ore lavorate per quel giorno. Quindi il totale deve solo sommare quelle celle.
Modifica: battuto ad esso!
Modifica di nuovo: dovresti usare +1 come nel mio esempio, anziché +24 come nel post precedente, perché l'unità è giorni, non ore.
Modifica finale: una soluzione molto più breve è quella di sostituire "C16-B16" con "MOD (C16-B16,1)". Questo funziona mantenendo solo la parte frazionaria del tempo. Con i tempi, un decimale 1 è di 24 ore.
La solita formula per superare le 24 è:
=EndTime - StartTime +(EndTime < StartTime)
Combinare tutto ciò in una formula, per riassumere tutti i giorni della settimana, è scomodo ma fattibile. Richiede una formula inserita nell'array in quanto è necessario testare ciascuna coppia singolarmente.
La formula seguente utilizza la tua configurazione in quanto tutti i tuoi EndTimes sono in colonne pari; e gli StartTime sono in colonne dispari.
Si noti che i due array costruiti sono diversi per una colonna. Nelle versioni di Excel 2007+, è possibile testare direttamente ODD / EVEN con la funzione ISODD / ISEVEN.
Questa formula deve essere immessa nell'array :
=SUM(
MOD(COLUMN($C16:$O16),2)*$C16:$O16-
(MOD(COLUMN($B16:$N16),2)=0)*$B16:$N16+
((MOD(COLUMN($C16:$O16),2)*$C16:$O16-(MOD(COLUMN($B16:$N16),2)=0)*$B16:$N16)<0))
*24
oppure, utilizzando ISODD e ISEVEN:
=SUM(
ISODD(COLUMN($C16:$O16))*$C16:$O16-
ISEVEN(COLUMN($B16:$N16))*$B16:$N16+
((ISODD(COLUMN($C16:$O16))*$C16:$O16-ISEVEN(COLUMN($B16:$N16))*$B16:$N16)<0))
*24
O, ancora più breve, ma più difficile da capire, poiché utilizziamo la funzione MOD per conservare solo la componente frazionaria:
=SUM(
MOD(
ISODD(COLUMN($C16:$O16))*$C16:$O16-
ISEVEN(COLUMN($B16:$N16))*$B16:$N16,
1))
*24
Per inserire una formula in serie, dopo aver immesso la formula nella cella o nella barra della formula, tieni premuto ctrl-shift mentre premi Invio . Se lo hai fatto correttamente, Excel posizionerà le parentesi graffe {...} attorno alla formula.
Ho fatto la formula per la linea che mostri nel tuo screenshot. Il risultato è 37.9833 usando i tuoi numeri
Il tuo problema è quando passi la mezzanotte. Prendi ad esempio la prima fila di venerdì, sabato e domenica. Ogni giorno l'orario di fine è alle 2:00. Ad esempio, venerdì, quando si sottraggono gli orari, sono necessarie le 18:00 di venerdì meno le 2:00 di venerdì che è prima delle 18:00.
Al fine di evitare il negativo, ma mantenendo comunque l'aspetto visivo piacevole del grafico, è necessario utilizzare un'istruzione IF. Per calcolare per venerdì utilizzare:
=IF(K3 < J3, K3 - J3 + 24, K3 - J3)
Vi sono tre sezioni nell'istruzione IF.
(1) la condizione
K3 < J3
Questo controlla se K3 (l'ora di fine) è inferiore a J3 (l'ora di inizio). In tal caso restituirebbe un numero negativo (l'ora 2:00 AM è "inferiore a" 6:00 PM).
(2) se la condizione è vera
K3 - J3 + 24
Se la condizione è vera, Excel utilizza questa equazione. L'ho scritto per aggiungere 24 per contrastare eventuali aspetti negativi che potrebbero verificarsi.
(3) se la condizione è falsa
K3 - J3
Se la condizione è vera, Excel utilizza questa equazione.
Sommario
Utilizzare l'istruzione IF fornita al posto dell'equazione utilizzata per calcolare le ore di ogni giorno.
560:00
! Puoi vedere che se formatti la cella del risultato come [h]: mm. Utilizzerai +24 solo quando moltiplichi anche i tempi per 24 per ottenere il tempo decimale.
Ho avuto un problema simile nel calcolare i tempi che occasionalmente passavano oltre la mezzanotte senza informazioni sul giorno o sulla data. I miei orari di inizio erano di sera e talvolta si riversavano nel giorno successivo, quindi ho usato un paio di formule insieme per farlo uscire giusto per me:
=IF(D4< C4,TEXT(D4-C4+24,"h:mm"),TEXT(D4-C4,"h:mm"))
(nota che sono stato costretto ad aggiungere uno spazio dopo il simbolo minore di per qualche motivo di formattazione qui - non sto usando uno spazio lì nella mia formula)
È semplice se, dove nel mio caso D4 è l'ora di fine e C4 è l'ora di inizio. Se l'ora di fine è inferiore all'ora di inizio, deve essere scaduta oltre la mezzanotte. La dichiarazione intermedia fornisce la correzione del tempo totale di lavoro per superare la mezzanotte (+24). La fine mostra il tempo di lavoro se la sottrazione regolare è tutto ciò che serve. Ho scoperto che senza il "TESTO" e il formato dell'ora, la matematica +24 verrebbe visualizzata come valore decimale.
P16
, che hai evidenziato, dovrebbe essere 38 (7 + 8 + 8 + 7 + 8). Se te ne fossi reso conto, potresti aver notato che il valore che hai ottenuto, -10, era spento di 48 ore, cioè due giorni, corrispondenti ai due turni terminati dopo mezzanotte.