Filtrar con múltiples condiciones usando matrices booleanas y BYROW

Interesante problema planteado por un miembro sobre cómo filtrar datos que cumplan varias condiciones simultáneas usando operaciones matriciales. La fórmula original:

``
=FILTER(A2:D10;BYROW(ARRAYFORMULA(
(D2:D10=TRANSPONER(E2:E4))
+(C2:C10=TRANSPONER(H2:H4))
+(B2:B10>700)
);LAMBDA(x;PRODUCTO(x)>=3)))
`

Leo explica por qué la operación no es correcta: al comparar un vector vertical de 9 filas con un vector horizontal de 3 columnas, se genera una matriz booleana de 9x3. El operador + suma matrices, pero la tercera condición (B2:B10>700) produce una matriz 9x1, lo que genera una inconsistencia de dimensiones.

John matiza que la operación sí es posible en determinados casos: cada elemento de la matriz 9x1 se suma con cada fila de la matriz 9x3, lo cual es válido.

Joan Recasens aporta la clave práctica: para que se cumplan las 3 condiciones a la vez, hay que usar (Y lógico) en lugar de + (O lógico). Con se exige que todas las condiciones se cumplan simultáneamente, mientras que con + basta con que se cumplan en diferente combinación.

Un caso que sirve para entender la diferencia entre el comportamiento del * y +` como operadores lógicos en matrices booleanas de Excel, y cómo las dimensiones de las matrices afectan al resultado.

Más contenido de Excel en InflueXcel