Excel Zirkel-Bezug vermeiden: WENN mit zwei Ergebnissen desselben Vergleichs

Hallo,

mal wieder eine für mich knifflige Frage zu Excel 2010:

  • Zwei Tabellenblätter,
  • Tabelle1 enthält eine Tabelle mit wöchentlich aktualisierten Daten einer Datenbank,
  • Tabelle2 enthält eine Tabelle mit einer Auswertung von Tabelle1,
  • in Tabelle2 werden die Daten aus Tabelle1 teils hineinkopiert, teils erfolgt eine Auswertung.

Und hier nun das Problem:
Die Zeilen, die in Tabelle2 im Vergleich zur Vorwoche geänderte Daten enthält, sollen markiert werden. Außerdem sollen in der Zeile zum leichteren Auffinden der geänderten Tabellenzeilen „X“ gesetzt werden.

Es müsste ein Vergleich gemacht werden der Art:

WENN (aktuelle Zeile in Tabelle1 anders als in  Tabelle 2; DANN setze aktuelle Zeile in Tabelle 2 auf neue Werte UND markiere in Spalte D mit einem „X“; SONST mache nichts)

Ich weiss leider nicht, wie man es schafft, dass aufgrund desselben Vergleichs zwei verschiedene Zellen neue Werte erhalten. Ich komme immer wieder auf einen zirkulären Bezug.

Ich benötige eine Lösung ohne Makros.

Wer hat eine gute Idee für mich?

Danke für jeden Tipp und viele Grüße,
Crypto.

Hallo,

wenn ich es richtig verstanden habe, möchtest du für eine Zelle (in Tabelle 2) den Wert überprüfen und direkt überschreiben, wenn dieser nicht „passt“.

Da wirst du mit Arbeitsblattfunktionen immer einen Zirkelverweis bekommen.

Alternativ fügst du eine neue Spalte ein, in der du für alle Zeilen den aktualisierten Wert einträgst, das geht dann auch mit Arbeitsblattfunktionen, oder du muss das mit vba lösen.

Ich empfehle mit einer zusätzlichen Spalte zu arbeiten, da man das Ergebnis ansonsten auch nicht mehr nachvollziehen kann.

Grüße

powerblue

Hallo power_blue, danke für Deine Antwort.

Hallo,

wenn ich es richtig verstanden habe, möchtest du für eine
Zelle (in Tabelle 2) den Wert überprüfen und direkt
überschreiben, wenn dieser nicht „passt“.

Fast - es muss jetzt noch dem Leser klargemacht werden, dass die überschriebenen Daten neu sind. Dazu soll in einer Extra-Spalte ein „X“ gesetzt und somit die Zeile markiert werden.

Alternativ fügst du eine neue Spalte ein, in der du für alle
Zeilen den aktualisierten Wert einträgst, das geht dann auch
mit Arbeitsblattfunktionen, oder du muss das mit vba lösen.

Das würde bedeuten, der neue und auch der alte Wert sind noch in der Tabelle gleichzeitig vorhanden. Aber es soll nur der aktuelle Wert vorhanden sein, und das auch nur, falls er sich vom alten Wert unterscheidet.

Ich empfehle mit einer zusätzlichen Spalte zu arbeiten, da man
das Ergebnis ansonsten auch nicht mehr nachvollziehen kann.

Das war auch meine Vorstellung. Fehlt nur noch die Makierung, wenn sich der Wert wirklich geändert hat und er dadurch den alten Wert überschreiben soll.

Grüße

powerblue

Grüße zurück,
Crypto.

Hallo

  • Zwei Tabellenblätter,

Die dürfen sich aber innerhalb einer Tabelle befinden?

  • Tabelle1 enthält eine Tabelle mit wöchentlich aktualisierten Daten einer Datenbank,
  • Tabelle2 enthält eine Tabelle mit einer Auswertung von Tabelle1,
  • in Tabelle2 werden die Daten aus Tabelle1 teils hineinkopiert, teils erfolgt eine Auswertung.

Du schreibst immer ‚Tabelle1‘, ‚Tabelle2‘. Meinst du das so, oder geht auch Tabellenblatt1 und Tabellenblatt2?

Und hier nun das Problem:
Die Zeilen, die in Tabelle2 im Vergleich zur Vorwoche geänderte Daten enthält, sollen markiert werden. Außerdem sollen in der Zeile zum leichteren Auffinden der geänderten Tabellenzeilen „X“ gesetzt werden.

Es müsste ein Vergleich gemacht werden der Art:

WENN (aktuelle Zeile in Tabelle1 anders als in  Tabelle 2; DANN setze aktuelle Zeile in Tabelle 2 auf neue Werte UND markiere in Spalte D mit einem „X“; SONST mache nichts)

In einer anderen Zelle irgendwas zu machen, das habe ich bisher mit der WENN-DANN-Funktion nicht geschafft. Irgendwie macht es bei mir immer nur etwas in der aktuellen Zelle. Das ginge meines Wissens nur mit einem Makro.

Ich finde es auch überflüssig zu schreiben:

WENN (aktuelle Zeile in Tabelle1 anders als in Tabelle 2; DANN setze aktuelle Zeile in Tabelle 2 auf neue Werte

Ich hätte das gleiche Ergebnis, wenn ich einfach in der Zelle A1 von Arbeitsblatt 2 =Arbeitsblatt1!A1 schreibe.
(Wenn es allerdings wirklich in 2 verschiedenen Excel-Tabellen sein muss, müsste man die Daten importieren.)

Das Problem ist aber, dass man einerseits die alten Werte komplett durch die neuen ersetzen soll, aber andererseits die neuen Werte ja mit den alten vergleichen muss, sonst weiß Excel ja nicht, dass was geändert worden ist. Deshalb wäre es gut, wenn man irgendwo die Daten von Arbeitsblatt 1 reinkopieren könnte, ohne dass die immer direkt bei jeder Änderung aktualisiert werden, aber auch ohne sie von Hand immer kopieren zu müssen.

Das würde ich persönlich auf einem 3. Arbeitsblatt machen. Und zwar würde ich da hinein über ‚Daten - Externe Daten importieren‘ die Daten von Arbeitsblatt 1 importieren. Wichtig wäre, dass man kein Häkchen beim automatischen Aktualisieren alle 60 oder irgendwas Minuten setzt, denn sonst hätte man ja das gleiche Problem wie vorher.

Das 2. Arbeitsblatt würde ich einfach - wie schon gesagt - durch Gleichheitszeichen mit dem 1. Arbeitsblatt verbinden A1 = Arbeitsblatt1!A1, A2 = Arbeitsblatt1!A2 usw.

Dann macht man beim 2. Arbeitsblatt in der Spalte, in die die Kreuze hinkommen sollen: =WENN(A1Arbeitsblatt3!A1;„X“;"")

Wie man eine ganze Zelle automatisch markiert, weiß ich nicht. Das Bedingte Zellen-Formatieren geht bei mir nur für einzelne Zellen, und die Bedingungen kann man auch nur aus dem gleichen Arbeitsblatt herholen, sonst geht es bei mir nicht. Ich hab aber auch nur Excel 2003. - Ansonsten würde ich natürlich sagen: Wenn Spalte A = X dann Rote Schrift oder so. - Wenn das geht.

Kurz bevor man dann die wöchentlichen neuen Daten aus der Datenbank eingibt, geht man auf Arbeitsblatt 3, wo man die Daten importiert hat, da auf ‚Daten‘ und da ganz unten auf ‚Daten aktualisieren‘. Dann hat man die gleichen Daten wie auf Arbeitsblatt 1, alle X auf Arbeitsblatt 2 sind verschwunden, erscheinen aber wieder, wenn man die neuen Daten eingibt.

Viele Grüße

Hallo Simsy Mone,

Hallo

  • Zwei Tabellenblätter,

Die dürfen sich aber innerhalb einer Tabelle befinden?

„Tabellenblätter“ = zwei TABs (Reiter) innerhalb einer Excel-Datei.

Du schreibst immer ‚Tabelle1‘, ‚Tabelle2‘. Meinst du das so,
oder geht auch Tabellenblatt1 und Tabellenblatt2?

Genaugenommen spielt das sogar keine Rolle. Ich habe zwei Tabellen (können auf einem Tabellenblatt - einem TAB/Reiter - sein oder auf zwei verschiedenen Tabellenblättern - TABs/Reitern - einer Excel-Datei.

Ich finde es auch überflüssig zu schreiben:

WENN (aktuelle Zeile in Tabelle1 anders als in Tabelle 2; DANN setze aktuelle Zeile in Tabelle 2 auf neue Werte

Ich hätte das gleiche Ergebnis, wenn ich einfach in der Zelle
A1 von Arbeitsblatt 2 =Arbeitsblatt1!A1 schreibe.
(Wenn es allerdings wirklich in 2 verschiedenen Excel-Tabellen
sein muss, müsste man die Daten importieren.)

Ja, Du hast im Prinzip Recht - wenn ich „A1=XXXX“ schreibe, wobei XXXX ein Wert ist, dann wäre das kein Problem. Aber dummerweise muss ich ZUGLEICH auch noch eine WEITERE ZELLE auf das „X“ setzen, um zu markieren, dass in der Zeile etwas geändert wurde (Daten wurden aktualisiert).

Also tatsächlich so: "wenn dann und
=> und genau das möchte ich möglichst ohne Makro und ohne Zirkelbezug hinbekommen.

Das würde ich persönlich auf einem 3. Arbeitsblatt machen. Und
zwar würde ich da hinein über ‚Daten - Externe Daten
importieren‘ die Daten von Arbeitsblatt 1 importieren. Wichtig
wäre, dass man kein Häkchen beim automatischen Aktualisieren
alle 60 oder irgendwas Minuten setzt, denn sonst hätte man ja
das gleiche Problem wie vorher.

Hm, leider habe ich keine Möglichkeit, dem späteren Benutzer der Tabellensammlung zu sagen, wann er welche Tabelle öffnen, anschauen und bearbeiten darf, es muss einfach narrensicher immer aktuell sein, sobald die Datei geöffnet wurde.

Das 2. Arbeitsblatt würde ich einfach - wie schon gesagt -
durch Gleichheitszeichen mit dem 1. Arbeitsblatt verbinden A1
= Arbeitsblatt1!A1, A2 = Arbeitsblatt1!A2 usw.

Ja, das wäre erstmal ok.

Dann macht man beim 2. Arbeitsblatt in der Spalte, in die die
Kreuze hinkommen sollen: =WENN(A1Arbeitsblatt3!A1;„X“;"")

Dieses Setzen der Kreuze fängt aber unverzüglich an, sobald die aktuellen Daten in das 1. Arbeitsblatt geladen wurden (oder in welches Arbeitsblatt eben diese Daten hineingeladen wurden).

sagen: Wenn Spalte A = X dann Rote Schrift oder so. - Wenn das
geht.

Ja, das würde so gehen, aber das Markieren setzt ja unverzüglich ein, ohne dass ein Unterschied der Daten bestehen würde.

Kurz bevor man dann die wöchentlichen neuen Daten aus der
Datenbank eingibt, geht man auf Arbeitsblatt 3, wo man die
Daten importiert hat, da auf ‚Daten‘ und da ganz unten auf
‚Daten aktualisieren‘. Dann hat man die gleichen Daten wie auf

Das Problem scheint im Kern darauf zurückzugehen, wann man die Daten aktualisiert und wann im gleichen Atemzug die Markierung der geänderten Daten durchgeführt wird. Und wann die „Sicherung“ der aktuellen Daten zu alten Daten wird, mit denen man in der kommenden Woche den Vergleich erneut durchführen kann.

Viele Grüße

Danke für Deine Antwort und Grüße zurück,
Crypto.