ARRAYFORMULA en Google Sheets: una fórmula para toda la columna
Aprende a usar ARRAYFORMULA en Google Sheets: aplica fórmulas a toda una columna, evita filas vacías, combínalo con SI o BUSCARV y corrige errores.
Por Ayoub Farid · · 2 min de lectura
Normalmente escribes una fórmula en la fila 2 y tienes que arrastrar o rellenar hacia abajo. ARRAYFORMULA te permite usar una sola fórmula en la fila 2 para calcular todas las filas automáticamente, incluidas las nuevas filas que se añadan más tarde (por ejemplo, desde un formulario de Google Forms).
Sintaxis
=ARRAYFORMULA(array_formula)
Atajo de teclado: escribe tu fórmula normal y pulsa Ctrl+Shift+Enter (o Cmd+Shift+Enter en Mac). Google Sheets la envolverá automáticamente con ARRAYFORMULA.
Ejemplo: calcular ingresos en cada fila
En lugar de poner =B2*C2 y arrastrar la celda hacia abajo:
=ARRAYFORMULA(B2:B*C2:C)
Al usar un rango abierto (B2:B), la fórmula procesará todas las filas presentes y futuras de la hoja de cálculo.
Omitir filas vacías
La fórmula anterior pondrá un 0 en todas las filas que estén en blanco. Para evitarlo, añade la función IF (SI en las funciones de Excel):
=ARRAYFORMULA(IF(B2:B="","",B2:B*C2:C))
Incluir el encabezado en la misma fórmula
Puedes colocar la fórmula directamente en la fila 1 para generar el título de la columna y los resultados a la vez:
={"Revenue";ARRAYFORMULA(IF(B2:B="","",B2:B*C2:C))}
*(Puedes cambiar "Revenue" por el texto que prefieras, por ejemplo "Ingresos").*
Combinar con VLOOKUP
Puedes usar ARRAYFORMULA junto con VLOOKUP (BUSCARV en las fórmulas de Excel) e IFERROR (SI.ERROR):
=ARRAYFORMULA(IF(A2:A="","",IFERROR(VLOOKUP(A2:A,Prices!$A$2:$C$500,3,FALSE),"Not found")))
Ten en cuenta que en una hoja de cálculo con configuración regional en español, los separadores dentro de las fórmulas suelen ser puntos y coma (;). Como buena práctica, mantén una referencia absoluta ($A$2:$C$500) en la tabla de búsqueda. Consulta más detalles en nuestra guía sobre BUSCARV en Google Sheets.
Qué funciones no funcionan dentro de ARRAYFORMULA
Las funciones que por definición devuelven un único resumen agregado (como SUM/SUMA o AVERAGE/PROMEDIO), así como los operadores lógicos AND y OR, no se calculan fila por fila dentro de un array. Si necesitas una condición AND fila por fila, multiplica las condiciones lógicas entre sí: (B2:B>0)*(C2:C="Paid").
Errores comunes
- #REF! "No se ha podido expandir el resultado de la matriz": hay datos escritos en alguna celda inferior dentro de la columna de resultados. Borra ese contenido para dejar espacio libre a la fórmula.
- Hojas lentas: usar rangos completamente abiertos en archivos muy extensos puede ralentizar tu hoja. Si notas lentitud, acota el rango a un límite razonable (por ejemplo,
B2:B5000).
Equivalente en Excel
Si quieres aprender Excel moderno (Microsoft 365), no necesitas esta función: las fórmulas de matriz dinámica se desbordan automáticamente hacia abajo. Una expresión como =B2:B500*C2:C500 funciona directamente sin necesidad de envolverla en otra función (algo muy útil si estás practicando para una prueba de Excel para entrevista de trabajo).
Preguntas frecuentes
¿Qué hace ARRAYFORMULA?
Aplica una fórmula a rangos completos de golpe y devuelve los resultados fila por fila en toda la columna.
¿Cómo evito que ARRAYFORMULA muestre ceros en las filas vacías?
Envuelve el cálculo dentro de una condición lógica con la función SI: IF(rango="","",...).
¿Por qué ARRAYFORMULA devuelve el error #REF!?
Porque alguna de las celdas que la fórmula necesita para mostrar sus resultados ya contiene datos. Vacía esas celdas para solucionarlo.
¿Existe ARRAYFORMULA en Excel?
No con ese nombre exacto, pero las versiones modernas de Excel 365 utilizan matrices dinámicas que realizan exactamente la misma tarea de forma automática.