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:1.) Eine neue Tabelle in Calc erstellen, in Spalte A z. B. die
Zeilen 1–20 mit Daten füllen.2.) Diese Tabelle als CSV-Datei abspeichern
und schließen.3.) Neue leere Datei in Calc öffnen (die spätere
„Auswertedatei“).4.) In Zelle A1 gehen → Menü Tabelle → Externe
Verknüpfungen... →
die zuvor gespeicherte CSV-Datei auswählen.5.) Im Textimport-Dialog einfach
mit OK bestätigen.6.) Nun stehen die CSV-Daten in A1:A20.7.) In B1 die Formel
=A1 schreiben und diese bis B40 herunterziehen.8.) Die Datei normal im
.ods-Format abspeichern.9.) Jetzt die CSV-Datei erneut öffnen, z. B. 5 Zeilen
löschen,
speichern und schließen.10.) 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 auf A16 statt A21.- In B40 steht =A35 statt =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 auf A26.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
Befehl Zellen 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üßeJürgen Kirsten
--
Liste abmelden mit E-Mail an: [email protected]
Probleme?
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy