¿Cómo evitar cortar y pegar datos que cambian las referencias en las fórmulas?

49

Hojas de cálculo de Google tiene una función en la que si tiene una referencia a una celda de datos en una fórmula, y corta los datos de esa celda y los pega en una nueva ubicación, la referencia en la fórmula se actualiza para apuntar a la nueva ubicación de la celda.

Me gustaría poder cortar y pegar mis datos sin cambiar mis fórmulas.

He hecho algunas cosas horribles en el pasado relacionadas con la INDIRECT()función para evitar esta característica, pero parece que tiene que haber una manera más fácil. ¿Alguna sugerencia?

grahamparks
fuente
2
divertido ... Nunca pensé en esta característica como un error. Ha funcionado, esto estuvo en Excel durante décadas.
mhoran_psprep
1
¿Encontró el tiempo para verificar las respuestas dadas? Quizás puedas marcar una de ellas como la mejor respuesta.
Jacob Jan Tuinstra
1
Muchas preguntas diferentes se responden a continuación. ¿Se puede limpiar la pregunta? Creo que un ejemplo de su problema sería este: la celda A2 contiene una fórmula como "= B1 + 5". B1 contiene "42". A2 muestra "47", como se esperaba. Pero te has dado cuenta de que B1 no debería tener "42", C1 debería tener "42" y B1 debería tener "58". Hace clic en B1, "corta", hace clic en C1, pega. B1 ahora está en blanco (esperado), C1 ahora es "42" (esperado) pero A2 todavía muestra "47", porque A2 se actualizó automáticamente a "= C1 + 5", para seguir el corte y pegado (no esperado). Lo que querías era que A2 permaneciera "= B1 + 5". Estoy en lo cierto?
cesoid

Respuestas:

22

La =$A$1notación también se puede mover automáticamente si se cambia el valor en (digamos) A1.

La única solución segura es incluir todas sus referencias INDIRECT, por ejemplo, =INDIRECT("$A$1")o incluso solo =INDIRECT("A1").

La dificultad con cualquiera de estas soluciones es donde tienes muchas de la misma fórmula, por ej.

=A1
=A2
=A3
...
=A99

Normalmente, debe completar el primero =A1y luego copiar y pegar (o arrastrar hacia abajo usando el relleno automático) para completar la fórmula consecutiva automáticamente. Sin embargo, si la primera fórmula es =$A$1o =INDIRECT("A1")entonces este truco no funcionará (de hecho, esto es para qué $sirve, para evitar que se cambie automáticamente).

Si tiene muchas fórmulas consecutivas, una solución es:

  1. Cree la fórmula como lo hace normalmente (use normal =A1y autocompletar)
  2. Use el diálogo de reemplazo ( Ctrl+ H) y use "buscar en fórmulas" para envolver todo =A1, =A2... =A99en el =INDIRECT("A1")etc. Tenga en cuenta que tiene la opción de usar expresiones regulares al hacer una búsqueda y reemplazo.
Motti Strom
fuente
Respuesta actualizada a sugerir el uso de la mejor de buscar y reemplazar en Nuevas Hojas de cálculo de Google, lo que puede hacer una sustitución en las fórmulas y las expresiones regulares de uso,
Motti Strom
1
¿Puede dar un ejemplo de cuáles serían los parámetros de búsqueda / reemplazo para envolver todas las referencias de celda en una fórmula con INDIRECTO?
Michael
Puede usar INDIRECTO en combinación con ROW () para tener una fórmula que opera en la fila actual. Por ejemplo: = A1 + B1 se convierte en = INDIRECTO ("A" y FILA ()) + INDIRECTO ("B" y FILA ())
Evil Pigeon
31

Desde el foro de Google Docs :

Seleccione el rango de celdas. Luego use Ctrl+ C(copiar; esto debería poner las celdas y sus fórmulas en el búfer de pasta).

Ahora arrastre (desplace el cursor sobre el borde de la selección hasta que el cursor del mouse se convierta en una mano; ahora puede arrastrar) las celdas seleccionadas a la nueva posición.

Vuelva a la posición original superior izquierda de las celdas copiadas y use Ctrl+ V(pegar).

Ahora debe tener dos conjuntos de fórmulas que hagan referencia a las mismas celdas.

Matt McClure
fuente
66
Esta es la única respuesta que conserva las fórmulas.
amcnabb
3
De acuerdo: esta es la única respuesta correcta.
stevemidgley
1
¡Gracias! Me sorprendió que haya una diferencia entre "Arrastrar" y copiar / pegar.
rcreswick
Entonces, si desea cortar y pegar, solo necesita seleccionar el rango + arrastrar parte, pero si desea copiar necesita los otros pasos adicionales para preservar el original.
Mu Mind
2
Un método mejor: duplicar la hoja, cortar del clon de la hoja, pegarla en la hoja original en la nueva ubicación donde la necesite. Cuando haya terminado, elimine el clon de la hoja. De esta manera, las referencias no se verán afectadas.
ADTC
30

Encontré esto buscando un problema similar y terminé encontrando una solución para Excel que parece funcionar perfectamente en las hojas de cálculo de Google.

Para las referencias de celda que no desea cambiar en pegar, simplemente agregue $antes de cada parte.

Entonces G12se convertiría$G$12

Una celda de una hoja de cálculo que estoy usando que hace lo que necesito, se parece a esto:

 =$G$1&Sheet1!B3&Sheet1!A3&$G$2
Leonard
fuente
1
Esto no funcionó para mí. Vea mi alternativa a continuación webapps.stackexchange.com/questions/22558/…
Motti Strom
@ Leonard, Wow, la sintaxis es horrible . Es mucho más intuitivo si es al revés, es decir, las celdas relativas se usan $mientras que las celdas absolutas son predeterminadas.
Pacerier
@Pacerier Estoy completamente de acuerdo contigo, aunque funciona, es horrible y difícil de leer. Sin embargo, no uso hojas de cálculo con la frecuencia suficiente para entender lo que estás sugiriendo. ¿Podrías dar más detalles?
Leonard
@Leonard, quise decir que el comportamiento predeterminado es diferente, así que en lugar de hacerlo $G$1&Sheet1!B3&Sheet1!A3&$G$2, lo hacemos G1&Sheet1!$B$3&Sheet1!$A$3&G2.
Pacerier
1
@grahamparks: Entonces vota a favor y posiblemente dejes un comentario de por qué no es una solución. No intente agregar su propio comentario en la respuesta.
cerveza el
7

En las hojas de cálculo de Google, para cortar y pegar celdas sin cambiar automáticamente sus fórmulas, usa Ctrl+ Xpara cortar (o Ctrl+ Cpara copiar) y Ctrl+ Shift+ Vpara pegar.

El Shiftle dice a Google Sheets que deje sus fórmulas en paz.

pingüino luchador
fuente
Para su información, si está utilizando aplicaciones como Flycut (mac) con el atajo CTRL + SHIFT + V ya activo, entrará en conflicto con el atajo de la hoja de cálculo y el bloqueo de fórmula no funcionará. Desactivar el acceso directo del Flycut aplicación, o simplemente dejar que primero antes de hacer CTRL + SHIFT + V .
Hlung
13
La modificación de pegar con Shift parece hacer que los valores de pegado de la hoja de cálculo de Google en lugar de las fórmulas no modificadas.
Matt McClure
44
Esto es incorrecto: ctrl-shift-v simplemente pegará los "valores" de sus fórmulas. Esto evitará la transposición de sus datos, pero las celdas resultantes contendrán valores estáticos, no fórmulas.
stevemidgley
1
No funciona , -1.
Pacerier
1
Yo nunca corto. Cuando pega con ctrl+ shift+ v, siempre copia los valores, incluso si hizo ctrl+ xen las celdas de origen.
sparebytes
5

Evite esto de la misma manera que en Excel:

COPIE y pegue los datos, y luego regrese y elimínelos del lugar original.

MaryC.fromNZ
fuente
3

Cortar (en lugar de Copiar) parece funcionar para mí, probablemente por la misma razón que funciona arrastrar celdas seleccionadas, es decir, es la misma operación. Esta es también la única forma en que sé pegar en otra página sin cambiar la fórmula.

Si está intentando hacer una Copia en lugar de un Movimiento, use el método de arrastre (copie antes de arrastrar) o cópielo primero en otro lugar de la página.

Peter Tseng
fuente
2

Para mover un rango de celdas a una nueva ubicación en Hojas de cálculo de Google:

1. Seleccione el rango de celdas que desea mover
2. Mueva el mouse a cualquier borde de la selección hasta que el cursor se convierta en una mano
3. Arrastre las celdas a la nueva ubicación

Esto hace lo que debería, los mueve , por lo que toda la información de la celda permanecerá exactamente como estaba en su ubicación original.

PD. Google también ha instruido esto aquí, pero no dice que puede arrastrar desde cualquier borde, solo el superior, ¡y es por eso que mi instrucción es mejor! :) También es bueno tener en cuenta que las celdas que seleccione deben ser adyacentes para que esto funcione.

Dniz
fuente
Muy buena captura!
marikamitsos
El mismo método se menciona aquí también . Todavía. Este es mejor investigado y explicado.
marikamitsos
1

Haga una copia de texto de la fórmula en lugar de una copia de celda: use el mouse para seleccionar el texto de la fórmula y presione CTRL + C. Luego seleccione el campo de destino y presione CTRL + V. Esto preserva la fórmula

Claus Rasmussen
fuente
1
Pero tendría que repetir esto para cada celda ... ¿Hay alguna forma de copiar texto a través de varias celdas?
Pacerier
0

La manera más fácil es seleccionar todas las celdas que desea mover y arrastrar / soltar a donde desee. Si tiene fórmulas en otras celdas que hacían referencia a la ubicación original de las celdas que movió, las fórmulas de referencia se actualizarán automáticamente a la nueva ubicación de las celdas que movió. ¡Espero que esto ayude! (Suponiendo que esto funcione en Excel, pero solo lo hice en Hojas de cálculo de Google).

Danny
fuente
0
  1. Seleccionar celdas con el mouse
  2. Copiar portapapeles
  3. Mueva las celdas seleccionadas a una nueva ubicación con el mouse capturando el borde del grupo
  4. Pegue del portapapeles en el espacio vacío del que acaba de mover todo
Alex Debkaliuk
fuente
0

Simplemente encuentro y reemplazo todas las instancias de '=' con '' (o la mayor cantidad de fórmulas que estoy tratando de copiar como puedo) para convertir todas las fórmulas en texto sin formato. Copio y pego las celdas, luego agrego el '=' de nuevo.

Nota: esto probablemente no funcionará para hojas grandes, ya que puede tener consecuencias no deseadas al editar otras celdas, pero generalmente funciona para mis propósitos.

Luke Redmore
fuente
0

Aquí hay otra opción:

  1. Cambie al modo "Mostrar fórmulas" (en el menú Ver)
  2. copia el área deseada
  3. Pegar en algún editor de texto externo
  4. Haga algún cambio: puede ser tan simple como agregar un espacio en alguna parte
  5. Copie las fórmulas del editor de texto externo.
  6. Pegar en el área objetivo en la hoja
  7. Desactivar Mostrar fórmulas

Si bien esto parece un procedimiento largo, en la práctica son solo algunas pulsaciones de teclas. Además, el paso 4 es obligatorio en mi configuración; sin él, Sheets seguirá actualizando las ubicaciones de las celdas como si fuera una copia y pegue directo. YMMV.

eran
fuente
0

El uso INDIRECT()funciona muy bien para preservar la posición absoluta de las referencias después de que los objetivos se hayan copiado y pegado, pero el problema es que también conserva la posición absoluta cuando se copia la fórmula , lo que significa que no puede extender fácilmente una fórmula para cubrir una gran rango al usarlo.

La solución es combinar INDIRECT()con ROW(), COLUMN()y ADDRESS()generar mediante programación la posición de la celda objetivo basada en la celda de la fórmula.

En el caso más simple, como cuando la celda objetivo tiene una columna fija y siempre permanece en la misma fila que la fórmula, esto se puede hacer de la siguiente manera:

INDIRECT("A"&ROW())

Para introducir desplazamientos dinámicos desde la celda de fórmula, puede usar ADDRESS():

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

En la siguiente captura de pantalla, las fórmulas en el B1:E1se extendieron a las 16 filas debajo, y luego la secuencia numérica A7:A10se cortó y pegó 6 celdas hacia abajo. Como puede ver, las fórmulas más simples se ajustaban y desincronizaban automáticamente, mientras que el uso ingenuo de INDIRECT()no extrapolaba correctamente en todas las filas, pero las dos fórmulas que se usan INDIRECT()junto con la recuperación programática de ubicaciones de filas y columnas pudieron mantener sus referencias:

Imagen de demostración

Will Chen
fuente
-1

Puede presionar F4para recorrer las distintas opciones de referencia absoluta cuando el cursor está en la celda o rango. Esto funciona en Mac y Windows.

Mick Liubinskas
fuente