Seite 1 von 2
Funktion "indirekt" in einer Formel
Verfasst: So, 07.01.2007 19:52
von pappa
Hallo miteinander,
kaum habe ich hier im Forum den Hinweis auf die Funktion bekommen, danke nochmal, tut sich das nächste Problem auf:
Kann ich den auch in einer Formel verwenden?
bisher sieht es so aus:
=WENN($B$3<0;"";SVERWEIS($B$3;indirekt"'file:///home/achim/"&E1&"/adressen.ods'#$daten.$A$4:$H$104";2))
in E1 steht test/projekt
als Ausgabe erscheint #Name
Es würde mir auch helfen, den Pfad aus einer Zelle holen zu können. Mein Problem ist eigentlich, das ich die entsprechenden Dateien umlagern möchte ohne jede relevante Zelle zu löschen.
schon mal Danke im voraus
Grüße
Achim
Verfasst: So, 07.01.2007 20:47
von Karolus
Hallo Achim
Du möchtest in Formel mit Pfadangaben den Pfad von '..../alter/Pfad/...' in '.../neuer/Pfad/...'
umbiegen ? -
Falls ja - ich würde es mit ->Bearbeiten->Suchen und Ersetzen probieren:
Als Suchbegriff trägst du den alten Pfad ein, als Ersetzungtext den neuen Pfad.
In den Optionen 'nur in Selektion' und in 'Formeln' aktivieren, und vorher alles selektieren, worin der Pfad angepasst werden soll.
Gruß Karo
Verfasst: So, 07.01.2007 21:04
von pappa
Karolus hat geschrieben:Hallo Achim
Du möchtest in Formel mit Pfadangaben den Pfad von '..../alter/Pfad/...' in '.../neuer/Pfad/...'
umbiegen ? -
jein....
Karolus hat geschrieben:Falls ja - ich würde es mit ->Bearbeiten->Suchen und Ersetzen probieren:
Als Suchbegriff trägst du den alten Pfad ein, als Ersetzungtext den neuen Pfad.
das wäre nur die halbe Lösung. Ich würde schon gerne in der Tabelle den Pfad eingeben können, dann könnte man das Projekt auch mit mehreren Rechnern bearbeiten.
Trotzdem danke für den Tipp, ist noch nicht das Wahre, kann ich mir aber (z.Zt. noch) mit helfen.
Grüße
Achim
Verfasst: Mo, 08.01.2007 01:07
von Karolus
Hallo Achim
Ich hab noch was gefunden :
Angenommen in A2 steht:
file:///home/achim/
A3:
test/projekt
A4:
/adressen.ods
Code: Alles auswählen
=SVERWEIS(A1;DDE("soffice";A2&A3&A4;"Tabelle1.A1:B10";0);2;0)
In Verbindung mit DDE kannst du beispielhaft die Zellen A2, A3 und A4 für die Zusammenstellung des Pfades benutzen. "soffice" ist fix, Die Bereichsangabe (im Bsp. "Tabelle1.A1:B10" kann bei Bedarf auch über eine Zelladdresse gesteuert werden.
Gruß Karo
Re: Funktion "indirekt" in einer Formel
Verfasst: Mo, 08.01.2007 07:11
von Eia
pappa hat geschrieben:
=WENN($B$3<0;"";SVERWEIS($B$3;indirekt"'file:///home/achim/"&E1&"/adressen.ods'#$daten.$A$4:$H$104";2))
Sowohl mit der Funktion INDIREKT wie auch mit SVERWEIS stimmt etwas nicht in Deiner Formel. Nach INDIREKT fehlt die Klammer
INDIREKT(..). Außerdem muss nach der Raute eine Zelladresse kommen, bei Dir kommt aber ein Zellbereich, der vermutlich zu SVERWEIS gehören soll?
Nimm das ganze einfach mal auseinander, fang mit INDIREKT an. Wenn das stimmt, kopier die Formel und füge sie in SVERWEIS ein. Und wenn das stimmt, pack das Ganze in die WENN-Abfrage.
Bei solchen Konstrukten benutze ich immer den
Funktions-Autopiloten da sieht man sofort, wo etwas nicht stimmt und kann jeden Formel-Teil schön nach seinen Parametern aufgeteilt anzeigen.
Kannst Du die Geschichte mal ausdeutschen?
Wenn B3 < 0
hol mir (mit SVERWEIS) aus der Matrix $A$4:$H$104 der aktuellen Datei den Inhalt der zweiten Spalte zu dem Wert, der
(INDIREKT) in Datei .... in Zelle ??? steht.
Ist es das?
Verfasst: Mo, 08.01.2007 09:49
von Karolus
Hallo
Nimm das ganze einfach mal auseinander, fang mit INDIREKT an. Wenn das stimmt, kopier die Formel und füge sie in SVERWEIS ein. Und wenn das stimmt, pack das Ganze in die WENN-Abfrage.
@Achim
Die Prozedur kannst du dir sparen, das funktioniert nicht in der Kombination mit Pfad in eine andere Datei. Nimm meinen Vorschlag von heute 1:07 Uhr, und passe sie an.
Gruß Karo
Verfasst: Mo, 08.01.2007 10:28
von Eia
Karolus hat geschrieben:Hallo
Nimm das ganze einfach mal auseinander, fang mit INDIREKT an. Wenn das stimmt, kopier die Formel und füge sie in SVERWEIS ein. Und wenn das stimmt, pack das Ganze in die WENN-Abfrage.
@Achim
Die Prozedur kannst du dir sparen, das funktioniert nicht in der Kombination mit Pfad in eine andere Datei.
Wieso soll das nicht funktionieren?
In A1 der aktuellen Tabelle steht: /documents
In der Datei 1.ods (die sich im Unterverzeichnis /documents befindet), Tabelle1, steht in A1: 3
In der aktuellen Datei liefert mir:
=INDIREKT("'file:///home/ich"&A1&"/1.ods'#$Tabelle1.A1")
korrekt den Inhalt von Tabelle1.A1 aus: /home/ich/documents/1.ods (3)
in der aktuellen Datei steht in Tabelle "Daten" eine Matrix. Aus der liefert mir:
=SVERWEIS(INDIREKT("'file:///home/ich"&A1&"/1.ods'#$Tabelle1.A1");Daten.A1:B3;2;0)
passend zu der 3 den Inhalt aus der zweiten Spalte
Die WENN-Formel lasse ich jetzt mal weg, aber die funktioniert ganz sicher auch.
Verfasst: Mo, 08.01.2007 11:19
von Karolus
Hallo Eia
Wieso soll das nicht funktionieren?
Weil es bei Achim andersrum aufgebaut ist. die Kriteriumszelle ist direkt im aktuellem Dokument und die SVERWEIS-tabelle ist im anderen Dokument. Ich hab letzte Nacht längere Zeit versucht das via INDIREKT anzusprechen, es ist mir nicht gelungen.
Gruß Karo
Verfasst: Mo, 08.01.2007 11:47
von Stephan
Weil es bei Achim andersrum aufgebaut ist. die Kriteriumszelle ist direkt im aktuellem Dokument und die SVERWEIS-tabelle ist im anderen Dokument. Ich hab letzte Nacht längere Zeit versucht das via INDIREKT anzusprechen, es ist mir nicht gelungen.
OK, kann sein, ich habe mir das jetzt nicht angesehen, da ich dachte das der Kern DEiner Kritik sich so darstellen ließe:
Wieso soll das nicht funktionieren?
Mutmaßlich weil Karo (so wie ich auch) der Meinung ist das ein Verfahren was nur zeitweilig funktioniert, kein Verfahren ist was insgesamt das Attribut "funktioniert" verdient.
Was ist denn das Ziel, der Pfad soll variabel sein, sich anpassen lassen, i.S. eines "funktioniert" also beliebig oft. Nun, und das geht meines Erachtens nicht. Bei jeder Pfadänderung wird bei der geschilderen Art des Vorgegens zwangsweise ein neues Tabellenblatt erzeugt. Hast Du also den Pfad 255 Mal geändert ist spätestens dann Schluss weil Calc nicht mehr Tabellenblätter haben kann.
(ich weiß nicht wie Calc dann reagiert, teste es und poste das Ergebnis, interessant zu wissen wäre es allemal)
Oder glaubtest Du das die Ausdrücke in der Klammer von INDIREKT() bei Verwendung von file, vollständig dynamische Pfade sind - nein das sind Namen von Tabellenblättern (siehe: Format-Tabelle-Einblenden).
Wenn Dir das reicht ist es ja OK und wenn es Dich nicht stört das sich nutzlose Tabellenblätter anhäufen ist es auch OK.
Gruß
Stepha
Verfasst: Mo, 08.01.2007 11:57
von Eia
Jetzt wo Du's sagst - die Parameter-Abgrenzung zwischen den SVERWEIS- und INDIREKT-Paramtern war mir schon auch schleierhaft, hatte es aber anders interpretiert.
Verfasst: Mo, 08.01.2007 13:24
von Karolus
Hallo
Mutmaßlich weil Karo (so wie ich auch) der Meinung ist das ein Verfahren was nur zeitweilig funktioniert, kein Verfahren ist was insgesamt das Attribut "funktioniert" verdient.
Nein, ich hab nur keine funktionierende Syntax gefunden die ein INDIREKT(<Pfad_zu_Bereich_in_anderer_Datei>) innerhalb von SVERWEIS erlaubt.
Oder glaubtest Du das die Ausdrücke in der Klammer von INDIREKT() bei Verwendung von file, vollständig dynamische Pfade sind - nein das sind Namen von Tabellenblättern (siehe: Format-Tabelle-Einblenden).
Wenn Dir das reicht ist es ja OK und wenn es Dich nicht stört das sich nutzlose Tabellenblätter anhäufen ist es auch OK.
Diese Folgeproblem besteht leider auch bei meinem Vorschlag mittels DDE.
Gruß Karo
Verfasst: Mo, 08.01.2007 13:59
von Stephan
Diese Folgeproblem besteht leider auch bei meinem Vorschlag mittels DDE.
Nein, denn es wäre mir gänzlich neu das eine DDE-Verknüpfung automatisch Hilfsabellen anlegt, oder diese auch nur benötigt.
Ich habe jedoch zur Sicherheit:
=SVERWEIS(A1;DDE("soffice";A2&A3&A4;"Tabelle1.A1:B10";0);2;0)
nachgestellt, und wie erwartet werden dabei keine weiteren Tabellen angelegt.
Gruß
Stephan
Verfasst: Mo, 08.01.2007 14:23
von Karolus
Hallo Stephan
Ja, du hast recht, ich hatte mir die ausgeblendeten Tabellen vorher mit direkten Links ins Testdokoment geholt und da sie sich zunächst nicht löschen liessen, angenommen daß sie von DDE 'benötigt' werden- -Nach dem entfernen der direkten Links konnte ich die Blätter löschen.
Gruß Karo
Re: Funktion "indirekt" in einer Formel
Verfasst: Mo, 08.01.2007 15:09
von pappa
Eia hat geschrieben:
Kannst Du die Geschichte mal ausdeutschen?
Irgendwie ist das ganz schön schwierig ....
Also mein Versuch:
ich möchte Daten aus bestimmten Zellen, verschiedener Dateien in eine Dokumentvorlage holen. (indirekt)
Außerdem möchte ich den Pfad auch in einer Zelle der Dokumentvorlage (variabel) stehen haben (damit ich z.B. auch mit mehreren Rechnern daran arbeiten kann)
Solange ich nur einen Wert holen möchte klappt "indirekt" ganz prima, nicht mehr klappen tut's wenn ich z.B, einen Sverweis auf einen Bereich machen möchte.
Hoffe das das nun verständlich ist
Danke für eure bisherigen Mühen
Grüße
Achim
Verfasst: Mo, 08.01.2007 15:36
von Karolus
Hallo Achim
Worum es geht haben wir inzwischen verstanden, hast du es inzwischen konkret mit:
=WENN($B$3<0;"";SVERWEIS($B$3;DDE("soffice";"file:///home/achim/"&E1&"/adressen.ods";"daten.$A$4:$H$104";0);2))
probiert ?
Gruß Karo