martes, 9 de junio de 2020

EXCEL: El filtro excluye valores en blanco

Excel formula: Filter exclude blank values

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:
=FILTRAR(B5:D15,(B5:B15<>"")*(C5:C15<>"")*(D5:D15<>""))
El resultado contiene solo filas de los datos de origen donde las tres columnas tienen un valor.

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:
B5:B15<>"" // check names
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:
{VERDADERO;FALSO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;FALSO;VERDADERO}
La segunda expresión prueba los grupos en blanco:
C5:C15<>"" // check groups
Nuevamente, estamos verificando 11 celdas, por lo que obtenemos 11 resultados:
{VERDADERO;VERDADERO;VERDADERO;FALSO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;FALSO;FALSO;VERDADERO}
Finalmente, buscamos números de habitación en blanco:
D5:D15<>"" // check groups
que produce:
{VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;VERDADERO;FALSO;VERDADERO;FALSO;VERDADERO}
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.
Siguiendo las reglas de la lógica booleana, el resultado final es una matriz como esta:
{1;0;1;0;1;1;1;0;0;0;1}
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.

Comentarios en Facebook


0 comentarios:

Copyright © 2021 TRUJILLOSOFT