Fórmula genérica
=FILTRAR(data,(rng1<>"")*(rng2<>"")*(rng3<>""))
Explicación
Para filtrar filas con celdas en blanco o vacías, puede usar la función FILTRAR con lógica booleana. En el ejemplo que se muestra, la fórmula en F5 es:
Para hacer esto, utilizamos tres expresiones booleanas que operan en matrices. La primera expresión prueba los nombres en blanco:
Siguiendo las reglas de la lógica booleana, el resultado final es una matriz como esta:
El resultado contiene solo filas de los datos de origen donde las tres columnas tienen un valor.=FILTRAR(B5:D15,(B5:B15<>"")*(C5:C15<>"")*(D5:D15<>""))
Cómo funciona esta fórmula
La función FILTRAR está diseñada para extraer datos que coinciden con uno o más criterios. En este caso, queremos aplicar criterios que requieran que las tres columnas de los datos de origen (Nombre, Grupo y Sala) tengan datos. En otras palabras, si a una fila le falta alguno de estos valores, queremos excluir esa fila de la salida.Para hacer esto, utilizamos tres expresiones booleanas que operan en matrices. La primera expresión prueba los nombres en blanco:
El operador no (<>) con una cadena vacía ("") se traduce como "no vacío". Para cada celda en el rango B5: B15, el resultado será VERDADERO o FALSO, donde VERDADERO significa "no vacío" y FALSO significa "vacío". Debido a que hay 11 celdas en el rango, obtenemos 11 resultados en una matriz como esta:B5:B15<>"" // check names
La segunda expresión prueba los grupos en blanco:{VERDADERO;FALSO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;FALSO;VERDADERO}
Nuevamente, estamos verificando 11 celdas, por lo que obtenemos 11 resultados:C5:C15<>"" // check groups
Finalmente, buscamos números de habitación en blanco:{VERDADERO;VERDADERO;VERDADERO;FALSO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;FALSO;FALSO;VERDADERO}
que produce:D5:D15<>"" // check groups
Cuando las matrices que resultan de las tres expresiones anteriores se multiplican juntas, la operación matemática obliga a los valores VERDADERO y FALSO a 1s y 0s. Usamos la multiplicación en este caso, porque queremos imponer la lógica "Y": expresión1 expresión Y2 expresión Y3. En otras palabras, las tres expresiones deben devolver VERDADERO en una fila dada.{VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;FALSO;VERDADERO;FALSO;VERDADERO}
Siguiendo las reglas de la lógica booleana, el resultado final es una matriz como esta:
Esta matriz se entrega directamente a la función FILTRAR como argumento de inclusión. FILTRAR solo incluye las 6 filas que corresponden a 1s en la salida final.{1;0;1;0;1;1;1;0;0;0;1}
0 comentarios:
Publicar un comentario