Date: prev next · Thread: first prev next last
2025 Archives by date, by thread · List index


Hallo Harald,

vielen Dank für dein Feedback. Deinen Vorschlag hatte ich auch schon als Lösung versucht. Das hat leider nur bedingt weiter geholfen. Wenn man die Formeln einzeln als absolute Bezüge schreibt - also =$A$1 usw. dann ändert das gar nichts an dem von mir beschriebenen Verhalten.

Eine kleine Verbesserung ist es wenn man die Formel als Matrixformel schreiben kann. Also: {=A1:A40} oder {=$A$1:$A$40}. Dann verändert sich nach dem entfernen von 5 Zeilen in der CSV-Datei zwar immer noch die Formeln (neu {=A1:A35}), die Fehler (#NV) entstehen aber nur am Ende der Liste weil sich der Matrixbereich jetzt nicht mehr mit dem Formelbereich deckt. In den Zeilen 16-20 erscheinen keine Fehler. Beim erweitern der Liste wird {=A1:A45} draus. Dies führt aber zu keinem Fehler da der Matrixbereich kleiner ist als der Formelbereich.

Leider kann ich eine Matrixformel in meinem Tool an dieser Stelle nicht so einfach verwenden. DATUMWERT() und ZEITWERT() können nicht mit Matrixbereichen arbeiten. Das führt dann zu einem Fehler 502. Beide Funktionen werden bei mir benötigt.

Mit freundlichen Grüßen

Jürgen Kirsten



Am 12.04.2025 um 08:17 schrieb Harald Sturm:
Die angegebenen Formelbezüge sind realativ, Beispiel: A1:A20, damit ändern diese sich beim Einfügen oder Löschen ggf. Als Korrektur würde ich absolute Bezüge der Form $A$1:$A$20 nehmen (dazu Verweis auf die Zelle aktivieren und solange F4 drücken, bis die Spalte und/oder Zeile absolut gemacht, d.h. mit dem $ als Präfix versehen sind).
Vielleicht hilft das schon.


Am 12.04.2025 um 01:13 schrieb Jürgen Kirsten:

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







--
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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.