Hallo Bastie,
ich hab da noch mal bischen getüftelt, und kan nun ein zufrieden stellendes Ergebnis präsentieren. Das hab ich wieder in den Anhang gepackt.
Und damit Du das ganze besser nachvollziehen kannst, erkläre erst mal die einzelnen Formeln, die hinterher zusammen in einer drin sind.
Diese Formel
steht in C15 drin (<- Von Plz).
Mit INDEX wird der Inhalt einer Zelle zurückgegeben, die durch einen Bereich (A5:A9) und durch die Zeilennummer (VERGLEICH...), defeniert ist. Wobei VERGLEICH das Suchkriterium $B$2 in dem Suchbereich $A$5:$A$9 sucht. Und wenn es gefunden wird, gibt VERGLEICH die Zeilennummer innerhalb des Suchbereichs zurück, das könnte z.B. die 3 sein. Die 1 in VERGLEICH sagt, dass der Suchbereich aufsteigend sortiert vorliegt. Das hat den Vorteil, dass die nächst kleinere Zahl zurückgegeben wird, wenn das Suchkriterium nicht exakt gefunden wird.
Die Formel könnte jetzt aufgrund des eben theoretisch ermittelten Wertes wie folgt aussehen.
Und die dementsprechende Postleitzahl könnte die 1498 sein.
Diese Formel
steht in C16 drin (<- Bis Plz).
Jetzt hat INDEX nicht mehr einen einspaltigen, sondern einen zweispaltigen Bereich (A5:B9). Und der Rest der Formel ist mit der vorherigen identisch, bis auf einen kleinen Unterschied. Jetzt steht da noch eine 2 drin. Und diese 2 gehört zu INDEX, und gibt die Spaltennummer des Bereichs (A5:B9) an. Wobei die 2 eine Feste Konstante ist, und nicht wie die 3, die ermittelt wird. Das hat zur folge, das die auch eben schon ermittelte Zeilennummer (3) jetzt auch wieder dabei rauskommt. Nur wird jetzt nicht der Wert aus der ersten, sondern aus der zweiten Spalte zurückgegeben. Mit anderen Worten, die Nachbarzelle zur rechten von vorhin.
Die Formel könnte jetzt wie folgt aussehen.
Passend zum Ergebnis von der ersten Formel könnte jetzt die Postleitzahl 22288 zurückgegeben werden.
Mit diesen beiden Formeln läßt sich jetzt die endgültige Formel aufbauen. Die jetzt wie folgt aussieht.
Code: Alles auswählen
=WENN(UND(B2>=INDEX(A5:A9;VERGLEICH($B$2;$A$5:$A$9;1));B2<=INDEX(A5:B9;VERGLEICH($B$2;$A$5:$A$9;1);2));SVERWEIS(INDEX(A5:A9;VERGLEICH($B$2;$A$5:$A$9;1));A5:C9;3;0);"Kein Partner")
Die beiden Formeln sind jetzt in der UND(...) eingesetzt. Damit wird überprüft, ob die zu suchende Plz größer (>), oder gleichgroß (=), dem Ergebnis der herausgefundenen VON Plz ist. UND ob sie kleiner (<), oder gleichgroß (=), dem Ergebnis der herausgefundenen BIS Plz ist. Es müssen beide zustände zutreffen, damit es mit der SVERWEIS(...) weitergeht.
In der SVERWEIS ist jetzt schon wieder die zu erst beschriebene Formel drin, und das ist jetzt das Suchkriterium. Und wenn es jetzt gefunden ist, wird nun aus dem Datenbereich A5:C9 der Wert aus der dritten (3) Spalte zurückgegeben. Es wird also jetzt der passende Name angezeigt.
Sollte aber die UND(...) überprüfung nicht zutreffen. dann wird der Text "Kein Partner" ausgegeben.
Die Hauptformel funktioniert soweit sehr gut
Nur gibt es da noch ein anderes Problem!
Wie handhabst Du die Postleitzahlen die mit einer Null (0) anfangen!? Und wie sieht das in dem anderen Programm (RegioGraph10) aus?
Ansonsten kann ich dir nur viel Spaß damit wünschen
Gruß
balu