Daten aus anderer Tabelle lesen

Ich habe in einer Tabelle einen Verweis auf eine Zelle in einer anderen Datei eingefügt und kann die Daten dann auch auslesen (bei Aktualisierung).
=‘LW:\Dateipfad\Dateiname.ods]Blattname’!$K2

Ersetze ich nun den Zellbezug (z.B. K2) durch einen Zellnamen (ist auch in der Quelldatei so vergeben!) funktioniert das ganze nicht mehr. Ich habe alle möglichen Syntax, die ich gefunden habe versucht, immer ohne Erfolg.

In Excel geht so etwas mit Zellname. Aus Excel eine .ods kreiert steht zwar etwas drin (in geschweiften Klammern), funktioniert aber ebenso wenig.
{=‘LW:\Dateipfad\Dateiname.ods’!Zellname}*

Ich habe das einmal ausprobiert:
Die direkte Verknüpfung über

  1. Gleichheitszeichen in der aufnehmenden Tabelle
  2. Klick auf die Zelle in der abgebenden Datei/Tabelle
  3. Return

funktioniert mit der Adresse, aber nicht mit einem zusätzlich auch vergebenen Zellnamen.
.
Erstelle ich einen Datenbereich statt eines Zellnamens, so kann ich über
Tabelle → Externe Verknüpfungen
einen Dialog aufrufen, in dem ich die andere Calc-Datei auswähle und den Datenbereich auswähle. Dann habe ich den entsprechenden Inhalt mit Bereichsbezeichnung.
.
Nachtrag: Geht auch mit dem Zellnamen, wenn der nicht gerade die gleiche Zelle bezeichnet wie der Datenbereich.

Funktioniert beides!

Benannter Bereich und Datenbereich.

1 Like

@PKG : Hast Recht. Ich hatte den benannten Bereich (Bezeichnung für das Feld B3) und den Datenbereich auf die gleiche Zelle gelegt. Habe ich unterschiedliche Zellen, dann kommt auch der Name der Zelle dazu.
.
Was etwas irritierend ist: Der Dialog funktioniert nur, wenn ich die Datenquelle über den Filepicker aussuche, nicht wenn ich die Datenquelle aus der Liste aufrufe. Es muss also grundsätzlich immer “Durchsuchen” betätigt werden.

1 Like

@Olwe1822 ,

Du könntest es mit der Funktion DDE versuchen.


Calc kennt nicht weniger als 5 verschiedene Arten, externe Bezüge zu erstellen. Es ist schwer zu durchschauen, wann genau was aktualisiert wird.
Matrixformeln funktionieren eigentlich gar nicht, wenn man ganze Datensätze referenzieren will.
{=DDE(...;...;"Blatt.A1:X99")} bezieht sich immer nur auf diesen Bereich von 24 Spalten und 99 Zeilen, auch wenn sich die Ausdehnung des Quellbereiches verändert hat oder wenn der Quellbereich verschoben wurde. Mit benannten Bereichen kann man das umgehen: {=DDE(...;...;"Mein_Bereich")}. Dies (und die automatische Aktualisierung) funktioniert nur deshalb, weil die Quelldatei unsichtbar geladen wird und “Mein_Bereich” sofort evaluiert wird.
Dieser Trick funktioniert neuerdings auch mit {='file:/path/datei.ods'#Mein_Bereich)}, aber nur nach manueller Aktualisierung. Die entsprechenden Daten werden in einem Cache der Zieldatei gespeichert, weshalb diese Bezüge auch dann noch funktionieren, wenn die Quelldatei gar nicht vorhanden ist, etwa wenn man die Zieldatei als Mailanhang weitergibt.
Matrixformeln funktionieren überhaupt nicht aus dem gleichen Grund, warum die neuen Datenbankfunktionen (FILTER, SORT etc.) nicht richtig funktionieren. Calc kann bei Größenänderungen die Ausgabematrix nicht automatisch anpassen. Die Bezüge referenzieren zwar den richtigen Quellbereich, aber der Zielbereich, über den sich die Matrixformel ausdehnt, bleibt immer gleich groß, bis man den Bereich komplett selektiert, die Formel kopiert, den Bereich löscht und dann die kopierte Formel neu eingibt.
Dann gibt es noch verknüpfte Tabellenblätter, die meines Wissens gar nicht weitergeben, wenn sich die Ausdehnung der Quellbereiche ändert.
Und es gibt External Links, die zwar mit benannten Bereichen arbeiten, aber auch nur die externen Daten auf ein Blatt kopieren, ohne irgendwelche Bezüge in Formeln anzupassen.

Schließlich und endlich gibt es verknüpfte Datenbankbereiche. Fast alle Benutzer hassen Datenbankdokumente, ich auch, aber hier liegt der einzige Weg, externe Bereichsbezüge (Datensätze) zu referenzieren. =SUMME(Import1.A2:X99) erweitert sich zu SUMME(Import1.A2.X100) UND der importierte Datenbereich wird entsprechend größer, wenn im Datensatz eine Zeile hinzugefügt wurde. Zusätzlich werden auch angrenzende Formeln (berechnete Felder) automatisch an die neue Größe angepasst. Ohne Makro passiert das sonst nirgends in Calc.
Und weil es halt LibreOffice ist, muss man auch hier wieder über Steinchen und Stöckchen springen und nach der Erstellung des verknüpften Datenbankbereiches falsche Standardeinstellungen ändern.

2 Likes

Danke an alle, die so schnell und wie ich finde ausführlich und qualifiziert geantwortet haben. Werde in den nächsten Tagen die unterschiedlichen Vorschläge austesten, denke aber ihr habt mein Problem gelöst und ich komme vorwärts! Nochmals Dank an alle!

Deine Ausgangsfrage bezog sich auf einzelne Zellen. Das sollte kein Problem darstellen, wenn Du entweder DDE("soffice";"C:\path\datei.ods";"Blatt.X7") oder die Lösung mit der URL benutzt.
Bei ersterem muss die Quelldatei vorhanden sein (sonst Fehler), die URL-Links werden nur dann aktualisiert, wenn manuell von der gespeicherten Quelldatei manuell aktualisiert wird.

Ich habe nur den ganzen Sermon mitgegeben, weil fast jeder Anwender letztlich auf Datenbanken aus ist, wenn er Tabellenkalkulation benutzt. Calc ist leider schlecht für diesen Anwendungsfall ausgestattet, und die Erstellung von Datenbanken mit Base sind wirklich mehr was für Freaks, langfristig aber die viel bessere Lösung, weil einfacher unfallfrei zu benutzen.

Ich würde (auch mit Excel) davon abraten, Kalkulationmodelle auf verschiedene Dateien zu verteilen.