Seite 1 von 1

verknüpfte Abfrage

Verfasst: Do, 22.06.2006 11:34
von Niels
Hallo zusammen,

Ich beschreibe mal an einem Beispiel, was ich (unter Windows) machen will, auch wenn dies so sicher keinen Sinn macht, aber das ganze Thema würde den Rahmen hier sprengen:
Ich habe eine Tabelle in der stehen Telefonnummern. Dazu bekomme ich eine weitere Datei im Unixformat in der viele Informationen zu den Telefonnummern stehen. Die Felder sind durch Pipe getrennt und eine neue Zeile beginnt nur mit CR (oder war es LF - auf jeden Fall kein CRLF).
Einige dieser Informationen will ich nun in meine Tabelle zu der entsprechenden Telefonnummer importieren. Dazu habe ich 2 Lösungsansätze:
  1. Ich importiere diese Datei per Makro in ein Arbeitsblatt. Nun weiß ich nur nicht, wie ich die Informationen verknüpfe. In der Zielzelle (z.B. B1) müsste ja nun ein Ausdruck stehen, der irgendwie folgendes beschreibt:
    • =Importarbeitsblatt, Spalte B Zeile wo in Spalte A das Gleiche steht wie in Zelle A1 vom Zielarbeistblatt.
  2. Ich lese die Datei per Makro und extrahiere im Makro die Informationen. Das ist nicht weiter schlimm. Nun suche ich per Makro die aus der Importdatei gelesene Telefonnummer in meinem Arbeitsblatt, lese die Zeile aus und gehe auf die Spalte B mit der gleichen Zeilennummer.
Ich plädiere eigentlich ich für Ansatz 1 oder eine viel bessere Anregung von Euch. Denn erschwerend kommt hinzu. Die Telefonnummer aus dem Beispiel taucht an mehreren Stellen des Dokuments auf. Also muss ich mehrfach suchen und steuern und absichern, dass es keine Endlosschleife wird, weil ich immer wieder den Gleichen Datensatz finde. Zudem muss die Telefonnummer auch nicht auftauchen. Auch dass müsste ich ja im Makro abfangen.

Danke
Niels

Verfasst: Do, 22.06.2006 13:42
von Karolus
Hallo Niels

Dein erster Ansatz dürfte mit : (für B1)

=SVERWEIS($A1;Importarbeitsblatt.$A$1:$Z$1000;2;0)
funktionieren.

statt 'Importarbeitsblatt' muß natürlich die tatsächliche Bezeichnung des Quelltabellenblatts verwendet werden, $Z$1000 wird durch die Zelladresse rechts unten des Quellbereichs ersetzt (mit $ -zeichen)
Die fettgeschriebene 2 ist der Index der Spalte aus der das Ergebnis geliefert werden soll, und kann evtl. durch 'SPALTE()' ersetzt werden . (dann passt sich der Index bei horizontalem Ziehen der Formel automatisch an).

Gruß Karo

Danke

Verfasst: Do, 22.06.2006 20:17
von Niels
Hallo Karo,

Super, es funktioniert! Wenn Du nur das Stichwort SVERWEIS gepostet hättest, dann hätte ich das nie hinbekommen. Das habe ich gerade mit dem Formelassitant versucht!
Na dann werde ich mich mal daran machen, den Importvorgang zu automatisieren.

Gruß
Niels

Zusatzfrage

Verfasst: Mo, 26.06.2006 15:45
von Niels
So, jetzt stehe ich wieder auf dem Schlauch!
Die Formel darf nur greifen, wenn im Importarbeitsblatt Spalte A und AO gleich sind oder Spalte AO leer ist. Bekommt man das hin?

Danke
Niels

Verfasst: Mo, 26.06.2006 21:06
von Karolus
Hallo Niels


=WENN(ODER(SVERWEIS($A1;Importarbeitsblatt.$A$1:$Z$1000;1;0)=SVERWEIS($A1;Importarbeitsblatt.$A$1:$Z$1000;41;0);SVERWEIS($A1;Importarbeitsblatt.$A$1:$Z$1000;41;0)="");SVERWEIS($A1;Importarbeitsblatt.$A$1:$Z$1000;2;0) ;"")

Genauso wie in meiner letzten Beispielformel musst du hier die richtigen Bezeichnungen und Adressen anpassen . (Im übrigen ohne Gewähr, daß ich dich a. richtig verstanden b.alle Klammern richtig gesetzt habe)

Gruß Karo

Verfasst: Mo, 26.06.2006 21:45
von Niels
Ahh, Danke Karolus,

Ich habe das natürlich wieder falsch angepackt und krampfhaft überlegt, wie ich in dem Importarbeitsblatt zum Erfolg komme. Allerdings habe ich mich auch nicht vollständig ausgedrückt, was Dein Statement evtl. unmöglich macht: Im Importarbeitsblatt gibt es mehrere Zeilen, in denen der SVERWEIS zutrifft, jedoch nur eine, in der die zusätzliche Bedingung zutrifft. Nun weiß ich nicht, ob die Formel immer alle SVERWEISE auf die gleiche Zeile bezieht oder ich einfach nur Glück habe, wenn es klappt?

Gruß
Niels

Verfasst: Di, 27.06.2006 21:18
von Niels
OK, ich habe jetzt etwas getetstet und die Formel auch (hoffentlich) verstanden. Allerdings greift diese leider nicht mit der von mir "unterschlagenen" Bedingung, sondern nur immer auf die erste Zeile, in welcher der SVERWEIS zutrifft.
Daher werde ich nun den Datenimport einmal über OO-Basic versuchen und hier die 1. Bedingung abzuklopfen um dann mittels SVERWEIS die Zuordnung vornehmen zu können. Leider stoße ich da auch schon wieder an meine Grenzen :cry: .

Gruß
Niels

Ich habs

Verfasst: Di, 27.06.2006 22:57
von Niels
OK, es geht auch ohne Makro - nur mit einer Hilfstabelle. In dieser habe ich folgende Formel in A1 getan und den Rest ausgefüllt:

Code: Alles auswählen

=WENN(ODER(Import.$A1=Import.$AO1;Import.$AO1="");Import.A1;"")
Nun kann ich in meiner Zieltabelle mit SVERWEIS in B1 arbeiten und ausfüllen:

Code: Alles auswählen

=SVERWEIS($A1;Hilfstabelle.$A$1:$Z$1000;2;0)
Sicher nicht gerade elegant, aber effektiv.

Gruß
Niels