Como evitar cortar e colar dados alterando referências em fórmulas?


49

O Planilhas Google possui um recurso em que, se você tiver uma referência a uma célula de dados em uma fórmula, e você cortar os dados dessa célula e colá-los em um novo local, a referência na fórmula será atualizada para apontar para o novo local da célula.

Eu gostaria de poder cortar e colar meus dados sem alterar minhas fórmulas.

Eu fiz algumas coisas horríveis no passado envolvendo a INDIRECT()função para solucionar esse recurso, mas parece que deve haver uma maneira mais fácil. Alguma sugestão?


2
engraçado ... nunca pensei nisso como um bug. Ele funcionou em Excel por décadas.
mhoran_psprep

1
Você encontrou tempo para conferir as respostas dadas? Talvez você possa marcar um deles como a melhor resposta.
: 11133 Jacob Jan Tuinstra

1
Muitas perguntas diferentes são respondidas abaixo. A pergunta pode ser limpa? Penso que um exemplo do seu problema seria o seguinte: A célula A2 contém uma fórmula como "= B1 + 5". B1 contém "42". A2 exibe "47", conforme o esperado. Mas você percebeu que B1 não deveria ter "42", C1 deveria ter "42" e B1 deveria ter "58". Você clica em B1, "recorta", clica em C1, cola. B1 agora está em branco (esperado), C1 agora é "42" (esperado), mas A2 ainda exibe "47", porque A2 foi atualizado automaticamente para "= C1 + 5", para seguir o recortar e colar (não esperado). O que você queria era que A2 permanecesse "= B1 + 5". Estou certo?
Cesoid 3/07

Respostas:


22

A =$A$1notação também pode ser movida automaticamente se o valor em (digamos) A1for alterado.

A única solução infalível é incluir todas as suas referências INDIRECT, por exemplo, =INDIRECT("$A$1")ou mesmo apenas =INDIRECT("A1").

A dificuldade com qualquer uma dessas soluções é onde você tem muitas da mesma fórmula, por exemplo

=A1
=A2
=A3
...
=A99

Normalmente, você preenche o primeiro =A1e depois copia e cola (ou arrasta para baixo usando o preenchimento automático) para preencher automaticamente a fórmula consecutiva. Se, no entanto, a primeira fórmula for =$A$1ou não =INDIRECT("A1"), esse truque não funcionará (de fato, $é para isso - impedir que ele seja alterado automaticamente).

Se você tiver muitas fórmulas consecutivas, uma solução é:

  1. Crie a fórmula normalmente (use planície =A1e preenchimento automático)
  2. Use a caixa de diálogo substituir ( Ctrl+ H) e use "pesquisar em fórmulas" para agrupar tudo =A1, =A2... =A99nas =INDIRECT("A1")etc. Observe que você tem a opção de usar expressões regulares ao fazer uma busca e substituição.

Resposta atualizado para sugerir uso de melhor localizar e substituir em New Google Spreadsheets, o que pode fazer a substituição em fórmulas e usar expressões regulares,
Motti Strom

1
Você pode dar um exemplo de quais seriam os parâmetros de pesquisa / substituição para agrupar todas as referências de célula em uma fórmula com INDIRECT?
Michael

Você pode usar INDIRECT em combinação com ROW () para ter uma fórmula que opere na linha atual. Por exemplo: = A1 + B1 se torna = INDIRETO ("A" e ROW ()) + INDIRETO ("B" e ROW ())
Evil Pigeon

31

No fórum do Google Docs :

Selecione o intervalo de células. Em seguida, use Ctrl+ C(copiar; isso deve colocar as células e suas fórmulas no buffer de colagem).

Agora arraste (passe o mouse sobre a borda da seleção até o cursor do mouse se transformar em uma mão; agora você pode arrastar) as células selecionadas para a nova posição.

Volte à posição original superior esquerda das células copiadas e use Ctrl+ V(colar).

Agora você deve ter dois conjuntos de fórmulas referenciando as mesmas células.


6
Esta é a única resposta que preserva as fórmulas.
Amcnabb 15/09/14

3
Concordo - esta é a única resposta correta.
Stevemidgley

1
Obrigado! Fiquei surpreso com a diferença entre "Arrastar" e copiar / colar!
precisa saber é o seguinte

Portanto, se você deseja recortar e colar, basta selecionar o intervalo selecionado e arrastar a parte, mas se desejar copiar, precisará de outras etapas adicionais para preservar o original.
Mu Mente

2
Um método melhor: duplique a folha, recorte do clone da folha, cole na folha original no novo local onde você precisar. Quando terminar, exclua o clone da planilha. Dessa forma, as referências permanecem inalteradas.
ADTC

30

Deparei com isso procurando um problema semelhante e acabei encontrando uma solução para o Excel que parece funcionar perfeitamente nas planilhas do Google.

Para as referências de célula que você não deseja alterar na colagem, basta adicionar $antes de cada parte.

Então G12se tornaria$G$12

Uma célula de uma planilha que estou usando, que faz o que eu preciso, se parece com isso:

 =$G$1&Sheet1!B3&Sheet1!A3&$G$2

1
Isso não funcionou para mim. Veja minha alternativa abaixo webapps.stackexchange.com/questions/22558/…
Motti Strom

@ Leonard, wow a sintaxe é horrível . É muito mais intuitivo se for o contrário, ou seja, células relativas usam $enquanto células absolutas são padrão.
Pacerier 20/12/14

@ Pacerier Concordo plenamente com você, embora funcione, é horrível e difícil de ler. Não uso planilhas com frequência suficiente para entender o que você está sugerindo. Você poderia elaborar?
Leonard

@ Leonard, eu quis dizer que o comportamento padrão é diferente, então, em vez de $G$1&Sheet1!B3&Sheet1!A3&$G$2, nós fazemos G1&Sheet1!$B$3&Sheet1!$A$3&G2.
Pacerier

1
@grahamparks: Em seguida, faça um voto negativo e, possivelmente, deixe um comentário por que não é uma solução. Não tente adicionar seu próprio comentário à resposta.
ale

7

Nas Planilhas do Google, para cortar e colar células sem alterar automaticamente suas fórmulas, use Ctrl+ Xpara cortar (ou Ctrl+ Cpara copiar) e Ctrl+ Shift+ Vpara colar.

Ele Shiftdiz ao Planilhas Google para deixar suas fórmulas em paz.


ou seja, se você estiver usando aplicativos como o Flycut (mac) com o atalho CTRL + SHIFT + V já ativo, entrará em conflito com o atalho da planilha e o bloqueio da fórmula não funcionará. Atalho de Disable Flycut aplicativo, ou simplesmente fechá-la antes de fazer CTRL + SHIFT + V .
Hlung 30/07

13
Modificar colar com Shift parece fazer com que os valores da pasta da planilha do Google sejam substituídos por fórmulas não modificadas.
Matt McClure

4
Isso está incorreto - ctrl-shift-v simplesmente colará os "valores" de suas fórmulas. Isso impedirá a transposição dos dados, mas as células resultantes conterão valores estáticos, não fórmulas.
Stevemidgley

1
Não funciona , -1.
Pacerier 20/12/14

1
Eu nunca corto. Quando você cola com ctrl+ shift+ v, ele sempre copia os valores, mesmo se você fez ctrl+ xnas células de origem.
Sparebytes

5

Solução alternativa da mesma maneira que no Excel:

COPIAR e colar os dados, volte e exclua-os do local original.


3

Cortar (em vez de Copiar) parece funcionar para mim, provavelmente pelo mesmo motivo que arrastar as células selecionadas funciona - ou seja, é a mesma operação. Essa também é a única maneira que conheço de colar em outra página sem alterar a fórmula.

Se você estiver tentando fazer uma cópia em vez de uma movimentação, use o método de arrastar (copiar antes de arrastar) ou copie-o em outro lugar da página primeiro.


2

Para mover um intervalo de células para um novo local no Planilhas Google:

1. Selecione o intervalo de células que você deseja mover
2. Mova o mouse para qualquer extremidade da seleção até que o cursor mude para uma mão
3. Arraste suas células para o novo local

Isso faz o que deveria - move-os - para que todas as informações da célula permaneçam exatamente como estavam no local original.

ps. O Google também instruiu isso aqui, mas eles não dizem que você pode arrastar de qualquer borda, apenas a de cima, e é por isso que minhas instruções são melhores! :) Também é bom observar que as células que você seleciona precisam estar adjacentes para que isso funcione.


Captura muito agradável!
marikamitsos 10/10

O mesmo método é mencionado aqui também . Ainda. Este é melhor pesquisado e explicado.
marikamitsos 10/10

1

Faça uma cópia de texto da fórmula em vez de uma célula: Use o mouse para selecionar o texto da fórmula e pressione CTRL + C. Em seguida, selecione o campo de destino e pressione CTRL + V. Isso preserva a fórmula


1
Mas você teria que repetir isso para cada célula ... Existe alguma maneira de copiar texto através de várias células?
Pacerier 20/12/14

0

A maneira mais fácil é selecionar todas as células que você deseja mover e arrastar / soltar para onde você as deseja. Se você tiver fórmulas em outras células que estavam fazendo referência novamente ao local original das células que você moveu, as fórmulas de referência serão atualizadas automaticamente para o novo local das células que você moveu. Espero que isto ajude! (Supondo que isso funcione no Excel, mas eu o fiz apenas no Planilhas Google).


0
  1. Selecionar células com o mouse
  2. Copiar co área de transferência
  3. Mova as células selecionadas para um novo local com o mouse, capturando a borda do grupo
  4. Cole da área de transferência no espaço vazio do qual você acabou de mover tudo

0

Acabei de encontrar e substituir todas as instâncias de '=' por '' (ou o máximo de fórmulas que estou tentando copiar possível) para transformar todas as fórmulas em texto sem formatação. Copio e colo as células e adiciono o '=' de volta.

Nota: isso provavelmente não funcionará para folhas grandes, pois pode ter consequências indesejadas ao editar outras células, mas geralmente funciona para meus propósitos.


0

Aqui está outra opção:

  1. Alterne para o modo "Mostrar fórmulas" (no menu Exibir)
  2. copie a área desejada
  3. Colar em algum editor de texto externo
  4. Faça algumas alterações - pode ser tão simples quanto adicionar um espaço em algum lugar
  5. Copie as fórmulas do editor de texto externo
  6. Cole na área de destino na planilha
  7. Desativar Mostrar fórmulas

Embora isso pareça um procedimento longo, na prática são apenas alguns pressionamentos de tecla. Além disso, a etapa 4 é obrigatória na minha configuração - sem ela, o Planilhas ainda atualizará os locais das células como se fosse uma cópia e colagem direta. YMMV.


0

O uso de INDIRECT()obras excelentes para preservar a posição absoluta das referências depois que os destinos foram copiados e colados, mas o problema é que ele também preserva a posição absoluta quando a fórmula é copiada, o que significa que você não pode estender facilmente uma fórmula para cobrir uma grande quantidade alcance ao usá-lo.

A solução é combinar INDIRECT()com ROW(), COLUMN()e ADDRESS()gerar programaticamente a posição da célula de destino com base na célula da fórmula.

No caso mais simples, como quando a célula de destino tem uma coluna fixa e sempre permanece na mesma linha que a fórmula, isso pode ser feito da seguinte maneira:

INDIRECT("A"&ROW())

Para introduzir deslocamentos dinâmicos da célula da fórmula, você pode usar ADDRESS():

INDIRECT(ADDRESS(ROW()-1,COL()-4))

Na captura de tela abaixo, as fórmulas no B1:E1foram estendidas para as 16 linhas abaixo e, em seguida, a sequência numérica A7:A10foi cortada e colada em 6 células. Como você pode ver, as fórmulas mais simples foram ajustadas e dessincronizadas automaticamente, enquanto o uso ingênuo de INDIRECT()não extrapolou corretamente todas as linhas, mas as duas fórmulas usadas INDIRECT()com a recuperação programática dos locais das linhas e das colunas foram capazes de manter suas referências:

Imagem de demonstração


-1

Você pode pressionar F4para percorrer as várias opções de referência absoluta quando o cursor estiver na célula ou no intervalo. Isso funciona no Mac e Windows.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.