Filtrar columnas que contienen negativos con BYCOL y N()

Juan plantea cómo detectar valores negativos en una matriz numérica. Conoce HALLAR para buscar texto, pero no encuentra el equivalente para números. Leo aclara que para números no se necesita HALLAR — basta con una comparación directa:

``
=N(K11:L15<0)
`

N() convierte los booleanos (VERDADERO/FALSO) a números (1/0), generando una matriz espejo donde los 1 indican negativos.

El problema se amplía: Juan necesita filtrar solo las columnas que contienen al menos un valor negativo. Leo lo resuelve combinando BYCOL con FILTRAR:

`
=FILTRAR(C4:J20; BYCOL(N(C4:J20<0); SUMA))
`

BYCOL(N(C4:J20<0); SUMA) recorre cada columna y suma los indicadores de negativos. Si la suma es mayor que 0, esa columna tiene al menos un negativo y FILTRAR la incluye en el resultado.

Antonio aporta un enfoque alternativo usando HALLAR para detectar el signo menos como carácter:

`
=SI.ERROR(HALLAR("-"; F2:F5; 1); 0)
`

Esta técnica funciona porque HALLAR busca el guion "-" en la representación textual del número, pero es menos robusta que la comparación directa <0`, que funciona independientemente del formato de la celda.

Juan llegó a la comunidad con una pregunta que parece de principiante y no lo es: sabe que HALLAR sirve para buscar un texto dentro de otro, pero no encuentra la función equivalente para buscar números. En concreto quería localizar los valores negativos de una matriz. La respuesta de Leo fue directa: para números no necesitas ninguna función de búsqueda, basta con una comparación.

Marcar los negativos: una comparación y nada más

=N(0 > K11:L15)

Esa fórmula devuelve una matriz del mismo tamaño que el rango, con un 1 en cada posición donde el valor es negativo y un 0 en el resto. Vamos por partes:

  • 0 > K11:L15 compara el cero contra cada celda del rango y produce una matriz de VERDADERO y FALSO. Escrito así, se lee como "el cero es mayor que la celda", que es exactamente lo mismo que decir que la celda es negativa.
  • N() convierte esos valores lógicos en números: VERDADERO pasa a 1 y FALSO a 0.

Ese paso por N() es lo que hace la matriz útil. Mientras sean VERDADERO y FALSO puedes filtrar con ella, pero en cuanto la conviertes a unos y ceros puedes sumarla, contarla y agregarla como cualquier otro rango numérico. Es el mismo truco que hay detrás de casi todas las fórmulas matriciales de conteo.

El problema real: filtrar columnas enteras

La duda de Juan creció enseguida: no le bastaba con saber dónde están los negativos, quería quedarse solo con las columnas que contienen al menos uno. Leo lo resolvió combinando BYCOL con FILTRAR:

=FILTRAR(C4:J20; BYCOL(N(0 > C4:J20); SUMA))

La lógica encaja pieza a pieza:

  1. N(0 > C4:J20) genera la matriz espejo de unos y ceros.
  2. BYCOL(...; SUMA) recorre columna por columna y suma sus indicadores. El resultado es un vector horizontal con un número por columna: cuántos negativos tiene cada una.
  3. FILTRAR recibe ese vector como criterio. Aquí ocurre algo que conviene entender: FILTRAR interpreta cualquier valor distinto de cero como VERDADERO, así que las columnas con al menos un negativo pasan el filtro y las que suman cero se descartan. No hace falta añadir ninguna comparación extra.

Fíjate en el detalle de orientación: como estamos filtrando columnas y no filas, el criterio tiene que ser un vector horizontal, y por eso se usa BYCOL y no BYROW.

El enfoque alternativo de Antonio

Antonio propuso otra vía, buscando el signo menos como si fuera un carácter de texto:

=SI.ERROR(HALLAR("-"; F2:F5; 1); 0)

Es ingeniosa y en muchos casos funciona, pero conviene conocer sus límites. HALLAR trabaja sobre la representación textual del número, así que depende de cómo esté formateada la celda: si los negativos se muestran entre paréntesis o en rojo sin signo, la búsqueda no los encuentra. También puede dar falsos positivos si el valor contiene un guion por otro motivo, por ejemplo en códigos o referencias mezcladas con números.

La comparación numérica directa no tiene ninguno de esos problemas: mira el valor, no su aspecto. Por eso es la opción recomendable salvo que estés trabajando explícitamente con textos.

Funciones clave

  • N: convierte valores lógicos en 1 y 0, y deja los números tal cual. Es el puente entre "condición cumplida" y "número que puedo sumar".
  • BYCOL: aplica una función a cada columna de una matriz y devuelve un vector horizontal con un resultado por columna.
  • SUMA: aquí se pasa directamente como función, sin envolverla en LAMBDA (la llamada eta-lambda).
  • FILTRAR: se queda con las columnas cuyo criterio sea distinto de cero.
  • HALLAR: busca texto dentro de texto; útil, pero sensible al formato cuando lo aplicas a números.

Conclusión

La pregunta de partida —"¿cuál es el HALLAR de los números?"— tenía trampa: no existe porque no hace falta. En Excel, una comparación entre un valor y un rango ya devuelve toda la información, y N() la convierte en algo con lo que puedes agregar. A partir de ahí, elegir entre BYROW y BYCOL es solo cuestión de si quieres resumir filas o columnas.

Estas conversaciones son el pan de cada día en la comunidad de InflueXcel: alguien pregunta por una función concreta y acaba llevándose un patrón que le sirve para media docena de problemas distintos.

Más casos con estas funciones

Más contenido de Excel en InflueXcel