Como escrever uma função uma vez e atualizá-la em muitas células?

1

Geralmente, escrevo uma função em uma célula e, em seguida, copio-a em muitas células. As cópias, em seguida, referem-se às suas próprias linhas corretas. Mas se eu mudar a função na primeira célula, as cópias não serão afetadas. Eu tenho que substituir todas as cópias por novas. É copiar e colar a programação quando o que eu realmente quero é escrever uma função em um lugar e chamar essa função como se fosse uma cópia de um monte de células subordinadas.

Existe uma técnica para alcançar isso, ou estou esperando muito do modelo de programação de planilha?

    
por polymath69 28.04.2015 / 00:05

3 respostas

3

Você pode escrever sua própria função usando o StarBasic / LibreOffice Basic ou o Python. Isso é muito fácil e permite atualizar uma função que afeta todas as células em que a fórmula é usada.

Conforme descrito aqui (cortesia do blog de Louic) , faça o seguinte:

  1. Vá para Ferramentas - > Macros - > Organize Macros - > Libreoffice Basic;
  2. Selecione o Módulo1;
  3. Clique em editar;
  4. Insira o código da função, por exemplo:
Function Area(width, height)
    Area = width * height
End Function

Agora, você pode usar =AREA(arg; arg2) em sua planilha. Se você alterar a maneira como o resultado é calculado, isso afeta todas as ocorrências de =AREA() .

EDITAR

Se você não quiser colocar a macro no repositório de macro central da sua instalação LO, poderá salvá-la em seu arquivo ods. Então, é acessível em um PC diferente também. Para fazer isso, basta selecionar seu arquivo atual como local para salvar a macro ao criá-la (etapa 1 acima):

    
por 28.04.2015 / 07:20
1

Uma solução simples sem Macros: basta colocar os argumentos variáveis em células separadas. Então, ao invés de

=IF(MOD(A2,30)=19,Strings.$A$1,"")

(com os valores 30 e 19 fixed), basta substituir por

=IF(MOD(A2,$E$1)=$E$2,Strings.$A$1,"")

e coloque os valores 30 e 19 nas células E1 e E2, respectivamente. Agora, se você alterar E1 e / ou E2, todas as fórmulas usarão esses valores.

Se houver certas combinações desses dois valores que você precisa aplicar com frequência, você pode definir cenários de acordo

    
por 15.06.2015 / 16:11
0

Você pode criar uma célula de função de comparação e referir-se a essa de suas outras funções.

Digamos que você crie esta função em A10, então A10 ficaria assim:

= se (MOD (A2,30) = 19,1,0)

Agora, se você fizer sua outra função em A11, normalmente sua função será assim: = IF (MOD (A2,30) = 19, Strings. $ A $ 1, "")

Agora vai ficar assim: = if (A10 = 1, Strings. $ A $ 1, "")

Se você precisar alterar a parte da comparação, altere A10 e atualize para todas as células que se referem a ela.

    
por 15.06.2015 / 09:13