Hallo zusammen,
ich hoffe, ihr könnt mir
weiterhelfen. Ich bin auf ein Verhalten in Calc gestoßen, das ich
als fehlerhaft empfinde – bin mir aber nicht sicher, ob es so
gewollt ist. Daher wende ich mich an euch als Experten.
Mir ist das Ganze
aufgefallen, als ich mir ein kleines Auswertetool gebaut habe, das
regelmäßig CSV-Daten aus meinem Home Assistant verarbeitet. (Die
Herkunft der CSV-Datei ist aber für das Problem nicht
entscheidend.)Das Problem tritt auf, wenn sich die Anzahl der Zeilen in der
CSV-Datei im Vergleich zum Zeitpunkt der Verknüpfung ändert – was
bei mir häufig vorkommt. In der Folge "verschieben" sich
Formelbezüge, was zu Fehlern führt.
So lässt sich das
Verhalten leicht reproduzieren:
*
Eine neue Tabelle
in Calc erstellen, in Spalte A z. B. die Zeilen 1–20 mit Daten
füllen.
*
Diese Tabelle als
CSV-Datei abspeichern und schließen.
*
Neue leere Datei
in Calc öffnen (die spätere „Auswertedatei“).
*
In Zelle A1 gehen
→ MenüTabelle →
Externe Verknüpfungen...→ die zuvor gespeicherte
CSV-Datei auswählen.
*
Im
Textimport-Dialog einfach mit OK bestätigen.
*
Nun stehen die
CSV-Daten in A1:A20.
*
In B1 die Formel=A1schreiben und
diese bis B40 herunterziehen.
*
Die Datei normal
im.ods-Format
abspeichern.
*
Jetzt die
CSV-Datei erneut öffnen, z. B. 5 Zeilen löschen, speichern und
schließen.
*
Die Auswertedatei
erneut öffnen – je nach Einstellung wird man gefragt, ob die
Verknüpfung aktualisiert werden soll (ansonsten passiert es
automatisch).
Ergebnis:
*
Nach dem
Aktualisieren sehen die Zellen B1:B15 korrekt aus.
*
Die Zellen B16–B20
zeigen nun#BEZUG!.
*
Die Formel in B21
zeigt nun aufA16stattA21.
*
In B40 steht=A35statt=A40.
Wenn man die CSV-Datei
anschließend wieder auf z. B. 25 Zeilen verlängert, verschwinden
die#BEZUG!-Fehler,
aber die Bezüge sind erneut verschoben – z. B. zeigt B21 jetzt aufA26.
Auch wenn man die
Formeln in Spalte B in ein separates Arbeitsblatt auslagert und
dort auf Spalte A referenziert, tritt der Fehler auf.
Es sieht so aus, als
ob Calc beim Aktualisieren Zellen „nach oben verschiebt“ (wenn
Daten entfernt wurden) bzw. „nach unten verschiebt“ (wenn neue
Daten dazukommen) – ähnlich dem manuellen BefehlZellen löschen → nach oben
verschieben.
Meine Frage:
Handelt es sich
hierbei um ein gewolltes Verhalten?
Aus meiner Sicht
sollte Calc einfach nur die vorhandenen Datenzeilen überschreiben
– also:
*
Weniger Daten:Die Zellen sollten geleert werden, ohne die Struktur zu
verändern.
*
Mehr Daten:Die
neuen Daten sollten hinzugefügt oder über bestehende Inhalte
geschrieben werden, ohne Formelbezüge zu verschieben.
Ich würde mich freuen,
wenn jemand dieses Verhalten bestätigen oder mir erklären kann, ob
es Vorteile dieser Vorgehensweise gibt, die ich übersehen habe.Unterstützt jemand eventuell
meinen Wunsch, das Verhalten beim
Aktualisieren von extern verknüpften CSV-Dateien anpassbarer oder
stabiler zu gestalten?
Vielen Dank und viele
Grüße
Jürgen Kirsten