Quiero obtener el contenido de una celda dado su número de fila y columna. El número de fila y columna se almacenan en celdas (aquí B1, B2). Sé que las siguientes soluciones funcionan, pero se sienten un poco extrañas.
Sol 1
=CELL("contents",INDIRECT(ADDRESS(B1,B2)))
Sol 2
=CELL("contents",OFFSET($A$1, B1-1,B2-1))
¿No existe un método menos detallado? (como = CellValue (fila, columna) o lo que sea)?
Edición / Aclaración: solo quiero usar las fórmulas de la hoja de cálculo de Excel. Sin VBA. En resumen, busco prácticamente el equivalente del método VBA Cells () como una fórmula de Excel.
excel
excel-formula
Philipp
fuente
fuente
Respuestas:
No necesita la parte CELL () de sus fórmulas:
o
ambos funcionarán. Tenga en cuenta que ambos
INDIRECT
yOFFSET
son funciones volátiles. Las funciones volátiles pueden ralentizar el cálculo porque se calculan en cada nuevo cálculo.fuente
INDIRECT
+ADDRESS
es el camino a seguir. Excel en mi idioma se traduceOFFSET
en 2 palabras separadas por un punto. ¡Eso es lo peor (junto con diéresis en los nombres de las funciones)!Prueba = índice (ARRAY, FILA, COLUMNA)
donde: Matriz: seleccione toda la hoja Fila, Columna: Sus referencias de fila y columna
Eso debería ser más fácil de entender para quienes miran la fórmula.
fuente
Me tomó un tiempo, pero así es como lo hice dinámico. No depende de una mesa ordenada.
Primero comencé con una columna de nombres de estados (Columna A) y una columna de aviones en cada estado (Columna B). (La fila 1 es una fila de encabezado).
Encontrar la celda que contiene el número de aviones fue:
Puse eso en una celda y luego le di a esa celda un nombre, "StateRow" Luego, usando los consejos de arriba, terminé con esto:
Esto devuelve el nombre del estado del valor dinámico en la fila "StateRow", columna 1
Ahora, como los valores en la columna de recuento cambian con el tiempo a medida que se ingresan más datos, siempre sé qué estado tiene la mayor cantidad de aviones.
fuente