Hallo Jürgen, vielen Dank für deine Rückmeldung! Mir fällt da noch eine Möglichkeit ein, das Problem zu umgehen:Die CSV-Daten kopieren und in die Auswertungstabelle einfügen - also keine Verknüpfung verwenden.
Programmtechnisch entsteht das Problem dadurch, dass Calc z.B. die Formel =A20 durch =A#BEZUG! ersetzt. Wenn man dann speichert, funktionieren die Formeln nach dem erneuten Öffnen natürlich nicht mehr. Wenn man grundsätzlich nicht speichert, dann bleiben die Formeln erhalten - wäre auch ein Weg - je nachdem...
Mit freundlichen Grüßen Alois Klotz Jürgen Kirsten schrieb am 13.04.2025 um 14:36:
Hallo Alois,vielen Dank für dein Feedback und für deine Mühe die du dir mit deiner Beispieldatei gemacht hast. Das funktioniert sehr gut. INDIREKT() und Zeile() zu verwenden kann das Problem umgehen.Ich bin auf einen ähnlichen Ansatz gekommen. Ich habe VERSCHIEBUNG() verwendet um eine Referenz außerhalb des Bereiches verwenden zu können, der im Verdacht ist durch zusätzliche und wegfallende Zellen verschoben zu werden.In deinem Beispiel wäre das dann: {=VERSCHIEBUNG(A2;1;0;32;3)}Die geschweiften Klammern verraten schon das dies als Matrixformel verwendet werden muss.Leider ist VERSCHIEBUNG() genauso wie INDIREKT() eine volatile Funktion. (Hilfetext: INDIREKT ist eine volatile Funktion. D. h. dass Calc die von INDIREKT zurückgegebene Referenz aktualisiert, sobald irgendeine Zelle über Daten ▸ Berechnen ▸ Neu berechnen aktualisiert wird, F9 gedrückt wird oder eine Eingabe erfolgt.) Da meine Daten so zwischen 2500 - 3600 Zeilen enthalten, wollte ich mein Tool etwas schneller machen, und daher auf die volatilen Funktionen möglichst verzichten.Mit workarounds lässt sich das Problem also umgehen. Die Frage ist: Warum ist ein workaround überhaupt notwendig?Das es ein Fehlverhalten ist nehme ich gerne zurück. Es ist ein Verhalten, das zumindest erklärungsbedürftig ist. In der Hilfe findet man zur Zeit keinen Hinweis wie das Einfügen genau vor sich geht.Mir erschließt sich der große Vorteil vom aktuellen Verhalten noch nicht. Man könnte aktuell Daten oder Formeln unterhalb des eingefügten Bereichs schreiben und liefe nicht in Gefahr das diese Überschrieben werden. Aber ehrlich wer würde das denn machen? Ich hätte sogar erwartet das die Zellen überschrieben werden, wenn die CSV Daten mehr Platz brauchen.Mit freundlichen Grüßen Jürgen Kirsten Am 12.04.2025 um 21:11 schrieb Alois Klotz:Hallo, ich bin nicht überzeugt, dass das ein Fehler ist.Calc vermisst hier nach Änderungen in der CSV Zellbezüge und reagiert mit dem Fehler #Bezug!Der Trick ist, dass man auf die Zellen der verknüpften Datei so zugreift, dass der Zellbezug immer gleich bleibt. Das mache ich mit der Funktion INDIREKT, mit der man einen Zellbezug "zusammenbasteln" kannHier ist ein Beispiel in diesem Ordner:https://www.dropbox.com/scl/fo/pmmwo7vmcqfjlabmesv2j/AIvkolIQdhfU_HktpfKmYFM?rlkey=4uezumieq896v9izg71ryecwg&dl=0Daten.ods: Damit erzeuge ich die CSV-Datei Daten.csv: Hier sind die Daten, auf die ich zugreifeDaten-Verknüpfung.ods ist die Datei, die auf die CSV-Daten zugreift und hier kann man auch beliebige Berechnungen durchführen.Wenn die CSV geändert wird, ändert sich nichts an den Werten Mit freundlichen Grüßen Alois Klotz Jürgen Kirsten schrieb am 12.04.2025 um 01:13:Hallo zusammen, ich hoffe, ihr könnt mirweiterhelfen. Ich bin auf ein Verhalten in Calc gestoßen, das ichals fehlerhaft empfinde – bin mir aber nicht sicher, ob es so gewollt ist. Daher wende ich mich an euch als Experten. Mir ist das Ganzeaufgefallen, als ich mir ein kleines Auswertetool gebaut habe, dasregelmäßig CSV-Daten aus meinem Home Assistant verarbeitet. (Die Herkunft der CSV-Datei ist aber für das Problem nichtentscheidend.)Das Problem tritt auf, wenn sich die Anzahl der Zeilen in der CSV-Datei im Vergleich zum Zeitpunkt der Verknüpfung ändert – wasbei 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 Tabellein Calc erstellen, in Spalte A z. B. die Zeilen 1–20 mit Datenfü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 dieCSV-Datei erneut öffnen, z. B. 5 Zeilen löschen, speichern undschließ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 neueDaten dazukommen) – ähnlich dem manuellen BefehlZellen löschen → nach obenverschieben. Meine Frage: Handelt es sich hierbei um ein gewolltes Verhalten? Aus meiner Sichtsollte 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 oderstabiler zu gestalten? Vielen Dank und viele Grüße Jürgen Kirsten
-- Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org 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