A menudo ocurre que escribo una función en una celda y luego la copio en muchas celdas. Las copias se refieren a sus propias filas correctas. Pero si cambio la función en la primera celda, las copias no se verán afectadas. Tengo que reemplazar todas las copias por otras nuevas. Es programación de copiar y pegar cuando lo que realmente quiero es escribir una función en un lugar y llamar a esa función como si fuera una copia de un montón de celdas subordinadas.
¿Existe una técnica para lograr esto, o espero demasiado del modelo de programación de hoja de cálculo?
worksheet-function
libreoffice-calc
polymath69
fuente
fuente
Respuestas:
Puede escribir su propia función con StarBasic / LibreOffice Basic o Python. Esto es muy fácil y permite actualizar una función que afecta a todas las celdas donde se usa la fórmula.
Como se describe aquí (cortesía del weblog de Louic) , solo haga lo siguiente:
Ahora, puede usar
=AREA(arg; arg2)
en su hoja de cálculo. Si cambia la forma en que se calcula el resultado, esto afecta a todas las ocurrencias de=AREA()
.EDITAR
Si no desea colocar la macro en el repositorio de macros central de su instalación de LO, puede guardarla en su archivo ods. Por lo tanto, también es accesible en una PC diferente. Para hacerlo, simplemente seleccione su archivo actual como lugar para guardar la macro al crearla (paso 1 anterior):
fuente
Una solución simple sin macros: simplemente coloque los argumentos variables en celdas separadas. Entonces en lugar de
(con los valores
30
y19
fijo), simplemente reemplace esto pory poner los valores
30
y19
en las celdas E1 y E2, respectivamente. Ahora, si cambia E1 y / o E2, cada fórmula usará esos valores.Si hay ciertas combinaciones de esos dos valores que necesita aplicar a menudo, puede definir escenarios en consecuencia
fuente
Puede crear una celda de función de comparación y consultarla desde sus otras funciones.
Digamos que crea esta función en A10, entonces A10 se vería así:
= si (MOD (A2,30) = 19,1,0)
Ahora, si realiza su otra función en digamos A11, normalmente su función se ve así: = IF (MOD (A2,30) = 19, Strings. $ A $ 1, "")
Ahora se verá así: = if (A10 = 1, Strings. $ A $ 1, "")
Si necesita cambiar la parte de comparación, cambia A10 y se actualiza para todas las celdas que se refieren a ella.
fuente