48 votos

¿Intercambiar el contenido de las celdas en Excel?

¿Existe una manera fácil de intercambiar el contenido de dos celdas en Microsoft Excel?

Por fácil, me refiero a un atajo de teclado o a un elemento de menú, sin que implique copiar en celdas temporales o escribir VBA scripts o algo así. En otras palabras, estoy buscando una forma de seleccionar dos celdas y hacer clic en algún elemento del menú o pulsar alguna combinación de teclas que intercambie su contenido. Seguramente, tiene que haber una manera de hacer esto.

0 votos

Esto parece una implementación muy específica de una ordenación, y si no está ya presente en las opciones avanzadas de ordenación, me sorprendería que se pudiera encontrar en otro lugar, como una solución no VBA

50voto

user190216 Puntos 236

De: http://www.extendoffice.com/documents/excel/860-excel-swap-contents-of-two-cells.html

A veces, hay que intercambiar dos celdas contiguas. Podemos hacerlo manualmente de forma sencilla. Mira la siguiente captura de pantalla, quiero intercambiar la celda A4 y B4, por favor haga lo siguiente:

enter image description here

  1. Seleccione la celda que desea intercambiar. En este ejemplo, seleccione la celda A4.

  2. Pulse Turno y coloca el cursor en el borde derecho.

  3. A continuación, arrastre el cursor hasta el borde derecho de la celda B4.

  4. Cuando aparezca "工", suelte el ratón.

  5. Y los contenidos de las dos celdas se han intercambiado.

enter image description here

Con este método, también podemos intercambiar dos filas o columnas contiguas.

8 votos

Esta debería ser la respuesta seleccionada para mí. Gracias.

2 votos

A mí no me funciona. Sólo inserta celdas vacías entre esas 2 celdas

4 votos

Esto sólo funciona para las celdas adyacentes, que no es lo que pedía la pregunta original.

23voto

Jonas Heidelberg Puntos 892

Para el caso específico de rangos rectangulares adyacentes del mismo tamaño puede utilizar el método descrito en esta respuesta a una pregunta similar .

  1. Seleccione el rango derecho o inferior
  2. Pulse Ctrl + X
  3. Seleccione el rango adyacente (es decir, directamente arriba o a la izquierda)
  4. Pulse Ctrl + <strong>+</strong> (el + suele estar por encima del = para que esto se traduzca en Ctrl + Shift + = )

Tenga en cuenta que puede utilizar el mismo procedimiento para intercambiar filas o columnas enteras adyacentes.

1 votos

Excelente. Esto es exactamente lo que estaba buscando. Ser capaz de utilizar los atajos de teclado y ser capaz de operar en múltiples celdas es mucho más rápido.

0 votos

Esto no funciona para mí. Y las celdas son adyacentes entre sí. No sé por qué no funciona. ¿Hay alguna explicación particular para este comando?

15voto

radai Puntos 165

Por lo más fácil, me refiero a un atajo de teclado o elemento de menú, sin que suponga la copia temporal de las células o de la escritura de scripts VBA ni nada de eso. Estoy buscando una forma para seleccionar sólo dos celdas y haga clic en algún elemento de menú o pulse alguna combinación de teclas que cambiarán sus contenidos.

¿Por qué imponer esta restricción? Crear una macro hace que esto sea trivial. Que yo sepa, no se puede hacer de otra manera. Usted puede asignar la macro a un botón o una tecla de acceso directo.

Sub Swap()     
    If Selection.Count <> 2 Then     
         MsgBox "Select 2 cells (only) to swap."     
         Exit Sub     
    End If     
    Set trange = Selection     
    If trange.Areas.Count = 2 Then     
         temp = trange.Areas(2)     
         trange.Areas(2) = trange.Areas(1)     
         trange.Areas(1) = temp     
    Else     
         temp = trange(1)     
         trange(1) = trange(2)     
         trange(2) = temp     
    End If     
End Sub

4 votos

No soy un experto en VBA y no tengo ni tiempo ni ganas de convertirme en uno. Además, utilizo con frecuencia muchos ordenadores diferentes. Sería bueno tener el intercambio disponible en todos los equipos que utilizo para Excel, sin tener que buscar el código de la macro VBA que lo hace, para que pueda vincularlo a una tecla de acceso rápido.

3 votos

@Dan Estaría bien que todo el mundo pudiera tener su funcionalidad favorita integrada en Excel, pero entonces se convertiría en un lío aún más hinchado de lo que ya es. Hay una razón por la que Excel tiene un lenguaje de macros, para automatizar tareas repetitivas como esta. He publicado el código encontrado a través de una búsqueda en Google. Usted no tienen para ser un experto.

0 votos

+1 vba es la forma en la que excel te permite añadir tus funciones de mascota. también hay formas de hacer que vba esté disponible en muchos ordenadores, para ti solo o para todos (por ejemplo, libro de trabajo personal, o addins)

4voto

mahemoff Puntos 163

No. No hay forma de intercambiar el contenido de dos celdas en Excel, sin escribir tu propia macro para hacerlo.

EDIT: Parece que ahora puede haber una manera fácil de intercambiar el contenido de las celdas en las versiones más recientes de Excel, por lo que esta respuesta es probablemente ahora fuera de fecha.

0 votos

Esta afirmación es incorrecta. Ver la respuesta del usuario190216.

0 votos

@KarlRookey Originalmente esa respuesta decía (y más o menos lo sigue haciendo) que las celdas deben ser adyacentes. Parece que esto ya no es cierto para las versiones más recientes de Excel. Si ese es el caso, entonces, sí, ahora hay una respuesta mejor. Gracias.

0 votos

Gracias por decir esto. Todos los ejemplos aquí tienen un efecto secundario de intercambiar dos celdas (si son adyacentes) pero no "intercambia celdas", sino que las "desplaza".

2voto

eyurdakul Puntos 484

Seleccione el primer conjunto de celdas a intercambiar y pulse ctrl + x :

Selecciona las celdas que están al lado de las que quieres intercambiar y pulsa ctrl + + .

1 votos

Esto sólo funciona si las celdas son adyacentes. De lo contrario, todo el material se desplaza cerca de las celdas de destino.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: