=INHALT(Datei,Tabelle,Zeile,Spalte)
Moderator: Moderatoren
=INHALT(Datei,Tabelle,Zeile,Spalte)
Hallo,
In einer .ods Tabelle habe ich folgende Zellen
Zelle Inhalt
A1 E:/Test/
A2 Adressbuch.csv
A3 file:///E:/Test/Adressbuch.csv
A4 file:///E:/Test/Adressbuch.csv#Tabelle1
A5 Tabelle1
A6 Tabelle2
Nun möchte ich Inhalte aus einer CSV Datei einbinden gemäß einer Funktion "INHALT", die ich vergeblich gesucht habe:
=INHALT(Datei,Tabelle,Zeile,Spalte)
als Direktreferenz funktioniert es z.B. folgendermaßen
='file:///E:/Test/Adressbuch.csv'#Tabelle1.B5
Bei einer CSV Datei gibt es offensichtlich nur eine Tabelle, die man aber mit "Tabelle1" ansprechen kann.
Nun möchte ich:
1. Den Dateinamen nur einmal im Feld A1 und nicht in allen Formeln ändern müssen,
2. Die Zeilen und Spalten beliebig berechnen lassen
Wenn ich die Adressdaten in einer zweiten Tabelle (namens Tabelle2) in der gleichen Datei habe, dann funktioniert folgendes:
=INDIREKT(ADRESSE(ZeilenFormel;SpaltenFormel;1;1;$A$6))
wobei $A$6 den Text "Tabelle2" enthält und die Zeilen und Spalten als Referenz auf Zahlenwerte gegeben sind oder per Formel ausgerechnet werden.
Wenn sich die Adressdaten nun aber in einer externen Datei (Pfad und Name in A1 und A2 festgelegt) befinden, wie kann man es dann realisieren?
=INDIREKT(ADRESSE(Zeile;Spalte;1;1;$A$4)) führt zu Err:508 "Fehler in der Klammerung".
mit SVERWEIS() komme ich auch auf keinen grünen Zweig...
Wer kann mir weiterhelfen?
Danke für Hinweise...
Theo.
In einer .ods Tabelle habe ich folgende Zellen
Zelle Inhalt
A1 E:/Test/
A2 Adressbuch.csv
A3 file:///E:/Test/Adressbuch.csv
A4 file:///E:/Test/Adressbuch.csv#Tabelle1
A5 Tabelle1
A6 Tabelle2
Nun möchte ich Inhalte aus einer CSV Datei einbinden gemäß einer Funktion "INHALT", die ich vergeblich gesucht habe:
=INHALT(Datei,Tabelle,Zeile,Spalte)
als Direktreferenz funktioniert es z.B. folgendermaßen
='file:///E:/Test/Adressbuch.csv'#Tabelle1.B5
Bei einer CSV Datei gibt es offensichtlich nur eine Tabelle, die man aber mit "Tabelle1" ansprechen kann.
Nun möchte ich:
1. Den Dateinamen nur einmal im Feld A1 und nicht in allen Formeln ändern müssen,
2. Die Zeilen und Spalten beliebig berechnen lassen
Wenn ich die Adressdaten in einer zweiten Tabelle (namens Tabelle2) in der gleichen Datei habe, dann funktioniert folgendes:
=INDIREKT(ADRESSE(ZeilenFormel;SpaltenFormel;1;1;$A$6))
wobei $A$6 den Text "Tabelle2" enthält und die Zeilen und Spalten als Referenz auf Zahlenwerte gegeben sind oder per Formel ausgerechnet werden.
Wenn sich die Adressdaten nun aber in einer externen Datei (Pfad und Name in A1 und A2 festgelegt) befinden, wie kann man es dann realisieren?
=INDIREKT(ADRESSE(Zeile;Spalte;1;1;$A$4)) führt zu Err:508 "Fehler in der Klammerung".
mit SVERWEIS() komme ich auch auf keinen grünen Zweig...
Wer kann mir weiterhelfen?
Danke für Hinweise...
Theo.
Re: =INHALT(Datei,Tabelle,Zeile,Spalte)
Hallo
Angenommen du ergänzt A5 bsplw. zu:
Tabelle1.A1:B5
kannst du mit
als Matrixformel, (wg des mehrzelligen Bereichs)
diesen Zellbereich "rüberholen"
Siehe OOohilfe →DDE
Gruß Karo
Angenommen du ergänzt A5 bsplw. zu:
Tabelle1.A1:B5
kannst du mit
Code: Alles auswählen
=DDE("soffice";A1&A2;A5;2)
diesen Zellbereich "rüberholen"
Siehe OOohilfe →DDE
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: =INHALT(Datei,Tabelle,Zeile,Spalte)
Du kannst eine csv-Datei unter diesen Bedingungen nicht verlässlich in OOo einbinden, da Du beim Schliessen und Neuöffnen der Datei die Verknüpfung zur csv-Datei nicht auffrischen kannst.
Du wirst also die Daten der csv-Datei manuell in die dAtei kopieren oder per Makro übertragen müssen.
Gerade Gesagtes gilt natürlich nur für das Verknüpfen von csv-Dateien in Calc und nicht für normale tabellendokumente wie z.B. xls oder ods.
Gruß
Stephan
Du wirst also die Daten der csv-Datei manuell in die dAtei kopieren oder per Makro übertragen müssen.
Gerade Gesagtes gilt natürlich nur für das Verknüpfen von csv-Dateien in Calc und nicht für normale tabellendokumente wie z.B. xls oder ods.
Gruß
Stephan
Re: =INHALT(Datei,Tabelle,Zeile,Spalte)
Danke für die Rückmeldungen...
@Karo
aus der OO-Hilfe zu DDE werde ich nicht schlau...
=DDE("soffice";"E:/Test/Alphabet.csv";Tabelle1.A1;2)
gibt mir keinen Wert zurück
#NV nicht verfügbar
In der Zelle mit dieser Formel müsste doch jetzt der Wert aus Zelle A1 der Tabelle1 der CSV Datei stehen, oder?
Ich möchte auch nicht den ganzen Bereich "rüberholen", sondern nur einzelne ausgewählte Werte.
@Stephan
mit z.B.
='file:///E:/Test/Alphabet.csv'#$Tabelle1.B1
konnte ich bis jetzt problemlos die Daten aus der CSV "herausholen".
Wenn ich die .ods Datei mit solchen Verlinkungen öffne, fragt OO ob ich aktualisieren will, d.h. wenn ich aktualisieren will, muss ich die Datei schliessen und wieder öffnen. Einen anderen Weg habe ich noch nicht entdeckt.
Die Daten manuell kopieren oder ein Makro schreiben... genau das möchte ich vermeiden.
Da muss es doch noch etwas anderes geben...
@Karo
aus der OO-Hilfe zu DDE werde ich nicht schlau...
=DDE("soffice";"E:/Test/Alphabet.csv";Tabelle1.A1;2)
gibt mir keinen Wert zurück
#NV nicht verfügbar
In der Zelle mit dieser Formel müsste doch jetzt der Wert aus Zelle A1 der Tabelle1 der CSV Datei stehen, oder?
Ich möchte auch nicht den ganzen Bereich "rüberholen", sondern nur einzelne ausgewählte Werte.
@Stephan
mit z.B.
='file:///E:/Test/Alphabet.csv'#$Tabelle1.B1
konnte ich bis jetzt problemlos die Daten aus der CSV "herausholen".
Wenn ich die .ods Datei mit solchen Verlinkungen öffne, fragt OO ob ich aktualisieren will, d.h. wenn ich aktualisieren will, muss ich die Datei schliessen und wieder öffnen. Einen anderen Weg habe ich noch nicht entdeckt.
Die Daten manuell kopieren oder ein Makro schreiben... genau das möchte ich vermeiden.
Da muss es doch noch etwas anderes geben...
Re: =INHALT(Datei,Tabelle,Zeile,Spalte)
und warum nicht? WEnn Du Hilfe zur Hilfe willst mußt Du schon erklären was Du nicvht verstehst.aus der OO-Hilfe zu DDE werde ich nicht schlau...
Augenscheinlich entspricht diese Formel ja auch nicht einer Formel für eine DDE-Verknüpfung, denn z.B. die Hilfe von OOo liefert folgendes Beispiel:=DDE("soffice";"E:/Test/Alphabet.csv";Tabelle1.A1;2)
gibt mir keinen Wert zurück
#NV nicht verfügbar
=DDE("soffice";"c:\office\Dokument\Daten1.sxc";"sheet1.A1")
womit klar sein dürfte das der Parameter für den Bereich als String:
"Tabelle1.A1"
zu übergeben ist und nicht als
Tabelle1.A1
Nein, weil das für csv-Dateien nicht geht. (Es geht nur scheinbar, da es solange geht wie beide Dateien geöffnet sind, sobald man diue csv-Datei schließt und die Verknüpfung, egal ob DDE- oder file-Verknüpfung) aktualisieren will geht es nicht.In der Zelle mit dieser Formel müsste doch jetzt der Wert aus Zelle A1 der Tabelle1 der CSV Datei stehen, oder?
Soweit mir bekannt: Nein, das konntest Du nicht, weil dieses 'problemlos' immer nur so lange funktioniert wie die Datei(en), nach Herstellen der Verknüpfung, geöffnet bleiben.mit z.B.
='file:///E:/Test/Alphabet.csv'#$Tabelle1.B1
konnte ich bis jetzt problemlos die Daten aus der CSV "herausholen".
Darin liegt aber nicht das Problem, das liegt vielmehr darin das Du nicht eine Verknüpfung zu einer csv-Datei aktualisieren kannst wenn diese einmal geschlossen wurde, sondern immer nur solange wie diese, nach Herstellen der Verknüpfung, offen bleibt.Wenn ich die .ods Datei mit solchen Verlinkungen öffne, fragt OO ob ich aktualisieren will, d.h. wenn ich aktualisieren will, muss ich die Datei schliessen und wieder öffnen. Einen anderen Weg habe ich noch nicht entdeckt.
Aktualisieren von Verknüpfungen wäre hingen ganz sdimpel über Bearbeiten-Verknüpfungen möglich, es geht aber unter den hier vorliegenden Umständen nicht.
Meines Wissens nein.Da muss es doch noch etwas anderes geben...
Ich hatte deutlich gemacht das es bei dem Problem um csv geht und nur darum denn mit xls oder ods etc. gehjt es ja wie gewünscht. Für csv hingegen kenne ich keinen Weg einer aktualisierbaren, dauerhaften Verknüpfung mit Bordmitteln von Calc.
Gruß
Stephan
Re: =INHALT(Datei,Tabelle,Zeile,Spalte)
Das kann ich mir beim ALLERBESTEN Willen nicht vorstellen, da es NICHT möglich ist eine Verknüpfung zu einer csv(!) Datei zu aktualisieren.Und danach alles ist bei mir in bester und aktueller Ordnung.
Was Deine vorgestellte Lösung hingegen mit dem Nachgefragten zu zun haben soll verstehe ich nicht denn dort findet offensichtlich nur eine DDE-Verknüpfung zu einer Tabelle innerhalb der DAtei statt, also mitnoichten eine Verknüpfung zu einer csv-Datei.
Gruß
Stephan
Re: =INHALT(Datei,Tabelle,Zeile,Spalte)
Hallo Stephan,
Ändere ich die CSV Datei und öffne dann wieder die .ods Datei sind sind die Änderungen in der .ods Datei drin. Frag mich nicht wieso. Mit OO 3.3.0 OOO330m20 Build 9567 scheint das zu gehen.
Wieso nichts zu tun mit dem Nachgefragten?
In Tabelle Auszug.$A$1 steht "E:/Test/Adressbuch.csv"
Damit ist doch
=DDE("soffice";$A$1;ADRESSE($B2;C$1;4;1;"Tabelle1");2)
ein Link auf eine externe CSV Datei, oder?
"Alles in Ordnung" stimmt vielleicht nicht ganz. Wann und wie die Umlaute manchmal korrekt geladen werden habe ich noch nicht verstanden.
z.B. Mühltorstr. statt Mühltorstr. usw.
Wie kann man einer .ods Tabelle sagen, dass sie UTF-8 einladen bzw. interpretieren soll?
schönen Gruss,
Theo.
Ändere ich die CSV Datei und öffne dann wieder die .ods Datei sind sind die Änderungen in der .ods Datei drin. Frag mich nicht wieso. Mit OO 3.3.0 OOO330m20 Build 9567 scheint das zu gehen.
Wieso nichts zu tun mit dem Nachgefragten?
In Tabelle Auszug.$A$1 steht "E:/Test/Adressbuch.csv"
Damit ist doch
=DDE("soffice";$A$1;ADRESSE($B2;C$1;4;1;"Tabelle1");2)
ein Link auf eine externe CSV Datei, oder?
"Alles in Ordnung" stimmt vielleicht nicht ganz. Wann und wie die Umlaute manchmal korrekt geladen werden habe ich noch nicht verstanden.
z.B. Mühltorstr. statt Mühltorstr. usw.
Wie kann man einer .ods Tabelle sagen, dass sie UTF-8 einladen bzw. interpretieren soll?
schönen Gruss,
Theo.
Re: =INHALT(Datei,Tabelle,Zeile,Spalte)
Damit ist doch
=DDE("soffice";$A$1;ADRESSE($B2;C$1;4;1;"Tabelle1");2)
ein Link auf eine externe CSV Datei, oder?
Ja stimmt (wobei Verknüpfung und nicht Link).
Gruß
Stephan