=TAKE(
FILTER('P&L'!C5:O250,'P&L'!B5:B250="Escenario Base"),
12,
13
)
Esta fórmula devuelve las primeras 12 filas coincidentes y 13 columnas de la pestaña P&L. Es el equivalente más cercano en Excel a ARRAY_CONSTRAIN de Google Sheets, aunque la sintaxis y algunos casos límite no son idénticos.
A julio de 2026, Microsoft documenta TAKE para Microsoft 365, Excel para la web, Excel para Mac y Excel 2024. Si el archivo debe funcionar en instalaciones de escritorio con Excel 2021 o versiones anteriores, todavía necesitas una alternativa con INDEX.
¿Cuál es el equivalente de ARRAY_CONSTRAIN en Excel?
Google Sheets utiliza:
=ARRAY_CONSTRAIN(source_range,number_of_rows,number_of_columns)
El patrón directo en Excel es:
=TAKE(source_range,number_of_rows,number_of_columns)
Por ejemplo, un modelo DCF puede incluir 60 periodos proyectados y 15 escenarios, mientras que el memorando para el comité de crédito solo necesita los primeros 20 trimestres y 6 columnas:
=TAKE('DCF Output'!B6:P65,20,6)
TAKE limita la matriz derramada. Las fórmulas posteriores reciben un resultado de 20 filas por 6 columnas, en lugar de un rango más grande cubierto con cadenas vacías mediante IF.
Microsoft define TAKE como una función que devuelve un número específico de filas o columnas contiguas desde el inicio o el final de una matriz, según su documentación oficial de TAKE.
Opciones para limitar matrices en Excel
| Método | Versiones de Excel | Tamaño dinámico | ¿Toma datos desde el final? | Uso recomendado |
|---|---|---|---|---|
TAKE | Microsoft 365, Excel 2024 | Sí | Sí | Reportes de dirección y resultados de escenarios |
DROP con TAKE | Microsoft 365, Excel 2024 | Sí | Sí | Ventanas móviles de pronósticos |
INDEX con SEQUENCE | Versiones con matrices dinámicas | Sí | Con ajustes | Modelos que necesitan una alternativa a TAKE |
INDEX como final de rango | Versiones de escritorio anteriores | Limitado | No | Bloques fijos dentro de otras funciones |
| Referencias de tablas de Excel | Excel 2007 en adelante | Sí | No | Registros recurrentes de transacciones o SKU |
| Rango fijo manual | Todas | No | No | Plantillas con dimensiones realmente estables |
TAKE es la alternativa más sencilla cuando la compatibilidad no representa un problema. INDEX suele ser más seguro cuando equipos de tesorería, bancos o empresas del portafolio pueden abrir el archivo en versiones anteriores de Excel.
Los rangos manuales son aceptables cuando la arquitectura del reporte es fija. Se vuelven riesgosos cuando alguien inserta dos meses adicionales antes de la reunión trimestral con inversionistas y las fórmulas no se actualizan.
Cómo limitar una matriz por filas y columnas
El segundo argumento de TAKE controla las filas. El tercero, que es opcional, controla las columnas.
=TAKE('Returns Analysis'!B8:Q67,12,8)
La fórmula devuelve 12 filas y 8 columnas desde la esquina superior izquierda.
Los argumentos negativos cuentan desde la parte inferior o desde la derecha:
=TAKE('Cash Flow'!B6:M65,-12,-4)
El resultado contiene las últimas 12 filas y las últimas 4 columnas. Este patrón sirve para crear una vista móvil de liquidez conforme el modelo de flujo de efectivo incorpora nuevos periodos.
Las dimensiones permanecen explícitas. Por ejemplo, TAKE(...,12,8) siempre intenta devolver una matriz de 96 celdas. Esto facilita la auditoría frente a una cadena de condiciones IF(COLUMN()<=8,...) copiadas a lo largo de una pestaña de presentación.
Existe un caso límite importante: 0 no significa que quieras devolver cero filas. La documentación de Microsoft indica que TAKE devuelve #CALC! cuando intenta generar una matriz vacía. Si la cantidad de filas proviene de una pestaña de supuestos y puede ser cero, establece un mínimo:
=TAKE('Operating Model'!B7:P66,MAX(1,Assumptions!$B$12),8)
Cómo limitar una matriz filtrada en Excel
TAKE resulta especialmente útil por fuera de FILTER, SORT o UNIQUE. La función interna construye el conjunto de resultados y TAKE limita lo que llega al reporte.
Supón que una empresa mediana analiza 186 SKU en su reporte trimestral. La dirección quiere revisar los 10 SKU con menor margen de contribución, no toda la tabla operativa:
=TAKE(
SORTBY(
FILTER(
'SKU Economics'!A6:H191,
'SKU Economics'!H6:H191<Assumptions!$B$18
),
FILTER(
'SKU Economics'!H6:H191,
'SKU Economics'!H6:H191<Assumptions!$B$18
),
1
),
10,
8
)
Si Assumptions!$B$18 contiene un umbral interno de 38.5%, la fórmula filtra los SKU por debajo de ese nivel, los ordena del peor al mejor y devuelve como máximo 10 filas en 8 columnas. El porcentaje es un supuesto ilustrativo, no un benchmark sectorial.
El orden de las funciones importa. Si aplicas TAKE antes de SORTBY, seleccionarás las primeras 10 filas del origen y ordenarás únicamente ese subconjunto. El resultado puede verse correcto, pero no necesariamente contiene los 10 SKU con menor margen de toda la población.
El mismo patrón sirve para limitar fechas entre pestañas:
=TAKE(
FILTER(
'P&L'!B5:C500,
('P&L'!B5:B500>=Assumptions!$B$3)*
('P&L'!B5:B500<=Assumptions!$B$4)
),
12,
2
)
Si necesitas un valor agregado en lugar de una matriz, conserva una fórmula convencional:
=SUMIFS(
'P&L'!C5:C500,
'P&L'!B5:B500,">="&Assumptions!$B$3,
'P&L'!B5:B500,"<="&Assumptions!$B$4
)
Limitar los datos mostrados no cambia la población usada para calcular un KPI. Solo controla la presentación y las dependencias del rango derramado.
Cómo limitar matrices en Excel sin TAKE
En versiones con matrices dinámicas, puedes combinar INDEX y SEQUENCE:
=INDEX(
'DCF Output'!B6:P65,
SEQUENCE(MIN(20,ROWS('DCF Output'!B6:P65))),
SEQUENCE(,MIN(6,COLUMNS('DCF Output'!B6:P65)))
)
Las dos pruebas con MIN impiden solicitar más filas o columnas de las que contiene el rango de origen. Esto importa cuando un análisis de sensibilidad tiene 4 escenarios disponibles, aunque la plantilla permita hasta 6.
Para un patrón compatible con versiones anteriores, usa INDEX para definir la esquina inferior derecha de un rango:
='DCF Output'!B6:INDEX('DCF Output'!B6:P65,20,6)
La fórmula crea una referencia desde B6 hasta la celda ubicada en la fila 20 y la columna 6 del rango indicado. También puede utilizarse dentro de funciones que aceptan referencias:
=SUM('DCF Output'!B6:INDEX('DCF Output'!B6:P65,20,6))
Este método no se comporta como una matriz derramada moderna en todos los contextos. Pruébalo en las versiones de Excel que utilizan los destinatarios reales del archivo, no solo en la computadora de quien construyó el modelo.
Cuándo combinar DROP con TAKE
TAKE selecciona uno de los extremos de una matriz. DROP elimina filas o columnas de uno de sus extremos. Juntas, ambas funciones permiten extraer una ventana intermedia.
Un pronóstico a 5 años puede incluir 12 meses históricos y 60 meses proyectados. Para devolver el segundo año proyectado, elimina las primeras 24 columnas del modelo completo y toma las 12 siguientes:
=TAKE(DROP('Monthly Model'!C10:BZ45,,24),,12)
La documentación oficial de DROP explica que los valores negativos excluyen filas o columnas desde el final de una matriz. Esto también permite retirar columnas finales de valor terminal antes de preparar una presentación de DCF.
Un reporte para inversionistas podría usar el mismo patrón para aislar 8 trimestres:
=TAKE(
DROP('Quarterly Summary'!B5:AZ30,,Assumptions!$B$20),
26,
8
)
Aquí, Assumptions!$B$20 controla cuántas columnas se omiten al inicio. El resultado conserva 26 filas y 8 columnas conforme avanza la ventana del reporte.
Cómo evitar errores al limitar matrices
Evita pedir más filas o columnas de las disponibles
Microsoft indica que, si el número solicitado supera las dimensiones de la matriz, TAKE puede devolver un error #NUM!. Para controlar el tamaño máximo, combina la función con MIN:
=TAKE(
'Scenario Output'!B6:G25,
MIN(10,ROWS('Scenario Output'!B6:G25)),
MIN(6,COLUMNS('Scenario Output'!B6:G25))
)
Controla los filtros sin resultados
Si FILTER no encuentra coincidencias y omites su argumento [if_empty], la fórmula puede producir un error antes de que TAKE limite el resultado.
=LET(
results,
FILTER('Debt Schedule'!A6:F200,'Debt Schedule'!F6:F200<30,""),
IF(results="","Sin vencimientos próximos",TAKE(results,10,6))
)
En modelos complejos, puede ser preferible manejar este caso con una validación separada para no mezclar texto y datos numéricos en la misma matriz.
Reserva espacio para el rango derramado
Las fórmulas de matrices dinámicas necesitan celdas vacías para mostrar su resultado. Si alguna celda bloquea el área requerida, Excel devuelve #SPILL!, como explica la guía oficial sobre matrices dinámicas.
Un resultado limitado a 12 filas es más fácil de ubicar en un dashboard que un filtro cuya altura cambia de forma impredecible después de cada actualización.
Por qué conviene limitar matrices en modelos financieros
Excel admite 1,048,576 filas y 16,384 columnas por hoja, según las especificaciones y límites oficiales de Excel. Esos límites no significan que convenga usar columnas completas dentro de cada matriz dinámica.
Si un registro contiene 4,800 transacciones, una fórmula basada en rangos acotados puede evitar evaluar cientos de miles de celdas vacías. La cantidad exacta de trabajo y la mejora de rendimiento dependen de la fórmula, la versión de Excel, las dependencias y el equipo utilizado.
Limitar matrices también mejora el gobierno del modelo. Si un resumen de valuación debe mostrar 8 empresas comparables, restringir la presentación obliga a definir una regla explícita de selección y clasificación. Una lista sin límite puede cambiar silenciosamente de tamaño y alterar un pitch deck, un dashboard o un reporte trimestral.
También ayuda a mantener interfaces estables. Un dashboard diseñado para 12 meses o 8 trimestres conserva su estructura incluso cuando la fuente incorpora nuevos periodos.
Cuándo no debes limitar una matriz
No uses TAKE para ocultar una lógica de origen incompleta. Si un análisis de runway excluye contrataciones nuevas porque el rango de origen termina seis filas antes, limitar el resultado final solo ocultará el problema.
Tampoco limites una cédula de auditoría cuyo objetivo sea comprobar que la información está completa. Los saldos de deuda, las eliminaciones intercompañía y las validaciones de los tres estados financieros deben evaluar toda la población controlada. Un rango más limpio no compensa un balance general que omite $4.2M USD en pasivos por arrendamientos.
Ten especial cuidado con los resultados top N:
=TAKE(FILTER(data,criteria),10)
Esta fórmula devuelve los primeros 10 registros que cumplen el criterio según el orden original. Si la decisión depende de las mayores exposiciones, los márgenes más débiles o los vencimientos más próximos, ordena los datos antes de aplicar TAKE.
Para patrones relacionados con rangos derramados en Google Sheets, consulta la referencia de ARRAYFORMULA para modelos financieros. El principio es el mismo: controla deliberadamente la forma del cálculo, aunque las funciones sean diferentes.
Preguntas frecuentes sobre array constrain en Excel
¿Excel tiene una función llamada ARRAY_CONSTRAIN?
No. Excel no incluye una función llamada ARRAY_CONSTRAIN. En Microsoft 365 y Excel 2024, el equivalente más cercano es TAKE, que limita una matriz por filas y columnas.
¿Cuál es la fórmula equivalente a ARRAY_CONSTRAIN en Excel?
La equivalencia básica es:
=TAKE(source_range,number_of_rows,number_of_columns)
Por ejemplo, =TAKE(B2:H100,10,4) devuelve las primeras 10 filas y 4 columnas del rango.
¿Cómo tomo las últimas filas de una matriz en Excel?
Usa un número negativo en el argumento de filas:
=TAKE(B2:H100,-12)
La fórmula devuelve las últimas 12 filas y conserva todas las columnas del rango.
¿Cómo limito una matriz en Excel 2021?
Si TAKE no está disponible, puedes usar INDEX con SEQUENCE en instalaciones que admitan matrices dinámicas:
=INDEX(B2:H100,SEQUENCE(10),SEQUENCE(,4))
Para contextos anteriores, usa INDEX como extremo de una referencia:
=B2:INDEX(B2:H100,10,4)
¿Por qué TAKE devuelve #CALC!?
TAKE devuelve #CALC! cuando se le solicita una matriz vacía, por ejemplo, al usar cero como cantidad de filas o columnas. Puedes evitarlo con una validación previa o con MAX(1,valor) cuando el modelo siempre deba devolver al menos una fila.
¿TAKE mejora el rendimiento de Excel?
Puede reducir el tamaño del resultado derramado y las dependencias posteriores. Sin embargo, no siempre evita que una función interna como FILTER procese todo el rango de origen. Para mejorar el rendimiento, también debes acotar los rangos de entrada y evitar referencias de columna completa cuando no sean necesarias.
En resumen
Usa TAKE para hacer array constrain en Excel cuando el archivo se ejecute en Microsoft 365 o Excel 2024. Combínala con DROP para crear ventanas móviles y colócala por fuera de FILTER o SORTBY cuando necesites limitar el resultado final ya filtrado y ordenado.
Usa INDEX cuando la compatibilidad con versiones anteriores sea importante. En cualquier caso, limita la matriz por una razón concreta de negocio: 12 meses, 8 trimestres, 10 SKU o 6 escenarios.
Prueba ModelMonkey gratis durante 14 días. Funciona tanto en Google Sheets como en Excel.