Estou tentando criar um cronograma para um número limitado de treinamentos (cerca de 50) que são distribuídos entre um número limitado de locais (por volta de 15), e estou procurando uma abordagem mais inteligente do que a que estou usando atualmente.
O agendamento consiste em duas planilhas:
A planilha 1 contém os dados para os treinamentos. Uma linha por treino. Com colunas para nome do local de treinamento, data de início e data de término.
A planilha 2 deve ser uma representação visual dos dados na planilha 1 que se adapta às alterações nos dados originais. Até agora, contém uma coluna para cada dia do ano e uma linha para cada local de treinamento. Então, cada célula representa uma data específica em um local de treinamento específico.
O objetivo é que, se a folha 1 disser que um treinamento está acontecendo no local AZ
de 1 April 2017
até 27 April 2017
, as células representando as datas de 1 April
até 27 April
na linha para o local de treinamento AZ
na folha 2 seja marcado através de formatação condicional.
A função de formatação condicional que estou usando atualmente para a linha que representa o local de treinamento AZ
seria:
=IF(OR(AND(Sheet1!$C$5="AZ";Sheet1!$F$5>=B$6;Sheet1!$E$5<=B$6);AND(Sheet1!$C$6="AZ";Sheet1!$F$6>=B$6;Sheet1!$E$6<=B$6); ...... AND(Sheet1!$C$50="AZ";Sheet1!$F$50>=B$6;Sheet1!$E$50<=B$6));TRUE;FALSE)
Portanto, a parte AND repetitiva verifica, para cada célula, se a data de sua coluna (contida na linha 6) está dentro da data de início e término de qualquer treinamento na folha 1 e se esse treinamento ocorre no local de treinamento AZ
. Se isso for verdade para qualquer um dos treinamentos na planilha 1, a função IF é verdadeira e a célula é marcada.
Surpreendentemente, isso está funcionando até agora. No entanto, é uma solução muito demorada e deselegante. Então, agora eu estou procurando uma maneira de parar de ter que repetir a parte E da função 50 vezes para cada um dos 15 locais de treinamento.
Pesquisas extensivas sugeridas, que as fórmulas de matriz podem ser um caminho a ser seguido e que a formatação condicional é, por padrão, tratada como uma fórmula de matriz, por isso tentei:
=IF(AND(Sheet1!C3:C54="AZ";AND(B$6>=Sheet1!E3:E54;B$6<=Sheet1!F3:F54));TRUE;FALSE)
e
=IF(OR(AND(Sheet1!C3:C54="AZ";AND(B$6>=Sheet1!E3:E54;B$6<=Sheet1!F3:F54)));TRUE;FALSE)
Mas até agora sem sorte. Eu acho que eu não poderia ter compreendido completamente como funcionam as fórmulas de array. Por isso, se detectou quaisquer erros óbvios na minha função, tiver quaisquer ideias sobre o que eu poderia tentar, ou pode sugerir quaisquer abordagens alternativas para o que estou a tentar fazer, informe-me.
Caso contrário, eu poderia perder a cabeça copiando e adaptando essa sangrenta seção AND ad infinitum.