Puedes conseguir que funcione una especie de macrofacilidad. Pruebe esto:
Inserta una hoja separada, haz que el nombre de la tabla sea único para la hoja de cálculo (yo uso "Macros"), y asegúrate de que la tabla tiene una fila de cabecera y una columna de cabecera. A continuación, etiquete la cabecera de la columna A como "Nombre" y la de la columna B como "macro". De este modo, dispondrás de un sistema de nomenclatura abreviado y autodocumentado. Para añadir una macro, elige un nombre para ella, pon el nombre en la columna A y el código en la columna B y luego llámala. Si los nombres de la tabla, la fila y la columna están configurados correctamente, entonces $macro $myMacroName
lo hará.
Ejemplo: tienes tres casillas de verificación en lugares conocidos (digamos $A$1, $A$2 y $A$3) y necesitas comprobar repetidamente si alguna casilla está marcada y luego realizar un código específico diferente para cada casilla. Lo siguiente en las columnas A y B de cualquier fila de su tabla de Macros logrará el objetivo.
anyBoxChecked =IFERROR(CHOOSE(MATCH(TRUE,$A$1:$A$3,0),1,2,3),0)
runCheckbox =INDIRECT("$macro $runCheckbox"&$macro $anyBoxChecked)
runCheckbox0 ="ERROR"
runCheckbox1 =specific code for checkbox $A$1
runCheckbox2 =specific code for checkbox $A$2
runCheckbox3 =specific code for checkbox $A$3
Tenga en cuenta que la declaración de la macro debe ser siempre preservada por filas y columnas (es decir, con $s).
Este es un ejemplo complejo (como que me fui a la ciudad en él) con macros incluyendo macros y llamadas indirectas a macros.
Pero al utilizar $macro $anyBoxChecked<>0
tiene un booleano que representa si alguna de las tres casillas está marcada y al usar $macro $runCheckbox
puede ejecutar un código específico de casilla de verificación automáticamente y obtener un mensaje de error si ninguna de las casillas está marcada.
Ahora la mala noticia: estas macros no aceptan ningún parámetro y no puedes utilizar ninguna función que dependa de la ubicación. Así que el ejemplo para el que pediste ayuda, OFFSET($A$2,0,0,ROW()-1,1)
no puede ser una de estas macros porque ROW()
devolverá el número de fila de la macro, no el número de fila de la celda desde la que se llamó a la macro.
Pero anímate; yo estaba exactamente en el mismo aprieto que tú y el uso de este sistema, junto con un juicioso análisis de código, me permitió reducir sustancialmente mi huella de código y documentar mucho mejor el código restante. También parece mejorar el rendimiento.
Otra nota: puedes tener las filas de la macro en cualquier orden y añadir, eliminar o moverlas tanto como quieras. Numbers se encarga automáticamente de los cambios de fila para que no tengas que cambiar ninguna llamada a la macro.
Diviértete.
(por cierto, estoy ejecutando Numbers 6.0 (6194) en Mojave 10.14.4.