Calc - verknüpfung zu externer Datei

Ich verknüpfe eine einzige Zelle der Quelldatei mit einer Zelle in der Zieldatei.
Die besagte Zelle enthält das Resultat aus mehreren Spalten/Zeilen.
Da sich besonders die Anzahl Zeilen häufig ändert habe ich die (Quell-)zelle benannt.
Dadurch bleibt der Bezug in der Zieldatei immer aktuell - und natürlich auch der Wert.

Wenn die Verknüpfung eine Formel importiert, kann das nicht funktionieren, da sich die Formel dann auf die Bezüge des Zieldokuments bezieht und ein falsches Ergebnis anzeigt. Vielleicht liege ich damit auch falsch und calc interpretiert das anders. beiner Formel sehe ich aber keinen Bezug mehr zur Quelldatei.

Zur Verknüpfung wäre in diesem Fall auch die Tabellenfunktion sverweis() eine Option.
Beispiel anbei
2021-2022_Quelle.ods (11.5 KB)
2021-2022_Ziel.ods (11.8 KB)

Das Problem mit file::/// ist, dass die Zieldatei nicht mitbekommt wenn der Quellbereich erweitert wird. Das Problem hast Du mit einem übergroßen Quellbereich A2:E49 erstamal totgeschlagen aber das ist nicht immer ratsam. Sehr leicht passiert es, dass irgendwann die Daten über Zeile 49 hinausgehen, und der SVERWEIS verwendet dann einen unvollständigen Bezug.

Daher habe ich als alter Praktiker den Quellbereich gleich so groß gewählt, dass er für viele weitere Zeilen reicht.

Bei einer einzigen Zelle ist die file:/// methode ohne Bereichsnamen vollkommen OK. Falls diese Zelle im Dokument “wandert”, füge halt einen stabilen lokalen Bezug auf diese Zelle hinzu z.B. SheetX.A1 =Daten.D13 und referenziere dann SheetX.A1 in der Zieldatei. Wenn Daten.D13 wandert wird ja der lokale Bezug immer angepasst.

Danke, aber das ist mir alles zu kompliziert. Es ist leider so - in Excel extrem einfach ohne Klimmzüge immer aktuell und korrekt.

Danke auch für den Hinweis mit sverweis(). Das funktioniert leider auch nicht, weil sich die Spaltenzahl auch jeden Monat ändert, und der Spaltenbezug in der Zieldatei nicht automatisch ändert.
Ich hab die angehängten Dateien mal ausprobiert und die statischen Werte wo nötig gegen Formeln ausgetauscht. Bei Änderung der Werte in Quelle änderte sich nicht das Ergebnis in Ziel.
Ist das normal für calc oder ein Fehler oder nur ein Problem bleim MAC. ?

Ich hab nochmal 2 neue Datein erstellt und bei Quelle jeweils eine Spalte hinzugefügt bzw. gelöscht.
Die Zieldatei hat die Änderungen nicht berücksichtigt, auch keine Fehlermeldung ausgegeben.

Ich bin auch bei excel kein Freund von sverweis(). falls erforderlich kombinieere ich (ndex() und vergleich() wobei vergleich die zeile für index liefert
die syntax bei excel lautet
Index(matrix;zeile;spalte)
vergleich(suchkriterium;suchmatrix;vergleichstyp)
kombiniert
Index(matrix;vergleich(s.o.);spalte), eingeben als matrix-formel.

Ich habe jetzt bis Weihnachten keine Zeit mehr, mich um calc zu kümmern und bleibe bis auf weiteres bei excel.

Nochmals danke an alle für die Unterstützung und die für mich investierte Zeit.

hier noch zur info die angepassten dateien
2021-2022_Quelle.ods (11.1 KB)
2021-2022_Ziel.ods (11.5 KB)
2021-2022_Quelle_neu.ods (11.4 KB)
2021-2022_Ziel_neu.ods (11.4 KB)


Du vertust Dich einfach nur mit Deinen Formeln. VLOOKUP("S_2021;…;5;0) bezieht sich auf Spalte 5. Der Wert steht aber in 4.
2021-2022_Ziel_neu.ods (13.7 KB)

Wieso “zur Info”? Dateianhänge sind das allerbeste Mittel, um überhaupt Hilfestellungen zu geben zu können. Screenshots und Videos sind komplett wertlos solange man kein Problem mit der Anzeige oder mit Artefakten beschreiben will.
Anhand der Datei kann ich jetzt auch sehen, warum der Link zu extern Daten nicht funktioniert.

Verschiedene einfache Lösungen mit einer minimal veränderten Quelldatei:
t79757_Quelle1.ods (13.3 KB)
t70757_Ziel1.ods (15.8 KB)

Hallo zusammen!

Stehe vor dem selben Problem.

Gibt es inzwischen eine Lösung dafür?

Villeroy:
Dein Ansatz löst das Problem für “globale” Benannte Bereiche.
Das ist trivial, da Du ja in jede Zelle in jeder Calc-Datei mit dieser Variable rechnen kannst.
Braucht also keinen DDE oder sonst einen Verweis.

Was aber, wenn der Bereichsname nicht global ist sondern nur für das Tabellenblatt dieser
Quell-Datei definiert wurde?

Habe alles durch und die Variante

=DDE(“soffice”;"/folder/[subfolder/]datei1.ods";“benannterbereich”)

die ja an sich logisch erscheint, liefert unverändert “#nv
Die Syntax scheint mir zumindest logisch zu sein und intern bearbeitet zu werden, denn “#nv” ist ja ein Ergebnis der Abfrage und kein Fehler an sich.

Auch werden bei mir unter “externe Datenquellen” keinerlei benannten Bereiche angezeigt.

Würde mich über einen Hinweis sehr freuen…

Pack doch einfach alles in eine Datei. Es muss doch eh alles in den Arbeitsspeicher geladen werden. Externe Links sind einfach nur Mist.

Hallo Villeroy!

Danke für die rasche Antwort!

Ich habe je Geschäftsvorgang eine Datei.

Vorgang1.ods
Vorgang2.ods

In jeder Datei sind die spezifischen Daten des Vorgangs.

Ich würde nun gerne z.B. auf die Rechnungsbeträge der Vorgänge zugreifen.
(Und die Netto-Menge und und und…)

Idee:
Dazu benenne ich einfach in jeder Datei das Feld, in dem z.B. der Rechnungsbetrag steht, mit “GesamtBetrag”.
So kann ich von überall auch bei Änderung der Ursprungsdatei immer zuverlässig den Rechnungsbetrag auslesen.

Das zur Erklärung, warum ich mit globaler Benennung nicht klarkomme.
Und, warum ich nicht alles in eine Datei packen kann.

Blockquote Externe Links sind einfach nur Mist.<

Ich lese daraus, dass es nach wie vor keine Lösung für das Problem gibt und es sich um ein internes Problem - somit evtl. um einen Bug handelt…???

Das erste Problem ist, dass Du überhaupt Geschäftsvorgänge in einer Tabellenkalkulation speicherst. Jede, wirklich jede professionelle Software speichert sowas in einer Datenbank, die in einer ganz speziellen Weise strukturiert ist. Buchhaltungssoftware, die Geschäftsdaten auf Excel-Sheets speichert gibt es nur in Form von zigtausenden Do-It-Yourself-Projekten, die aber nie übertragbar sind, weil jeder Excel-Freak immer nur durch sein eigenes gewurschtel durchsteigt.

Das zweite Problem liegt darin, dass wenn Du schon eine Geschäftsdatenbank auf Käsekästchen nachmodellierst, die Struktur dieser Datenbank einer Papierwelt nachempfunden zu sein scheint, mit einer separaten “Akte” für jeden Kunden oder für jeden Auftrag oder für jeden Angestellten oder, oder, oder. Wenn man schon Excel oder sowas als Datenbank-Krücke verwendet, dann ist es unvermeidbar, bestimmte Designregeln einzuhalten, weil auch die entsprechenden Features von Excel & Co. eine bestimmte Struktur voraussetzen, um Sachverhalte aus verschiedenen Tabellen zusammenzuführen. (s. Datenbanknormalisierung). Auf heutigen Computern kannst Du tausende Tabellen in einer Datei haben. Die Sheets sind sogar so groß, dass Du tausende Tabellen auf einem Sheet anlegen könntest.

Das Verhalten von Calc ist meiner Meinung nach kein Fehler, sondern eine Fehlstelle. Es scheint einfach nicht implementiert zu sein. Man hat vor ein paar Jahren auf vielfachen Wunsch Excel’s SheetName!Bereichsname eingeführt, aber dabei nicht gleich die externen Links entsprechend berücksichtig. Vielleicht wissen wir auch einfach nicht, wie es geht. Stell Dir vor, es geht, und keiner kriegt’s hin (Wolfgang Neuss zum 100sten Geburtstag).

Ich habe mal auf der englischen LIste nachgefragt: DDE link pointing to sheet specific range name? EDIT: Die Antwort ist wie vermutet: Es ist nicht implementiert und seit Jahren gammelt ein entsprechender Feature Request vor sich hin. Ist wohl eher selten gefragt.

Dann habe ich eine meiner Beispieldatenbanken für Rechnungen vorgekramt, die wirklich nur ein sehr grober Entwurf ohne MwSt, ohne Frachtkosten, ohne Rabatte, ohne Kunden-Details, ohne Artikel-Details etc. ist. Also etwas, was in ein paar Stunden mal eben dahingepfuscht ist.

Darin befinden sich 3 Eingabeformulare:

  1. “New Invoice” zur Eingabe einer neuen Rechnung. Wähle einen Kunden, ein Rechnungsdatum (Standard ist heute) und füge Produkte und Mengen hinzu. Die weiße Tabelle zeigt die aktuellen Produktpreise am Rechnungsdatum.
  2. “Products & Prices” dient der Aktualisierung von Artikelpreisen.
  3. “Existing Invoices” zeigt alle eingegebenen Rechnungen.

Der eine Bericht “Report” ist ein etwas stümperhafter Entwurf, der einfach alle Rechnungen in ausdruckbarer Form anzeigt. In Berichten kann man auch Gesamtsummen, MwSt etc. ausweisen.
Wenn Du unbedingt willst, kannst Du Datenbankdaten auch in Calc importieren (und layouten). Mit Makro-Code kann man auch in Writer aus Datenbankdaten richtige DIN-Briefe mit Rechnungen erzeugen.

Die Tabellen und Abfragen der Datenbank sind sozusagen die Bereiche “hinter den Kulissen”, wo Rohdaten gespeichert, zusammengeführt und berechntet werden.
Invoices_Articles_Prices.odb (48.1 KB)

1 Like