Wie kann verhindert werden, dass Referenzen in Formeln durch Ausschneiden und Einfügen von Daten geändert werden?

49

In Google Sheets gibt es eine Funktion, bei der, wenn Sie einen Verweis auf eine Datenzelle in einer Formel haben und die Daten aus dieser Zelle ausschneiden und an einer neuen Position einfügen, der Verweis in der Formel aktualisiert wird, um auf die neue Zellposition zu verweisen.

Ich möchte meine Daten ausschneiden und einfügen können, ohne dass sich meine Formeln ändern.

Ich habe in der Vergangenheit einige abscheuliche Dinge getan, die die INDIRECT()Funktion zum Umgehen dieser Funktion beinhalteten, aber es scheint, dass es einen einfacheren Weg geben muss. Irgendwelche Vorschläge?

grahamparks
quelle
2
lustig ... Ich habe dieses Feature nie als Fehler angesehen. Es hat funktioniert, das war über Jahrzehnte in Excel.
mhoran_psprep
1
Haben Sie Zeit gefunden, die gegebenen Antworten zu überprüfen? Vielleicht können Sie eine davon als beste Antwort markieren.
Jacob Jan Tuinstra
1
Im Folgenden werden viele verschiedene Fragen beantwortet. Kann die Frage geklärt werden? Ich denke, ein Beispiel für Ihr Problem wäre folgendes: Zelle A2 enthält eine Formel wie "= B1 + 5". B1 enthält "42". A2 zeigt erwartungsgemäß "47" an. Sie haben jedoch festgestellt, dass in B1 nicht "42", in C1 "42" und in B1 "58" enthalten sein sollte. Sie klicken auf B1, "Ausschneiden", klicken auf C1, Einfügen. B1 ist jetzt leer (erwartet), C1 ist jetzt "42" (erwartet), aber A2 zeigt weiterhin "47" an, da A2 automatisch auf "= C1 + 5" aktualisiert wurde, um dem Ausschneiden und Einfügen zu folgen (nicht erwartet). Sie wollten, dass A2 "= B1 + 5" bleibt. Habe ich recht?
cesoid

Antworten:

22

Die =$A$1Notation kann auch automatisch verschoben werden, wenn der Wert in (sprich) A1geändert wird.

Die einzige todsichere Lösung besteht darin, alle Ihre Referenzen in INDIRECTz . B. =INDIRECT("$A$1")oder sogar nur =INDIRECT("A1").

Die Schwierigkeit bei jeder dieser Lösungen besteht darin, dass Sie viele der gleichen Formeln haben, z

=A1
=A2
=A3
...
=A99

Normalerweise füllen Sie zuerst =A1das Feld aus und kopieren es dann und fügen es ein (oder ziehen es mit der Funktion zum automatischen Ausfüllen nach unten), um die fortlaufende Formel automatisch auszufüllen. Wenn jedoch die erste Formel lautet =$A$1oder =INDIRECT("A1")dieser Trick dann nicht funktioniert (in der Tat ist dies das, wofür $- um zu verhindern, dass er automatisch geändert wird).

Wenn Sie viele aufeinanderfolgende Formeln haben, lautet eine Lösung:

  1. Erstellen Sie die Formel wie =A1gewohnt (verwenden Sie " Normal" und "Automatisch ausfüllen").
  2. Verwenden Sie den Ersetzungsdialog ( Ctrl+ H) und verwenden Sie "In Formeln suchen", um alle =A1, =A2... =A99in das =INDIRECT("A1")usw. einzufügen. Beachten Sie, dass Sie beim Suchen und Ersetzen die Möglichkeit haben, reguläre Ausdrücke zu verwenden.
Motti Strom
quelle
Die Antwort wurde aktualisiert, um die Verwendung von besseren Such- und Ersetzungsmöglichkeiten in neuen Google-Tabellenkalkulationen vorzuschlagen. Diese können in Formeln ersetzt und reguläre Ausdrücke verwendet werden.
Motti Strom
1
Können Sie ein Beispiel dafür geben, wie die Such- / Ersetzungsparameter aussehen würden, wenn alle Zellreferenzen mit INDIRECT in eine Formel eingeschlossen würden?
Michael
Sie können INDIRECT in Kombination mit ROW () verwenden, um eine Formel zu erhalten, die für die aktuelle Zeile gilt. Zum Beispiel: = A1 + B1 wird zu = INDIRECT ("A" & ROW ()) + INDIRECT ("B" & ROW ())
Evil Pigeon
31

Aus dem Google Text & Tabellen-Forum :

Wählen Sie den Zellbereich aus. Verwenden Sie dann Ctrl+ C(Kopieren; dies sollte die Zellen und ihre Formeln in den Einfügepuffer legen).

Ziehen Sie nun die ausgewählten Zellen an die neue Position (bewegen Sie den Mauszeiger über den Rand der Auswahl, bis sich der Mauszeiger in eine Hand verwandelt; jetzt können Sie sie ziehen).

Gehen Sie zurück zur ursprünglichen oberen linken Position der kopierten Zellen und verwenden Sie Ctrl+ V(Einfügen).

Jetzt sollten Sie zwei Formelsätze haben, die beide auf die gleichen Zellen verweisen.

Matt McClure
quelle
6
Dies ist die einzige Antwort, die Formeln beibehält.
Amcnabb
3
Einverstanden - das ist die einzig richtige Antwort.
Stevemidgley
1
Vielen Dank! Ich war überrascht, dass es einen Unterschied zwischen "Ziehen" und Kopieren / Einfügen gibt!
Rcreswick
Wenn Sie also ausschneiden und einfügen möchten, benötigen Sie nur den Auswahlbereich und den Ziehbereich. Wenn Sie jedoch kopieren möchten, müssen Sie die anderen zusätzlichen Schritte ausführen, um das Original beizubehalten.
Mu Mind
2
Eine bessere Methode: Duplizieren Sie das Blatt, schneiden Sie es aus dem Klon des Blatts aus und fügen Sie es an der neuen Stelle, an der Sie es benötigen, in das Originalblatt ein. Wenn Sie fertig sind, löschen Sie den Klon des Blattes. Auf diese Weise bleiben die Referenzen unberührt.
ADTC
30

Kam auf diese Suche nach einem ähnlichen Problem und fand schließlich eine Lösung für Excel, die in den Google Spreadsheets perfekt zu funktionieren scheint.

Für die Zellreferenzen, die Sie beim Einfügen nicht ändern möchten, fügen Sie einfach $vor jedem Teil ein.

So G12würde es werden$G$12

Eine Zelle aus einer Kalkulationstabelle, die ich verwende, macht das, was ich brauche, sieht ungefähr so ​​aus:

 =$G$1&Sheet1!B3&Sheet1!A3&$G$2
Leonard
quelle
1
Das hat bei mir nicht funktioniert. Siehe meine Alternative unter webapps.stackexchange.com/questions/22558/…
Motti Strom
@Leonard, Wow, die Syntax ist schrecklich . Es ist viel intuitiver, wenn es umgekehrt ist, dh relative Zellen werden verwendet, $während absolute Zellen Standard sind.
Pacerier
@ Pacerier Ich stimme dir vollkommen zu, obwohl es funktioniert, ist es schrecklich und schwer zu lesen. Ich verwende Tabellenkalkulationen nicht oft genug, um zu verstehen, was Sie vorschlagen. Könnten Sie näher darauf eingehen?
Leonard
@Leonard ich das Standardverhalten gemeint ist anders, so statt $G$1&Sheet1!B3&Sheet1!A3&$G$2, wir tun G1&Sheet1!$B$3&Sheet1!$A$3&G2.
Pacerier
1
@grahamparks: Dann stimmen Sie ab und hinterlassen Sie möglicherweise einen Kommentar, warum es keine Lösung ist. Versuchen Sie nicht , einen eigenen Kommentar in die Antwort aufzunehmen.
Ale
7

Um in Google Spreadsheets Zellen auszuschneiden und einzufügen, ohne ihre Formeln automatisch zu verschieben, verwenden Sie Ctrl+ Xzum Ausschneiden (oder Ctrl+ Czum Kopieren) und Ctrl+ Shift+ Vzum Einfügen.

Das Shiftweist Google Sheets an, Ihre Formeln in Ruhe zu lassen.

lebhafter Pinguin
quelle
Wenn Sie Apps wie Flycut (Mac) mit bereits aktivierter STRG + UMSCHALT + V- Verknüpfung verwenden, besteht ein Konflikt mit der Tabellenkalkulationsverknüpfung, und die Formelsperrung funktioniert nicht. Deaktivieren Sie die Verknüpfung der Flycut-App oder beenden Sie sie erst, bevor Sie STRG + UMSCHALT + V ausführen .
Hlung
13
Wenn Sie die Einfügung mit der Umschalttaste ändern, werden anscheinend eher Werte für das Einfügen in Google Spreadsheet als unveränderte Formeln übernommen.
Matt McClure
4
Das ist falsch - ctrl-shift-v fügt einfach die "Werte" Ihrer Formeln ein. Dies verhindert, dass Ihre Daten transponiert werden, aber die resultierenden Zellen enthalten statische Werte und keine Formeln.
Stevemidgley
1
Funktioniert nicht , -1.
Pacerier
1
Ich schneide nie. Beim Einfügen mit ctrl+ shift+ v, es die Werte immer kopiert, auch wenn Sie tat ctrl+ xZellen auf die Quelle.
Sparebytes
5

Umgehen Sie dies auf die gleiche Weise wie in Excel:

KOPIEREN Sie die Daten und fügen Sie sie ein. Gehen Sie dann zurück und löschen Sie sie vom ursprünglichen Ort.

MaryC.fromNZ
quelle
3

Ausschneiden (anstelle von Kopieren) scheint bei mir zu funktionieren, wahrscheinlich aus demselben Grund, aus dem das Ziehen ausgewählter Zellen funktioniert - dh es ist der gleiche Vorgang. Dies ist auch die einzige Möglichkeit, auf einer anderen Seite einzufügen, ohne dass sich die Formel ändert.

Wenn Sie versuchen, eine Kopie anstelle einer Verschiebung zu erstellen, verwenden Sie entweder die Ziehmethode (Kopieren vor dem Ziehen) oder kopieren Sie sie zuerst an eine andere Stelle auf der Seite.

Peter Tseng
quelle
2

So verschieben Sie einen Zellenbereich an einen neuen Ort in Google Sheets:

1. Markieren Sie den Zellenbereich, den Sie verschieben möchten.
2. Bewegen Sie die Maus an einen beliebigen Rand der Auswahl, bis der Cursor in eine Hand verwandelt.
3. Ziehen Sie die Zellen an die neue Position

Dies tut, was es sollte - es bewegt sie - damit alle Zellinformationen genau so bleiben, wie sie sich an ihrem ursprünglichen Ort befanden.

ps. Google hat dies auch hier angewiesen , aber es heißt nicht, dass Sie von jeder Kante aus ziehen können, nur von der oberen. Deshalb ist meine Anweisung besser! :) Beachten Sie auch, dass die ausgewählten Zellen benachbart sein müssen, damit dies funktioniert.

Dniz
quelle
Sehr schöner Fang!
Marikamitsos
Die gleiche Methode wird auch hier erwähnt . Immer noch. Dieser ist besser recherchiert und erklärt.
Marikamitsos
1

Erstellen Sie eine Textkopie der Formel anstelle einer Zellenkopie: Markieren Sie den Formeltext mit der Maus und drücken Sie STRG + C. Wählen Sie dann das Zielfeld aus und drücken Sie STRG + V. So bleibt die Formel erhalten

Claus Rasmussen
quelle
1
Aber Sie müssten dies für jede Zelle wiederholen ... Gibt es eine Möglichkeit, Text durch mehrere Zellen zu kopieren?
Pacerier
0

Am einfachsten ist es, alle Zellen auszuwählen, die Sie verschieben möchten, und sie per Drag & Drop an die gewünschte Stelle zu ziehen. Wenn Sie Formeln in anderen Zellen haben, die auf die ursprüngliche Position der verschobenen Zellen verweisen, werden die Referenzformeln automatisch an die neue Position der verschobenen Zellen aktualisiert. Hoffe das hilft! (Vorausgesetzt, dies funktioniert in Excel, aber ich habe es nur in Google Sheets getan).

Danny
quelle
0
  1. Zellen mit der Maus auswählen
  2. Kopieren Sie die Zwischenablage
  3. Verschieben Sie die ausgewählten Zellen mit der Maus an eine neue Position, indem Sie den Rand der Gruppe erfassen
  4. Fügen Sie aus der Zwischenablage in den leeren Bereich ein, von dem Sie gerade alles verschoben haben
Alex Debkaliuk
quelle
0

Ich suche und ersetze einfach alle Instanzen von '=' durch '' (oder so viele der Formeln, die ich zu kopieren versuche, wie ich kann), um alle Formeln in einfachen Text umzuwandeln. Ich kopiere und füge die Zellen ein und füge dann das '=' zurück.

Hinweis: Dies funktioniert wahrscheinlich nicht für große Blätter, da es unbeabsichtigte Konsequenzen beim Bearbeiten anderer Zellen haben kann, aber normalerweise funktioniert es für meine Zwecke.

Luke Redmore
quelle
0

Hier ist eine andere Option:

  1. Wechseln Sie in den Modus "Formeln anzeigen" (im Menü "Ansicht")
  2. Kopieren Sie den gewünschten Bereich
  3. Einfügen in einen externen Texteditor
  4. Nehmen Sie Änderungen vor - dies kann so einfach sein, als ob Sie irgendwo ein Leerzeichen einfügen
  5. Kopieren Sie die Formeln aus dem externen Texteditor
  6. Fügen Sie den Zielbereich in das Blatt ein
  7. Deaktivieren Sie Formeln anzeigen

Dies scheint ein langwieriger Vorgang zu sein, in der Praxis sind es jedoch nur ein paar Tastenanschläge. Außerdem ist Schritt 4 in meinem Setup obligatorisch - ohne ihn werden die Zellenpositionen weiterhin aktualisiert, als ob es ein direktes Kopieren und Einfügen wäre. YMMV.

eran
quelle
0

Die Verwendung von INDIRECT()funktioniert hervorragend , wenn die absolute Position von Referenzen beibehalten werden soll, nachdem die Ziele kopiert und eingefügt wurden. Das Problem besteht jedoch darin, dass die absolute Position auch beibehalten wird, wenn die Formel kopiert wird Reichweite bei der Verwendung.

Die Lösung besteht darin, die Position der Zielzelle basierend auf der Zelle der Formel INDIRECT()mit ROW(), zu kombinieren COLUMN()und ADDRESS()programmgesteuert zu generieren.

Im einfachsten Fall, wenn die Zielzelle eine feste Spalte hat und immer in der gleichen Zeile wie die Formel bleibt, kann dies folgendermaßen erfolgen:

INDIRECT("A"&ROW())

Um dynamische Offsets aus der Formelzelle einzuführen, können Sie Folgendes verwenden ADDRESS():

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

Im folgenden Screenshot wurden die Formeln in den B1:E116 Zeilen darunter erweitert, und dann wurde die Zahlenfolge in A7:A10ausgeschnitten und 6 Zellen nach unten eingefügt. Wie Sie sehen, wurden die einfachsten Formeln automatisch angepasst und desynchronisiert, während die naive Verwendung von INDIRECT()nicht für alle Zeilen richtig extrapoliert wurde, aber die beiden Formeln, die INDIRECT()zusammen mit dem programmgesteuerten Abrufen von Zeilen- und Spaltenpositionen verwendet wurden, konnten ihre Verweise beibehalten:

Demonstrationsbild

Will Chen
quelle
-1

Sie können F4die verschiedenen Optionen für die absolute Referenzierung durchlaufen, wenn sich der Cursor auf der Zelle oder dem Bereich befindet. Dies funktioniert auf Mac und Windows.

Mick Liubinskas
quelle