Funktion "indirekt" in einer Formel

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

pappa
**
Beiträge: 24
Registriert: Fr, 05.01.2007 15:24

Funktion "indirekt" in einer Formel

Beitrag 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
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Beitrag 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
pappa
**
Beiträge: 24
Registriert: Fr, 05.01.2007 15:24

Beitrag 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
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Beitrag 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
Eia
********
Beiträge: 2614
Registriert: Sa, 23.12.2006 07:40

Re: Funktion "indirekt" in einer Formel

Beitrag 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?
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Beitrag 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
Eia
********
Beiträge: 2614
Registriert: Sa, 23.12.2006 07:40

Beitrag 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.
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Beitrag 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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag 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
Eia
********
Beiträge: 2614
Registriert: Sa, 23.12.2006 07:40

Beitrag 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.
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Beitrag 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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Beitrag 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
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Beitrag 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
pappa
**
Beiträge: 24
Registriert: Fr, 05.01.2007 15:24

Re: Funktion "indirekt" in einer Formel

Beitrag 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
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

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