Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Werte in einer Intervall-Matrix suchen

Werte in einer Intervall-Matrix suchen
Gaidin
Hallo,
ich habe folgendes Problem.
In einer Spalte einer Tabelle habe ich Werte. Die Zugehörigkeit dieser Werte zu einem Intervall in zwei weiteren nebeneinander stehenden Spalten (wobei die erste Spalte den Minimalwert und die zweite Spalte den Maximalwert des Intervalls enthält) soll herausgefunden werden. Anschliessend soll ein Wert, der in der rechten Spalte neben dem gefundenen Intervall steht neben den ursprünglich gesuchten Wert geschrieben werden.
Ich habe es bisher mit einem Range-Objekt und der Find-Funktion, in VBA, versucht, bin aber bisher nicht auf eine Lösung gekommen.
Über Hilfe, Anregungen und Ideen würde ich mich freuen.
Gaidin
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Werte in einer Intervall-Matrix suchen
Ramses
Hallo
Basis ist, dass die Intervalle aufsteigend sortiert sind,... dann sollte es gehen.
Zumindest habe ich das so verstanden :-)
Tabelle1
 ABCDE
1Wert  MinMaxRückgabe
21a010a
312b1120b
434d2130c
5  3140d
6     
Formeln der Tabelle
B2 : =INDIREKT(ADRESSE(VERGLEICH(A2;$C$2:$C$5;1)+1;5))
B3 : =INDIREKT(ADRESSE(VERGLEICH(A3;$C$2:$C$5;1)+1;5))
B4 : =INDIREKT(ADRESSE(VERGLEICH(A4;$C$2:$C$5;1)+1;5))
 
Excel Tabellen einfach im Web darstellen    Excel Jeanie HTML  3.0    Download  
Gruss Rainer
Anzeige
Danke;) (Geht das auch in VBA?)
Gaidin
Wow, das war schnell und hilfreich. Genau das was ich brauchte.
Kennst du evtl. auch noch einen passenden VBA-Code?
AW: Danke;) (Geht das auch in VBA?)
Ramses
Hallo
klar geht das.
Das Prinzip ist doch das gleiche
Schleife durch C laufen lassen bis du einen Wert findest der grösser als der Suchwert ist, und dann zwei Spalten nach rechts.
bei VBA-Gut sollte das doch gehen ;-)
Anyway,... warum VBA. Mit der Formel bist du auf jeden Fall schneller.
Gruss Rainer
Anzeige
Noch 'ne Frage
Gaidin
VBA brauch ich manchmal für komplexere Geschichten. Daher weiss ich immer gerne wie was funktioniert damit ich's bei Bedarf kann.
Kannst du mir bitte noch kurz sagen was die letzten drei Zahlen (1,+1 und 5) in der Formel bedeuten - ich steh' irgendwie auf dem Schlauch. Damit ich's verstehe: Was müsste ich machen um eine Zahl zuzuweisen die nicht rechts, sondern links meines Intervalles steht?
Danke, Gaidin
Anzeige
AW: Noch 'ne Frage
Ramses
Hallo
Die Online Hilfe hilft da schon manchmal auf die Sprünge :-)
Die erste 1 gibt den Zeilenwert zurück der kleiner als das Suchergebnis ist
"+1" brauche ich, da die Suche in der zweiten Zeile beginnt, die Funktion VERGLEICH aber nur die Zeile zurückgibt, wo der Suchbegriff innerhalb der Matrix ist.
Wenn der Suchbereich also in C3 beginnt muss ich 2 addieren, in C5 muss ich 4 addieren usw.
5 gibt die spalte an, wo ich den Wert zurückhaben will, hier aus E. Wenn ich den Wert aus D haben will, muss ich 4 schreiben und aus F eben 6 ;-)
Gruss Rainer
Anzeige
Problem bei Suche in anderem Tabellenblatt
Gaidin
Vielen Dank ersteinmal. Ich bin jetzt schon viel weiter durch deine Hilfe.
Vielleicht stell' ich mich zu doof an, aber ich habe noch ein Problem.
Wenn ich versuche diese Formel zwischen Tabellenblättern anzuwenden, dann bekomme ich, trotz richtiger Verknüpfung, immer die Werte aus den Zellen des Blattes in der die Formel steht, zurück.
Die Formel sieht so aus: =INDIREKT(ADRESSE(VERGLEICH(A2;Tabelle2!$B$1:$B$10;1)+1;2))
Gaidin
Anzeige
AW: Problem bei Suche in anderem Tabellenblatt
Ramses
Hallo
"...Vielleicht stell' ich mich zu doof an,..."
Denke ich nicht, aber du solltest dir mal die Syntax der Funktion INDIREKT in der Hilfe ansehen :-))
=INDIREKT("Tabelle2!" & ADRESSE(VERGLEICH(A2;Tabelle2!$B$1:$B$10;1)+1;2))
Das sollte funktionieren :-)
Gruss Rainer
Funktioniert. Vielen Dank ;)))
23.04.2004 08:50:02
Gaidin
;
Anzeige
Anzeige

Infobox / Tutorial

Werte in einer Intervall-Matrix suchen


Schritt-für-Schritt-Anleitung

Um Werte in einer Intervall-Matrix zu suchen und die Zugehörigkeit zu einem Intervall zu prüfen, folge diesen Schritten:

  1. Daten vorbereiten: Stelle sicher, dass deine Daten in drei Spalten angeordnet sind:

    • Spalte A: Die zu prüfenden Werte.
    • Spalte B: Die Minimalwerte der Intervalle.
    • Spalte C: Die Maximalwerte der Intervalle.
    • Spalte D: Die Rückgabewerte, die du neben den zu prüfenden Werten anzeigen möchtest.
  2. Formel eingeben: Verwende die folgende Formel in Zelle B2 (oder der entsprechenden Zelle), um den Rückgabewert zu ermitteln:

    =INDIREKT(ADRESSE(VERGLEICH(A2;C$2:C$10;1)+1;4))
    • Ersetze C$2:C$10 mit dem tatsächlichen Bereich deiner Maximalwerte.
    • 4 gibt die Spalte an, aus der der Rückgabewert entnommen wird.
  3. Formel nach unten ziehen: Ziehe die Formel nach unten, um sie auf die weiteren Zellen anzuwenden.

  4. Prüfen: Überprüfe, ob der Wert in der Matrix vorhanden ist, indem du sicherstellst, dass die Intervalle korrekt angegeben sind.


Häufige Fehler und Lösungen

  • Fehler: #NV oder #WERT!: Dies kann auftreten, wenn der Suchwert nicht in den angegebenen Intervallen liegt. Stelle sicher, dass die Intervalle korrekt definiert sind und der Suchwert innerhalb der Grenzen fällt.

  • Lösung: Syntaxfehler: Achte darauf, dass bei der Verwendung von INDIREKT die korrekte Syntax eingehalten wird:

    =INDIREKT("Tabelle2!" & ADRESSE(VERGLEICH(A2;Tabelle2!$B$1:$B$10;1)+1;2))
  • Wert wird nicht gefunden: Stelle sicher, dass die Intervalle aufsteigend sortiert sind, um eine korrekte Zuordnung zu gewährleisten.


Alternative Methoden

Wenn du die Suche nach Intervallen in Excel optimieren möchtest, kannst du auch die folgende Methode verwenden:

  • SVERWEIS-Funktion: Verwende SVERWEIS, um nach den Werten zu suchen.

    =SVERWEIS(A2;C$2:E$10;2;Wahr)

    Diese Methode funktioniert gut, wenn die Daten in aufsteigender Reihenfolge sortiert sind.

  • VBA-Option: Wenn du lieber mit VBA arbeitest, kannst du eine Schleife verwenden, um durch die Intervalle zu gehen und die Werte zuzuordnen.


Praktische Beispiele

Hier sind einige Beispiele für die Verwendung der INDIREKT und VERGLEICH Funktionen:

  • Beispiel 1: Angenommen, in Spalte A stehen Werte wie 5, 15, und 35. Die Intervalle in den Spalten B und C sind wie folgt:

    B | C
    -----
    0 | 10
    11| 20
    21| 30
    31| 40

    Die Formel in Spalte D würde dann die Rückgabewerte a, b, und d entsprechend zurückgeben.

  • Beispiel 2: Um zu prüfen, ob ein Wert in einem Intervall vorhanden ist, kannst du die Formel anpassen, um die Rückgabewerte aus einer anderen Spalte zu entnehmen.


Tipps für Profis

  • Verwende benannte Bereiche: Um die Lesbarkeit der Formeln zu erhöhen, kannst du benannte Bereiche für deine Intervalle und Rückgabewerte verwenden.

  • Fehlerüberprüfung: Nutze die WENNFEHLER Funktion, um mögliche Fehler in deinen Formeln abzufangen und eine benutzerfreundliche Nachricht anzuzeigen.

    =WENNFEHLER(INDIREKT(...); "Wert nicht gefunden")
  • Dynamische Bereiche: Setze die Tabelle-Funktion ein, um dynamische Bereiche zu erstellen, die sich automatisch anpassen, wenn du neue Daten hinzufügst.


FAQ: Häufige Fragen

1. Wie kann ich prüfen, ob ein Wert in der Matrix vorhanden ist?
Du kannst die Funktion VERGLEICH verwenden, um zu prüfen, ob ein Wert in einem bestimmten Bereich enthalten ist.

2. Was bedeuten die Zahlen in der Formel?

  • Die erste Zahl gibt die Zeile an, die kleiner oder gleich dem Suchwert ist.
  • +1 wird hinzugefügt, da die Suche in der zweiten Zeile beginnt.
  • Die letzte Zahl gibt die Spalte an, aus der der Wert zurückgegeben werden soll.

3. Kann ich das auch in VBA umsetzen?
Ja, du kannst eine Schleife verwenden, um die Werte zu durchlaufen und die Rückgabewerte zu setzen, ähnlich wie bei der Formelanwendung.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige