OMGBBQ isso é um desafio! Eu gostaria de poder explicar isso melhor, mas por favor, tenha paciência comigo.
Minha solução requer alguns imóveis adicionais - 3 colunas para ser exata - e é baseada em algumas suposições:
- Os dados do registro de data e hora teriam linhas alternadas de 1s e 0s, emulando uma chave liga / desliga como você descreveu (consulte a Imagem 1 abaixo).
- Os carimbos de hora são organizados do mais antigo para o mais recente.
Parasimplificar,estouusandohorasinteiras.Emboravocêpossaadicionarcarimbosdedataehoranoníveldeumminuto,sepreferir.
AcolunaErastreiaonúmerodehorasrestantesdodiaemcadahorário.Euuseiissopara"SPLIT" os tempos decorridos que atravessam a meia-noite.
Colunas ON / OFF
Esta é a fórmula na coluna ON:
=SUM(IF(AND($B3,A4<>"",INT($A4)=INT($A3)),($A4-$A3)*24,0),
IFERROR(IF(AND($B3=1,INT($A3)<>INT($A4)),$E3,IF(AND($B2=1,INT($A3)<>INT($A2)),24-$E3,0)),0))
Esta fórmula adiciona dois valores:
1. O número de horas que o switch está ON se a entrada não for o último horário do dia; caso contrário, 0.
2. O número de horas restantes até meia-noite se este for o último carimbo de hora do dia OU o número de horas decorridas desde meia-noite se este for o primeiro carimbo de hora do dia.
A fórmula na coluna OFF é semelhante, exceto que verifica se Status = 0.
=SUM(IF(AND(NOT($B3),B4<>"",INT($A4)=INT($A3)),($A4-$A3)*24,0),
IFERROR(IF(AND($B3=0,INT($A3)<>INT($A4)),$E3,IF(AND($B2=0,INT($A3)<>INT($A2)),24-$E3,0)),$B3*($A3-INT($A3))*24))
Para extrair o DATE da coluna de registro de data e hora, usei a função INT()
. O Excel usa números inteiros para representar datas e decimais para representar os horários (uma fração de um dia ou de 24 horas). Por exemplo, 06/01/2012 18:00
é igual a 41061.75
(18 horas depois da meia-noite é 18/24, o que é 0,75). Acredito que isso responda ao seu último parágrafo.
Consolidando as horas
Aqui está a fórmula na coluna Horas em (veja a imagem abaixo). É uma fórmula de array, então você precisa entrar usando Ctrl + Deslocar + Enter e depois copiá-lo:
=SUM((INT(stamps)=$G3)*hours_on)
Na coluna Horas OFF :
=SUM((INT(stamps)=$G3)*hours_off)
em que stamps
é um intervalo nomeado referente ao intervalo Carimbo de data / hora (coluna A no meu exemplo)% hours_on
é um nome Intervalo referente ao intervalo ATIVADO (Coluna C )
hours off
é um Intervalo Nomeado referente ao intervalo DESATIVADO (Coluna D )
Gráfico
Observe como, para cada data, o número de horas ON e OFF totaliza 24.
Sevocêquiserestudarasfórmulaseapastadetrabalho,aquiestáumacópia: