Escribiste una fórmula FILTER esperando una lista de registros coincidentes, pero el resultado es el error #¡CALC! o una celda en blanco. Esto ocurre cuando la función FILTER no puede encontrar ninguna fila que cumpla tu prueba lógica. La función está diseñada para devolver una matriz vacía cuando no hay filas que coincidan, pero ese comportamiento puede ser confuso cuando crees que existen coincidencias. Este artículo explica las razones exactas por las que FILTER devuelve una matriz vacía y te muestra cómo solucionar cada causa.
Puntos clave: Por qué FILTER devuelve vacío y cómo solucionarlo
- Revisa la sintaxis del argumento include: Un signo igual faltante o un operador incorrecto en la prueba lógica hace que FILTER no encuentre coincidencias.
- Verifica que los tipos de datos coincidan: Números almacenados como texto o espacios al inicio o final impiden que la prueba lógica se evalúe como VERDADERO.
- Usa el argumento if_empty: Agrega un tercer argumento a FILTER para mostrar un mensaje personalizado en lugar del error #¡CALC!.
Por qué FILTER devuelve una matriz vacía en lugar de datos
La sintaxis de la función FILTER es FILTER(array, include, [if_empty]). El argumento include debe ser una matriz booleana — una matriz de valores VERDADERO y FALSO — que tenga el mismo número de filas que el argumento array. Cuando cada valor en la matriz include es FALSO, FILTER no tiene filas que devolver y produce una matriz vacía. En Excel 365 y Excel 2021, esta matriz vacía se muestra como el error #¡CALC!. En versiones anteriores que admiten matrices dinámicas, puede mostrarse como una celda en blanco o un error de desbordamiento.
Las causas raíz más comunes para una matriz include completamente FALSA son:
- Prueba lógica incorrecta: Usar un solo signo igual en lugar de doble igual, o usar el operador de comparación incorrecto.
- Discrepancia de tipo de datos: Comparar números con cadenas de texto, o fechas con texto que parece fechas.
- Caracteres ocultos o adicionales: Espacios al inicio, al final o caracteres no imprimibles en los datos de origen.
- Problemas de rango desbordado: El argumento include hace referencia a un rango que no se alinea con el argumento array.
Pasos para identificar y solucionar el problema de matriz vacía
- Verifica el tamaño del rango del argumento include
Selecciona la celda con la fórmula FILTER. Presiona F2 para entrar en modo de edición. Resalta el argumentoinclude(el segundo argumento dentro de FILTER). Presiona F9 para evaluar esa parte de la fórmula. Si el resultado es{FALSE;FALSE;FALSE;...}, entonces todas las filas fallaron la prueba. Presiona Escape para salir del modo de edición sin guardar el cambio. - Prueba la condición lógica en una sola celda
En una columna en blanco, ingresa una fórmula que replique la prueba lógica para la primera fila de datos. Por ejemplo, si tu FILTER usaA2:A100="Product X", ingresa=A2="Product X"en la celda Z2. Arrastra hacia abajo para ver qué filas devuelven VERDADERO. Si ninguna devuelve VERDADERO, la condición en sí está mal o los datos no contienen ese valor. - Revisa espacios al inicio y al final
En una columna auxiliar, usa=TRIM(A2)y compara el resultado con la celda original. Si difieren, la celda original contiene espacios adicionales. Usa=TRIM()dentro de la fórmula FILTER:FILTER(array, TRIM(A2:A100)="Product X"). - Convierte números de texto a números reales
Si estás comparando una columna numérica, asegúrate de que las celdas de origen sean números, no texto. Usa la función VALOR:FILTER(array, VALUE(B2:B100)>100). Alternativamente, selecciona la columna, ve a Datos > Texto en columnas y haz clic en Finalizar para convertir texto a números. - Usa el argumento if_empty para ver un mensaje amigable
Agrega un tercer argumento a FILTER:FILTER(array, include, "No matching records"). Esto reemplaza el error #¡CALC! con tu texto personalizado, confirmando que la fórmula funciona pero no encontró coincidencias. - Revisa filas ocultas o filtros
Si tus datos de origen tienen Autofiltro aplicado, FILTER evalúa todas las filas independientemente de la visibilidad. Pero si ocultaste filas manualmente, FILTER las ve. Elimina cualquier filtro en el rango de origen para asegurarte de ver todos los datos.
Si FILTER aún devuelve una matriz vacía después de la solución principal
FILTER devuelve #¡CALC! incluso cuando el argumento include muestra valores VERDADEROS
Esto suele ocurrir cuando el argumento include hace referencia a un rango desbordado que no se ha calculado completamente. Por ejemplo, si include es D2# (un rango desbordado), y la fórmula de desbordamiento aún no se ha desbordado o tiene un error, FILTER ve una matriz include vacía. Recalcula el libro presionando Ctrl+Alt+F9. Si la fórmula de desbordamiento devuelve un error, corrige ese error primero.
FILTER funciona en un libro pero no en otro
La función FILTER requiere Excel 365 o Excel 2021. Si abres el libro en Excel 2019 o anterior, la fórmula devuelve un error #¿NOMBRE? o una matriz vacía. Verifica la versión de Excel: ve a Archivo > Cuenta > Acerca de Excel. La versión debe ser 2016 o posterior con una suscripción a Microsoft 365, o Excel 2021 independiente.
FILTER devuelve vacío cuando los datos de origen están en una Tabla
Las Tablas de Excel usan referencias estructuradas como Table1[Column1]. Si el nombre de la columna de la Tabla contiene un espacio, debes encerrarlo entre corchetes: Table1[Column Name]. Un corchete faltante hace que el argumento include se evalúe como todo FALSO. Verifica la sintaxis de la referencia estructurada escribiendo =Table1[ y dejando que IntelliSense sugiera nombres de columna.
FILTER con múltiples condiciones: comportamiento esperado vs matriz vacía
| Tipo de condición | Sintaxis correcta | Por qué devuelve vacío |
|---|---|---|
| Y (ambas deben ser verdaderas) | FILTER(array, (range1="A")(range2="B")) |
Si cualquiera de los rangos no tiene un valor coincidente, el producto es 0 (FALSO) para todas las filas |
| O (cualquiera puede ser verdadera) | FILTER(array, (range1="A")+(range2="B")) |
Si ninguno de los rangos tiene un valor coincidente, la suma es 0 para todas las filas |
| Comparación con referencia de celda | FILTER(array, range1=$E$1) |
Si la celda E1 está vacía o contiene un tipo de datos diferente, no hay filas que coincidan |
Al combinar condiciones con multiplicación (Y) o suma (O), encierra cada condición entre paréntesis. Sin paréntesis, Excel puede interpretar los operadores incorrectamente y producir una matriz todo FALSO.
Ahora puedes diagnosticar y resolver resultados de matriz vacía de FILTER verificando la prueba lógica, los tipos de datos y la sintaxis de la fórmula. Comienza evaluando el argumento include con F9, luego prueba la condición en una sola columna. Agrega el argumento if_empty para distinguir entre una fórmula rota y una falta genuina de datos coincidentes. Para solución de problemas avanzada, usa la herramienta Evaluar fórmula en la pestaña Fórmulas para revisar cada cálculo paso a paso.