Änderungen in Einer Excel-Datei wirken sich nicht auf die andere aus - bug report

Anonym
2015-07-22T14:53:06+00:00

Problem: 

Ich habe 2 Excel Dateien, nennen wir sie A.xlsx und B.xlsx.

Einige der Zellen sind miteinander verknüpft, so soll z.B. in Datei A Zelle C3 enthalten“=[B.xlsm]beispiel!D4”. 

Wenn ich nun Datei A schließe und in Datei B Änderungen  vornehme, welche die Zellbezeichnung beeinflussen, also z.B. eine Spalte hinzufüge, so wird aus Zelle D4 nun E4.

Anschließend öffne ich Datei A wieder, und dort steht in Zelle C3 immer noch der Inhalt “=[B.xlsm]example!D4”.

Das ist aber nicht länger richtig, denn der korrelierende Inhalt steht nun ja in Zelle E4!

Das Problem taucht ebenso auf, wenn man Spalten löscht oder Zeilen hinzufügt bzw. löscht.

Es ist zu 100% reproduzierbar und unabhängig von Formaten, Inhalten, Makros usw.

Der Support meinte lapidar, es handle sich "um ein reguläres Verhalten von Excel", was aber mit Verlaub Blödsinn ist.

Denn der Clou von Excel ist ja, dass sich relative Zellbezüge mit jeder Veränderung mit ändern - sonst wäre das Ganze Programm doch wertlos. Dies muss aber auch über die Grenze einer Datei hinaus funktionieren! Nur, weil es bisher nicht funktioniert oder man keine Methode gefunden hat, das ans Laufen zu bringen, ist das ja noch lange kein Argument dafür, dass es so sein soll und so bleiben muss!

Daher möchte ich dieses Problem als bug reporten, damit es an die zuständigen Entwickler eskaliert werden kann.

Wie kann ich vorgehen?

Danke im Voraus!

Microsoft 365 und Office | Excel | Für Zuhause | Windows

Gesperrte Frage. Diese Frage wurde aus der Microsoft-Support-Community migriert. Sie können darüber abstimmen, ob sie hilfreich ist, aber Sie können keine Kommentare oder Antworten hinzufügen oder der Frage folgen.

0 Kommentare Keine Kommentare

52 Antworten

Sortieren nach: Am hilfreichsten
  1. Anonym
    2015-07-24T18:52:27+00:00

    Hallo Lutz,

    erstens solltest du mit BEREICH.VERSCHIEBEN nur einen Bereichsnamen für die Daten anlegen. Nicht diese Formel in allen Zellen verwenden, das macht nur Schwierigkeiten.

    Was ist mit diesem Term mit Zeile? In Zeile sollte eigentlich eine Zahl stehen oder auf eine Zahl verwiesen werden.

    Gibt dieser Ausdruck "'E:\OneDrive\Arbeit\Handy-Tests\Z_Handytest-DB.xlsm'!Gesamtpunktzahl" eine Zahl zurück? Außerdem sollte die Ausgangszelle dann $A$3 sein, wenn die Daten erst in Zeile 3 beginnen.

    Ich weiß nicht wie deine Daten vorliegen und kann daher auch nicht sagen wo der Fehler liegt.

    Ich habe für Andreas einen Ordner mit 2 Quelldateien und der Zieldatei nach OneDrive hochgeladen und dort ist auch der Fehler aufgetreten. Wenn man die Namen und die Formeln in den richtigen Dateien und am richtigen Speicherort einfügt, ist alles in Ordnung. Wenn man die Dateien dann verschiebt, tritt der Fehler auf.

    Schau mal hier nach dem Ordner "Bereich_Verschieben" und lade ihn dir herunter. Sehr wahrscheinlich bekommst du dann den gleichen Fehler wie Andreas, aber du kannst in den Quellmappen sehen, wie der Name angelegt ist und in der Zielmappe, wie die Formel gestaltet ist.

    BEREICH.VERSCHIEBEN hat folgende Argumente:

    Ausgangszelle, Versatz in Zeilenrichtung, Versatz in Spaltenrichtung, Höhe in Zeilenrichtung, Breite in Spaltenrichtung

    Wenn also eine Tabelle in A1 anfängt, lautet die Formel

    =BEREICH.VERSCHIEBEN($A$1;;;Anzahl2($A:$A);ANZAHL2($1:$1))

    Nach der Ausgangszelle kommen drei Semikolon ohne Werte dazwischen, da es keinen Versatz in den Richtungen gibt. Dann kommt ANZAHL2($A:$A), das die Höhe durch zählen der belegten Zellen ermittelt und ANZAHL2($1:$1) das die Breite ermittelt.

    Wenn deine Daten an anderer Stelle anfangen, musst du auch mit dem Versatz arbeiten. Du musst auch bedenken, dann der Term mit ANZAHL2 alle Zellen zählt. Wenn du also noch Daten in der entsprechenden Zeile oder Spalte hast außerhalb der gewünschten Tabelle, musst du diese Zellen abziehen. Der Bereich wird auch nicht korrekt beschrieben, wenn du leere Zeilen oder Spalten in der Tabelle hast. In diesem Fall müsste man ANZAHL2 mit einer Funktion ersetzen, die die letzte belegte Zelle in der Spalte oder der Zeile ermittelt.

    Erstelle mit BEREICH.VERSCHIEBEN nur den Bereichsnamen. Du kannst dann im Namensmanager den Namen anwählen und den Cursor in diese Formel stellen. Der Bereich, den der Namen beschreibt, bekommt dann einen Laufrahmen. Daran kannst du dann sehen, ob die Formel den korrekten Bereich umschreibt.

    Da das Ganze nicht ganz so einfach ist, wollte ich von dir ja auch wenigstens zwei abgespeckte Beispielmappen.

    Willst du dich nicht mit der VBA-Lösung vertraut machen? Das ist nicht so schwierig wie du das beschrieben hast. Solch ein "normales" Makro läuft in allen Excel-Versionen.

    Claus

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  2. Anonym
    2015-07-24T18:09:50+00:00

    Hallo Claus,

    jetzt stehe ich vor einem Problem: Nachdem Deine Formeln auch mit BEREICH.VERSCHIEBEN prima funktioniert haben, kopierte ich die in die Original-Datei. Die weist nun ein Phänomen auf: Die Ergebnisse sind in der Zieldatei nur sichtbar, wenn die Quelldatei geöffnet ist. Auch wenn ich beim Öffnen der Zieldatei "aktualisieren" klicke. 

    Die Verknüpfungen sehen gut aus, und natürlich ist in den Optionen aktiv, dass Daten aus anderen Dokumenten übernommen bzw. aktualisiert werden sollen.

    Ist das normal bei Verwendung von BEREICH.VERSCHIEBEN?

    Oder habe ich da irgendwo einen Fehler drin?

    Die Ergebnisse sind jedenfalls korrekt, auch die Sache mit dem Hinzufügen oder Löschen von Spalten oder Zeilen während die Zieldatei geschlossen ist klappt prima. Eigentlich also alles gut - aber ich möchte halt nicht gezwungen sein, stets aller 5 Dateien zu öffnen, das war ja der Ausgangspunkt meines Dilemmas ;))

    Hier ein Beispiel für eine der Formeln, die ich da jetzt verwende:

    =WENNFEHLER(INDEX(BEREICH.VERSCHIEBEN('E:\OneDrive\Arbeit\Handy-Tests[Z_Handytest-DB.xlsm]Handy-DB'!$A$1;;;ZEILE('E:\OneDrive\Arbeit\Handy-Tests\Z_Handytest-DB.xlsm'!Gesamtpunktzahl);ANZAHL2('E:\OneDrive\Arbeit\Handy-Tests[Z_Handytest-DB.xlsm]Handy-DB'!$3:$3)*3);ZEILE('E:\OneDrive\Arbeit\Handy-Tests\Z_Handytest-DB.xlsm'!Punkte_Ausstattung);VERGLEICH($B799; 'E:\OneDrive\Arbeit\Handy-Tests[Z_Handytest-DB.xlsm]Handy-DB'!$3:$3;0)+2);"")

    "Z_Handytest-DB.xlsm" ist diejenige Datei, aus der die übernommenen Daten stammen.

    B799 ist die Zeile, aus der ich die Formel herauskopiert habe, da steht die Bezeichnung drin (nicht in Spalte A) - in der Quelldatei finden sich die Bezeichnungen in Zeile 3, daher "$3:$3" und nicht "$1:$1"  ;))

    Siehst Du da irgendeinen Fehler?

    Oder woran liegt es, dass ich jetzt die Ergebnisse nicht mehr "offline" sehe?

    Beste Grüße,

    Lutz

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  3. Andreas Killer 144.1K Zuverlässigkeitspunkte Volunteer Moderator
    2015-07-24T12:42:28+00:00

    solange ich die Dateien auf meinem PC erstellt und gespeichert hatte, war alles korrekt. Dieser Fehler kommt scheinbar durch das Verschieben nach OneDrive. Features, die online nicht unterstützt werden, werden beim Herunterladen entfernt.

    Hallo Claus,

    dann ist jetzt alles klar, ich danke Dir.

    Andreas.

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  4. Anonym
    2015-07-24T12:38:33+00:00

    Hallo Andreas,

    solange ich die Dateien auf meinem PC erstellt und gespeichert hatte, war alles korrekt. Dieser Fehler kommt scheinbar durch das Verschieben nach OneDrive. Features, die online nicht unterstützt werden, werden beim Herunterladen entfernt.

    Diesen Fehler, den du hast, habe ich in den OneDrive-Daten auch. Aber die Fehlermeldung ist nicht aussagekräftig, da eindeutig falsch. Der Name ist sowohl definiert und der Bereich ist auch rechteckig.

    Wenn du auf Daten => Verknüpfung bearbeiten gehst und dann die beiden Quelldateien anwählst und auf Quelle öffnen gehst, sind die Daten da. Sobald dann die Quelldateien wieder geschlossen werden, kommt wieder der Fehler.

    Da neuerdings auch viel online gearbeitet wird, ist das also keine vertrauenswürdige Lösung.

    Claus

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare
  5. Andreas Killer 144.1K Zuverlässigkeitspunkte Volunteer Moderator
    2015-07-24T11:25:12+00:00

    schau mal hier nach dem Ordner "Bereich_Verschieben".

    Edit: Das ist eigentlich nur eine Demonstration, dass es auch mit Formel gehen könnte. Aber bei großen Datenbestand, die nur durch Array-Formeln ausgelesen werden können, würde ich VBA vorziehen.

    Hallo Claus,

    Alles gut, ich möcht ja nur gerne dem Ding mal auf den Grund gehen.

    Also Zip hab ich, alles in ein Verzeichnis entpacken, kuck ich in QuellA.xlsx, okay Name "Daten" sieht gut aus, wieder zu, QuellB.xlsx dito., auch wieder zu.

    Ziel.xlsx auf:

    Auch wenn ich im 2ten Schritt auf "Weiter" klicke ist das Resultat:

    Formel sieht doch gut aus... Pfad passt, da liegen alle Dateien, Z: ist meine RAM-Disk.

    Andreas.

    War diese Antwort hilfreich?

    0 Kommentare Keine Kommentare