Documentación de HotXLS

Selección de áreas de INDEX e identidad de referencias

Documentación de HotXLS · Fidelidad de cálculo y conversión

La versión 2.384.101 amplía INDEX(source,row_num,column_num,area_num) para aceptar el cuarto argumento en las matrices calculadas y componer referencias reales multiárea admitidas mediante nombres definidos y LET; los selectores de fila, columna y área pueden difundirse juntos

Una matriz calculada o varias áreas de referencia

Una constante o matriz calculada es una sola área de origen, de modo que INDEX(SEQUENCE(2,2),2,2,1) devuelve 4; omitir por completo el cuarto argumento también selecciona el área 1, mientras que un cuarto argumento explícitamente vacío es un selector de área no válido

Una unión de referencias puede contener varias áreas reales de hoja en la misma hoja; area_num selecciona el área en el orden de la unión, y los números de fila y columna se aplican dentro de esa área seleccionada

Para los ejemplos siguientes, Source!A1:B2 contiene {1,2;3,4} y Source!D1:E2 contiene {10,20;30,40}; Other!A1:B2 contiene {100,200;300,400}

FórmulaResultado
INDEX((Source!A1:B2,Source!D1:E2),2,2,2)40, conservando un resultado de referencia escalar
SUM(INDEX((Source!A1:B2,Source!D1:E2),0,0,2))100, sumando el área segunda completa
INDEX(SEQUENCE(2,2),0,0,1){1,2;3,4}, una matriz de valores calculados
INDEX(SEQUENCE(2,2),2,2,2)#REF!, porque una matriz calculada no tiene segunda área

Nombres definidos, LET y CHOOSE

Un nombre definido local admitido cuya expresión es (Source!$A$1:$B$2,Source!$D$1:$E$2) conserva ambas áreas; los nombres anidados conservan esa identidad, y AREAS(NamedAreas) devuelve 2

INDEX(NamedAreas,2,2,2) devuelve 40, mientras que ISREF(INDEX(NamedAreas,0,0,2)) devuelve TRUE; ROW, COLUMN, ROWS, COLUMNS y los consumidores agregados siguen usando las coordenadas de la referencia seleccionada

Los nombres de referencia relativos se resuelven en cada posición consumidora, y un nombre local de hoja tiene prioridad sobre un nombre de ámbito de libro con la misma ortografía; preservar la identidad de referencia no congela un nombre relativo en su primera posición de evaluación

LET(areas,(Source!A1:B2,Source!D1:E2),INDEX(areas,2,2,2))
LET(areas,(Source!A1:B2,Source!D1:E2),ISREF(INDEX(areas,0,0,2)))

Estas expresiones devuelven 40 y TRUE respectivamente; un enlace a SEQUENCE(2,2) sigue siendo una matriz de valores calculados y no adquiere identidad de referencia

Un CHOOSE escalar que selecciona una referencia real conserva esa referencia seleccionada, incluida una elección en otra hoja: INDEX(CHOOSE(2,Source!A1:B2,Other!A1:B2),2,2) devuelve 400 y el correspondiente resultado de referencia escalar pasa ISREF

Un CHOOSE con selector de matriz combina valores según la orientación del selector en lugar de construir una unión de áreas de referencia; CHOOSE({1,2},Source!A1:B2,Source!D1:E2) devuelve {1,20;3,40}, y un selector de área INDEX adicional de 2 sigue devolviendo #REF!

Tres matrices de selector

Los selectores de fila, columna y área aceptan valores escalares o matrices; las dimensiones singleton se difunden, las orientaciones opuestas de fila y columna forman un producto cruzado, y las orientaciones coincidentes emparejan posiciones; las posiciones sin pareja en formas desiguales contienen errores #N/A individuales

INDEX((Source!A1:B2,Source!D1:E2),{1;2},2,{1,2})
INDEX((Source!A1:B2,Source!D1:E2),2,2,{2;1})

La primera expresión devuelve {2,20;4,40} y la segunda devuelve {40;4}; los valores seleccionados conservan sus representaciones de cadena, Boolean, numéricas y de error con tipo

Si algún selector es una matriz, el resultado es una matriz de valores en lugar de una referencia; un cero de fila o columna, o un selector de fila o columna omitido, selecciona el primer miembro de ese eje en cada posición del resultado

Esto difiere de la extracción puramente escalar: dos ceros escalares de fila y columna devuelven el área seleccionada completa, pero INDEX((Source!A1:B2,Source!D1:E2),0,0,{1,2}) devuelve {1,10}, no dos matrices de dos por dos anidadas; su suma es 11

Coerción de áreas y errores

Los selectores de área truncan los valores numéricos fraccionarios hacia cero y aceptan texto numérico y valores Boolean; 1.9, "1" y TRUE seleccionan el área 1

El área cero, FALSE, un cuarto argumento explícitamente vacío, los valores negativos y las fracciones que truncan a cero devuelven #VALUE!; el texto no numérico también devuelve #VALUE!, mientras que un área positiva mayor que el número de áreas disponibles devuelve #REF!

Los errores de selector con tipo se propagan con sus códigos de error existentes; para un selector de matriz, un área no válida produce un error solo en su posición de resultado correspondiente, de modo que INDEX(SEQUENCE(2,2),2,2,{1,2}) devuelve {4,#REF!}

Los errores existentes no se reemplazan por comprobaciones de límites posteriores: INDEX(#N/A,1,1,2) devuelve #N/A, y INDEX(SEQUENCE(2,2),#N/A,1,#DIV/0!) conserva el #N/A del selector de fila

Una referencia no válida calificada por una hoja local existente sigue siendo #REF!, incluidos Source!#REF! y 'Plan! O''Brien'!#REF!; un nombre definido que contenga ese error de referencia local también conserva #REF! cuando se pasa a INDEX o ISFORMULA

El token de error local puede usarse con los operadores de porcentaje o de intersección implícita, y se aceptan espacios en blanco tras el separador de hoja; los espacios en blanco entre el nombre de la hoja y su separador quedan fuera de la sintaxis aceptada

Las cadenas de fórmula entre comillas como "Source!#REF!" permanecen como texto; un token de referencia calificado por hoja dentro de una constante de matriz está fuera de la gramática de orígenes admitida

Los selectores de fila y columna mantienen sus reglas existentes de extracción con cero y de validación de valores negativos; el área cero nunca significa extracción de todo el origen

Almacenamiento, dependencias y límites

El cálculo de derrame automático XLSX puede agrandar o reducir los resultados de selectores de matriz y libera los seguidores obsoletos propiedad del ancla; las expresiones admitidas también se evalúan dentro de un destino CSE fijo explícito y sobreviven al guardado y la reapertura XLSX

Un selector con nombre puede exigir almacenamiento dinámico conservador incluso cuando su resultado evaluado es escalar; un marcador dinámico de una celda no cambia el valor ni la identidad de un resultado de referencia admitido

Las referencias de origen seleccionadas y los nombres anidados participan en el seguimiento de dependencias, de modo que las ediciones posteriores del origen se observan tras el recálculo; el recorrido de selectores y las cargas de matriz generadas consumen los presupuestos existentes de pasos de evaluación y memoria de matrices

Límites

Una unión directa cuyas áreas pertenecen a hojas distintas devuelve #VALUE!, incluso cuando el número de área solicitado seleccionaría solo una de ellas; el CHOOSE escalar que selecciona una referencia sigue siendo la alternativa admitida entre hojas

Una unión de matrices calculadas, constantes o expresiones de valor no es una referencia real multiárea; las uniones de matrices calculadas enlazadas con LET devuelven #VALUE!, y la sintaxis directa de unión de matriz de matrices no se acepta como forma de origen

Este contrato cubre las formas locales probadas de referencias y matrices calculadas; no implica soporte para todos los grafos de referencias externas, todas las funciones que producen referencias ni los contenedores de matriz anidados arbitrarios

Un calificador de hoja desconocido no se normaliza como un error de referencia local conocido; Excel puede crear un grafo de vínculos externos para una fórmula como NoSuchSheet!#REF!, y reproducir ese grafo queda fuera de este contrato de cálculo local