Zellinhalte in Excel tauschen?

42

Gibt es eine einfache Möglichkeit, den Inhalt zweier Zellen in Microsoft Excel auszutauschen?

Mit einfach meine ich entweder eine Tastenkombination oder ein Menüelement, ohne das Kopieren in temporäre Zellen oder das Schreiben von VBA-Skripten oder dergleichen. Mit anderen Worten, ich suche nach einer Möglichkeit, nur zwei Zellen auszuwählen und auf einen Menüeintrag zu klicken oder eine Tastenkombination zu drücken, die deren Inhalt vertauscht. Es muss doch einen Weg geben, dies zu tun?

Dan Moulding
quelle
Dies scheint eine sehr spezifische Implementierung einer Sortierung zu sein, und wenn sie nicht bereits in den erweiterten Sortierungsoptionen enthalten ist, wäre ich überrascht, wenn Sie sie an anderer Stelle als Nicht-VBA-Lösung finden
könnten

Antworten:

47

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

Manchmal müssen zwei benachbarte Zellen ausgetauscht werden. Wir können es leicht manuell tun. Schauen Sie sich den folgenden Screenshot an, ich möchte die Zellen A4 und B4 tauschen. Gehen Sie dazu wie folgt vor:

Bildbeschreibung hier eingeben

  1. Wählen Sie die Zelle aus, die Sie austauschen möchten. Wählen Sie in diesem Beispiel die Zelle A4 aus.

  2. Drücken Sie die Umschalttaste und setzen Sie den Cursor an den rechten Rand.

  3. Ziehen Sie dann den Cursor an den rechten Rand von Zelle B4.

  4. Wenn dort „工“ angezeigt wird, lassen Sie die Maus los.

  5. Und die beiden Zellinhalte wurden getauscht.

Bildbeschreibung hier eingeben

Mit dieser Methode können wir auch zwei benachbarte Zeilen oder Spalten vertauschen.

user190216
quelle
8
Dies sollte der ausgewählte Anser für mich sein. Vielen Dank!
Nam G VU
2
Das funktioniert bei mir nicht. Es werden nur leere Zellen zwischen diesen 2 Zellen
eingefügt
2
Dies funktioniert nur für benachbarte Zellen, was nicht der ursprünglichen Frage entspricht.
Jpierson
Bei Excel 2010 funktioniert das überhaupt nicht - es blinkt schnell, aber der Inhalt der Zellen bleibt unverändert.
Hashim
@phuclv Ich hatte das gleiche Problem wie Sie, bevor mir klar wurde, dass ich in Schritt 2 den Mauszeiger eher auf den unteren rechten Rand als auf den mittleren rechten Rand setzte.
Richard
17

Für den speziellen Fall benachbarter rechteckiger Bereiche gleicher Größe können Sie die in dieser Antwort beschriebene Methode auf eine ähnliche Frage anwenden .

  1. Wählen Sie den rechten oder unteren Bereich
  2. Drücken Sie Ctrl+X
  3. Wählen Sie den angrenzenden Bereich (dh direkt über oder links)
  4. Drücken Sie Ctrl+ +(das +steht normalerweise über der =Taste, sodass dies in Ctrl+ Shift+ übersetzt wird =)

Beachten Sie, dass Sie auf dieselbe Weise ganze benachbarte Zeilen oder Spalten austauschen können.

Jonas Heidelberg
quelle
1
Ausgezeichnet. Genau das habe ich gesucht. Die Verwendung von Tastaturkürzeln und das Arbeiten mit mehreren Zellen ist viel schneller.
Anthony G - Gerechtigkeit für Monica
Das funktioniert bei mir nicht. Und die Zellen liegen nebeneinander. Ich weiß nicht, warum das nicht funktioniert. Gibt es eine spezielle Erklärung für diesen Befehl?
Smart Humanism
15

Mit einfach meine ich entweder eine Tastenkombination oder ein Menüelement, ohne das Kopieren in temporäre Zellen oder das Schreiben von VBA-Skripten oder dergleichen. Ich suche nach einer Möglichkeit, nur zwei Zellen auszuwählen und auf ein Menüelement zu klicken oder eine Tastenkombination zu drücken, mit der der Inhalt ausgetauscht wird.

Warum diese Einschränkung auferlegen? Das Erstellen eines Makros macht dies trivial. Soweit ich weiß, kann es nicht anders gemacht werden. Sie können das Makro einer Taste oder einem Hotkey zuweisen.

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     
Ghoppe
quelle
4
Ich bin kein VBA-Experte und habe weder die Zeit noch die Neigung, einer zu werden. Ich benutze auch häufig viele verschiedene Computer. Es wäre schön, Swap auf jedem Computer verfügbar zu haben, den ich für Excel verwende, ohne den Code für das VBA-Makro nachschlagen zu müssen, das es ausführt, damit ich es an einen Hotkey binden kann.
Dan Moulding
3
@Dan Es wäre schön, wenn jeder seine Lieblingsfunktionalität in Excel integrieren könnte, aber dann würde es noch aufgeblähter werden, als es bereits ist. Es gibt einen Grund, warum Excel eine Makrosprache hat, um sich wiederholende Aufgaben wie diese zu automatisieren. Ich habe Code gepostet, der über eine Google-Suche gefunden wurde. Sie müssen nicht haben , um ein Experte zu sein.
Ghoppe
Mit +1 VBA können Sie in Excel Ihre Haustierfunktionen hinzufügen. es gibt auch möglichkeiten, diese vba auf vielen computern verfügbar zu machen, nur für sich selbst oder für alle (zb persönliche arbeitsmappe oder addins)
chris neilsen
9
Ich würde kaum sagen, dass das Austauschen des Inhalts von zwei Zellen / Zeilen / Spalten eine Haustierfunktion ist.
Nicolai
5
@ghoppe Vielleicht nicht unbedingt erforderlich, aber wenn Sie eine schnelle Suche nach "den Inhalt von zwei Zellen in Excel tauschen" (die Sie bereits haben) durchführen, ist es ziemlich offensichtlich, dass Dan und ich kaum die Einzigen sind, die sich für diese Funktion interessieren.
Nicolai
5

Nein. Es gibt keine Möglichkeit, den Inhalt zweier Zellen in Excel zu tauschen, ohne dafür ein eigenes Makro zu schreiben.

BEARBEITEN: Es hört sich so an, als gäbe es jetzt eine einfache Möglichkeit, den Zellinhalt in neueren Versionen von Excel auszutauschen. Daher ist diese Antwort wahrscheinlich nicht mehr aktuell.

Dan Moulding
quelle
Diese Aussage ist falsch. Siehe die Antwort von user190216.
Karl Rookey
@KarlRookey Ursprünglich hieß es in dieser Antwort (und es tut es immer noch), dass die Zellen benachbart sein müssen. Es klingt so, als ob dies für neuere Versionen von Excel möglicherweise nicht mehr zutrifft. Wenn das der Fall ist, dann gibt es jetzt eine bessere Antwort. Vielen Dank!
Dan Moulding
Danke, dass du das sagst. Alle Beispiele haben den Nebeneffekt, dass zwei Zellen vertauscht werden (wenn sie benachbart sind), jedoch nicht "vertauscht", sondern verschoben werden.
Peter Ritchie
2

Wählen Sie die erste Gruppe von Zellen aus, die ausgetauscht werden sollen, und drücken Sie ctrl+ x:

Wählen Sie die Zellen neben denen aus, mit denen Sie tauschen möchten, und drücken Sie ctrl+ +.

user287020
quelle
1
Dies funktioniert nur, wenn Zellen benachbart sind. Andernfalls wird das gesamte Material in die Nähe der Zielzellen verschoben.
Tumchaaditya
0

Sie können bis zu 25 Elemente in die Zwischenablage einfügen, sodass Sie sie einfach mit STRG + TAB oder CMD + TAB MAC austauschen können

Aaron
quelle
2
Ist dies eine Standard-Mac-Funktion? Der Autor der Frage hat nicht angegeben, auf welcher Plattform sie sich befinden. Ich bin nicht sicher, ob die Standard-Zwischenablage in allen Windows-Versionen mehr als ein Element enthält, aber kostenlose Dienstprogramme sind verfügbar, um diese Funktionalität bereitzustellen (und die Tastaturkürzel können variieren). Könnten Sie Ihre Antwort erweitern, um sie für diesen Ansatz umfassender zu machen?
Fixer1234
Ich habe es unter Windows versucht, konnte es aber nicht herausfinden. Ich habe sogar die Strg + Umschalt + P-Option ausprobiert, die normalerweise in Visual Studio zum Einfügen aus dem Ring der Zwischenablage verwendet wird.
Jpierson
0
  • Wählen Sie die unterste Zelle aus, die Sie tauschen möchten
  • Drücken Sie Ctrl+ Xund gehen Sie zu der Zelle, mit der Sie tauschen möchten
  • Drücken Sie Ctrl+ Shift+=

Der Swap wird ausgeführt

mehndiratta co
quelle
Dies ist genau das Gleiche wie die Antwort von Jonas Heidelberg vor ( genau! ) Sechs Jahren und praktisch das Gleiche wie die Antwort von user287020 .
Scott
0

Ich habe diesen Beitrag gelesen, brauchte aber tatsächlich ein Makro, um die gesamten Bereiche auszutauschen. Außerdem musste ich die Farben tauschen. Das ursprünglich gepostete Makro wurde leicht modifiziert, dies könnte für jemanden nützlich sein.

Sub Swap()

    If Selection.Areas.Count <> 2 Then
         MsgBox "Select 2 cell ranges (only) to swap."
         Exit Sub
    End If


    If Selection.Areas(1).Count <> Selection.Areas(2).Count Then
         MsgBox "The two areas must be of equal size"
         Exit Sub
    End If

    'With this for loop we run through each cell 1 by 1
    For i = 1 To Selection.Areas(1).Count
        'Swapping values
        temp = Selection.Areas(1)(i)
        Selection.Areas(1)(i) = Selection.Areas(2)(i)
        Selection.Areas(2)(i) = temp

        'Swapping color
        tempColor = Selection.Areas(1)(i).DisplayFormat.Interior.Color
        Selection.Areas(1)(i).Interior.Color = Selection.Areas(2)(i).DisplayFormat.Interior.Color
        Selection.Areas(2)(i).Interior.Color = tempColor
    Next i

End Sub
Ivo van der Marel
quelle