Eu tenho todos esses dados em testes:
controller start end start ts end ts
1 1:13 1:15 1:00 1:30
1 2:08 2:25 2:00 2:30
4 4:02 4:16 4:00 4:30
4 4:17 5:35 4:00 6:00
2 4:03 5:39 4:00 6:00
Embora cada teste inicie e termine em um horário específico, o agendador dos testes reserva um intervalo de tempo de meia hora inteiro, por isso, saúdo os horários com FLOOR e CEILING.
Cada teste usa um controlador específico e, durante a execução, nenhum outro teste pode usar esse controlador.
A partir desses dados, quero calcular o número máximo de controladores simultâneos em uso para um período de tempo específico. Para fazer isso, imaginei que poderia calcular o número de controladores em uso quando um determinado teste é iniciado, já que é a única vez em que o número de controladores em uso aumentará.
Então, minha fórmula para isso foi: (usando a sintaxe de dados de tabela muito legal de 2010)
=COUNTIFS([start timeslot],"<="&[@[start timeslot]],[end timeslot],">"&[@[start timeslot]])
No entanto, como o arredondamento do período de atividade introduz a sobreposição entre os testes que realmente não se sobrepõem, os contagens contarão os testes no mesmo controlador quantas vezes eles ocorrerem.
Eu preciso fazer com que o COUNTIFS conte valores duplicados apenas uma vez quando eles ocorrerem nos intervalos correspondentes.
Aqui está um arquivo do Excel com alguns dados de amostra e minhas fórmulas:
http://dl.dropbox.com/u/123900/sumproducttest.xlsx
Mais informações:
Na verdade, eu construí uma fórmula de matriz que calcula os números que eu quero:
{=SUM(--([start timeslot]<=[@[start timeslot]])*--([end timeslot]>[@[start timeslot]])*IFERROR(1/COUNTIFS([controller],[controller],[start timeslot],"<="&[@[start timeslot]],[end timeslot],">"&[@[start timeslot]]),0))}
Os CONTENTES dentro dessa fórmula de matriz geram uma matriz ponderada de quantas vezes um controlador específico ocorre dentro do conjunto de testes que estão sendo executados quando o teste atual é iniciado. Assim, a função soma contará dois testes que usam o controlador como 1/2, resultando na contagem desse controlador apenas uma vez.
No entanto, meu conjunto de dados reais tem mais de 3000 linhas e minha fórmula de matriz reúne o Excel de baixa qualidade. (Mesmo a minha função de relatórios incorretos do COUNTIFS leva ~ 30 segundos no meu laptop dual-core antigo, então a fórmula de matriz é de 1%, calculando a cada minuto mais ou menos; _;)