Debemos determinar si se producen
solapamientos en las programaciones de las máquinas. Los resultados irán en la
columna E. Las columnas G a M se usarán para obtener resultados intermedios.
El razonamiento para resolver el problema lo haremos con la Máquina A de la celda B4. Constará de 8 pasos:
- Asignar FALSO a la máquina que estamos analizando (en nuestro caso la de la celda B4) y VERDADERO al resto (esto dará la primera matriz de valores VERDADERO y FALSO).
- Comprobar si el valor de B4 coincide con los otros valores de la columna B (segunda matriz, con valores VERDADERO Y FALSO).
- Comprobar si la fecha final de D4 es anterior a todas las fechas de comienzo (matriz con valores VERDADERO Y FALSO). Comprobar si la fecha inicial de C4 es posterior a todas las fechas finales (matriz con valores VERDADERO Y FALSO). Sumar ambas matrices (obtendremos la tercera matriz, con ceros y unos).
- Sustituir los ceros por unos y viceversa (se creará la cuarta matriz, con ceros y unos).
- Multiplicar las matrices de los apartados 1), 2) y 4).
- Sumar los elementos de la esta última matriz.
- Si el resultado es cero, no hay solapamiento. En caso contrario, hay solapamiento.
- Combinar todas las fórmulas en E4.
Seleccionamos G4:G18 y escribimos:
=FILA($B4)<>FILA($B$4:$B$18) [Terminar con Ctrl + Mayús + Intro]
La primera referencia ($B4) debe ser mixta ya que una vez obtenida la fórmula definitiva la pondremos en E4 y la copiaremos hacia abajo. De ese modo, $B4 pasará a ser $B5, $B6...
Seleccionamos H4:H18 y escribimos:
=($B4=$B$4:$B$18) [Terminar con Ctrl + Mayús + Intro]
Seleccionamos I4:I18 y escribimos:
=($D4<$C$4:$C$18)+($C4>$D$4:$D$18) [Terminar con Ctrl + Mayús + Intro]
=--NO($I$4:$I$18) [Terminar con Ctrl + Mayús + Intro]
Seleccionamos K4:K18 y escribimos:
=($G$4:$G$18)*($H$4:$H$18)*($J$4:$J$18) [Terminar con Ctrl + Mayús + Intro]
En L4:
=SUMA($K$4:$K$18) [Terminar con Intro]
En M4:
=SI(L4=0;"No";"Sí") [Terminar con Intro]
Sólo falta poner la fórmula compuesta en E4.
En E4:
=SI(SUMA((FILA($B4)<>FILA($B$4:$B$18))*(($B4=$B$4:$B$18))*(--NO(($D4<$C$4:$C$18)+($C4>$D$4:$D$18))))=0;"No";"Sí") [Terminar con Ctrl + Mayús + Intro]
Extendemos la fórmula hasta la fila 18 y eliminamos las columnas G:M.
Creo que me puede ser útil. Gracias
ResponderEliminar