Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Sverweis Matrixbereich variabel halten

Sverweis Matrixbereich variabel halten
14.06.2006 18:53:41
Magic
Hallo liebe Forumgemeinde,
habe folgendes Problem.
Ich möchte in einer Tabelle eine Sverweis Function einsetzen die den Matrix-Bereich prüfen soll,hierbei soll der Bereich variabel aus einer zelle in die
Function eingehen.
Ich möchte nicht über ein Makro dieses bewerkstelligen.
Bsp. =SVERWEIS(A1;Tabelle1!A1:C31;2)
Der Bereich A1:C31 soll variabel sein.
Habe schon folgendes versucht.
In Zelle B2 steht zB "A1:C31" oder "A20:C60" oder "A35:C47"
Wie kann diesen variablen Bezug zu Zelle B2 in die Function einbauen.
Ich verzweifle schon und wäre über jede Hilfe dankbar
MfG Magic
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sverweis Matrixbereich variabel halten
14.06.2006 22:14:00
Luschi
Hallo Magic,
das macht man so:
in Zelle B2 steht: Tabelle1!A1:C31 (als Text).
Mit der Tastenkombination Strg + F3 ruft man das "Namen definieren"-Fenster auf und tippt 1 Namen ein, z.B. meinBereich1.
Im Feld "Bezieht sich auf" gibt man ein: =INDIREKT(Tabelle1!$B$1). Damit gibt der Name "meinBereich1" den Zellbereich zurück, der in B2 als Text hinterlegt ist.
Jetzt kann man diesen Namen in jeder Funktion aufrufen, der einen Matrix-Bereich verlangt: =SVERWEIS(A1;meinBereich1;2)
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Sverweis Matrixbereich variabel halten
15.06.2006 10:25:46
Daniel
Hallo,
da gibt es verscheidene Möglichkeiten, je Art der gewünschten Flexibiltät
- Hast du für die Matrix feste, aber mehrer Blöcke, zwischen denen du hin-und her springen möchtest?
- Ist die Anzahl der Zeilen der Matrix veränderlich und du willst den SVerweis nicht jedes mal von hand anpassen
- Soll der Sverweis nur auf einen bestimmtes, zu berechnendes Intervall wirken?
Das von dir geschilderte Beispiel kannst du zum beispiel über die Funktion:
INDIREKT(B2;falsch) lösen.
(wahr oder falsch muß gesetzt werden um zu unterscheiden ober der Zellbezug in §a$1-Schreibweise oder Z1S1-Schreibweise erfolgt. Hierzu bitte die Hilfe bemühen)
deine Formel sieht dann so aus:
=Sverweis(A1;indirekt(B1;falsch);2)
in Zelle B2 steht dann: "'Tabelle1!A1C31" oder eben "'Tabelle1!A20:C60"
Eine weiter Möglichkeit, das ganze Dynamisch zu gestalten ist die Funktion
BEREICH.VERSCHIEBEN(Zelle;x;y;a;b). Es steht:
ZELLE für die Zelle oder Zellbereich, von dem aus verschoben werden soll)
x ist die Anzahl der Zeilen, um der der Bereich von Zelle aus verschoben werden soll
y ist die Anzahl der Spalten, um der der Bereich von Zelle aus verschoben werden soll
a gibt an, wieviele Zeilen der Bereich hoch ist
b gibt an, wieviele Spalten der Bereich breit ist
Diese Werte können natürlich berechnet werden oder aus anderen Zellen geholt werden
in deinem Beispiel sähe das so aus:
für Tabelle1!A1:C31 = Sverweis(A1;Bereich.verschieben(Tablle1!A1;0;0;31;3);2)
für Tabelle1!A20:C60 = Sverweis(A1;Bereich.verschieben(Tablle1!A1;19;0;31;3);2)
für Tabelle1!E20:G60 = Sverweis(A1;Bereich.verschieben(Tablle1!A1;19;4;31;3);2)
um mit Dynamischen bzw. berechneten Bereichen zu arbeiten sollte man sich mit den Funktionen:
- Bereich.verschieben
- Indirekt
- Index
auskennen, da geht dann schon einiges (auch in Kombination)
Hilfreiche Funktionen zum finden/berechnen von Zeilen- und Spalten(an)zahlen sind
- Anzahl2
- Zählenwenn
- Vergleich
Gruß, Daniel
Anzeige
AW: Sverweis Matrixbereich variabel halten
16.06.2006 16:41:47
Magic
Super erklärt. Klappt jetzt Danke Daniel,Danke Luschi.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Sverweis Matrixbereich variabel halten


Schritt-für-Schritt-Anleitung

Um eine SVERWEIS-Funktion mit einem variablen Matrixbereich in Excel zu verwenden, befolge diese Schritte:

  1. Definiere den Matrixbereich: Gehe zu der Zelle, in der du den Bereich definieren möchtest, z.B. B2. Schreibe hier den Text für den Bereich, z.B. Tabelle1!A1:C31.

  2. Namen definieren:

    • Drücke Strg + F3, um das Fenster "Namen definieren" zu öffnen.
    • Klicke auf "Neu".
    • Gib einen Namen ein, z.B. meinBereich1.
    • Im Feld "Bezieht sich auf" gib ein: =INDIREKT($B$2).
  3. Verwende den definierten Namen: Ersetze in deiner SVERWEIS-Formel den direkten Bereich durch den Namen:

    =SVERWEIS(A1; meinBereich1; 2; FALSCH)

Jetzt benutzt die SVERWEIS-Funktion den variablen Matrixbereich, der in Zelle B2 definiert ist.


Häufige Fehler und Lösungen

  • Fehler: #BEZUG!
    Dieser Fehler tritt auf, wenn der Bereich, der in B2 definiert ist, nicht korrekt ist oder nicht existiert. Überprüfe die Eingabe in B2.

  • Fehler: #NAME?
    Dieser Fehler tritt auf, wenn der Name meinBereich1 nicht korrekt definiert wurde. Stelle sicher, dass der Name korrekt eingegeben wurde und dass der Bezug auf INDIREKT korrekt ist.

  • Falsche Ergebnisse
    Überprüfe, ob die Werte in der Matrix tatsächlich vorhanden sind. Wenn die Matrix leer ist oder nicht die erwarteten Werte enthält, wird auch das Ergebnis von SVERWEIS nicht korrekt sein.


Alternative Methoden

Eine weitere Möglichkeit, einen variablen Matrixbereich zu nutzen, ist die Verwendung der Funktion BEREICH.VERSCHIEBEN. Hier ein Beispiel:

  1. Matrix definieren: Anstatt einen festen Bereich zu verwenden, kannst du BEREICH.VERSCHIEBEN so einsetzen:

    =SVERWEIS(A1; BEREICH.VERSCHIEBEN(Tabelle1!A1; 0; 0; 31; 3); 2; FALSCH)

    Dies verschiebt den Bezug dynamisch, basierend auf den Parametern, die du angibst.

  2. INDIREKT verwenden: Ebenso kannst du INDIREKT verwenden, um den Bereich aus einer Zelle zu beziehen:

    =SVERWEIS(A1; INDIREKT(B2; FALSCH); 2)

Praktische Beispiele

Hier sind einige praktische Beispiele, wie du die SVERWEIS-Funktion mit variablen Matrixbereichen verwenden kannst:

  1. Beispiel mit festen Zeilen:

    =SVERWEIS(A1; BEREICH.VERSCHIEBEN(Tabelle1!A1; 0; 0; 31; 3); 2; FALSCH)
  2. Beispiel mit variablen Zeilen: Wenn die Anzahl der Zeilen variiert, kannst du diese auch in anderen Zellen definieren:

    =SVERWEIS(A1; BEREICH.VERSCHIEBEN(Tabelle1!A1; 0; 0; ANZAHL2(Tabelle1!A:A); 3); 2; FALSCH)

Tipps für Profis

  • Namen für Bereiche: Nutze die Funktion "Namen definieren", um deine Matrixbereiche einfach zu benennen und in verschiedenen Formeln wiederzuverwenden.

  • Dynamische Berechnungen: Verwende ANZAHL2, ZÄHLENWENN oder VERGLEICH, um dynamische Zeilen- und Spaltenzahlen zu berechnen.

  • VBA für komplexe Anwendungen: Wenn du Excel VBA kennst, kannst du noch flexiblere Lösungen entwickeln, indem du die SVERWEIS-Funktion in Kombination mit Variablen in deinen Makros verwendest.


FAQ: Häufige Fragen

1. Kann ich auch mehrere SVERWEIS-Funktionen in einer Formel verwenden?
Ja, du kannst mehrere SVERWEIS-Funktionen in einer Formel kombinieren, um verschiedene Werte aus unterschiedlichen Bereichen abzurufen.

2. Was ist der Unterschied zwischen FALSCH und WAHR im SVERWEIS?
FALSCH sucht nach einer exakten Übereinstimmung, während WAHR nach einer ungefähren Übereinstimmung sucht. Für die meisten Anwendungen ist FALSCH zu empfehlen.

3. Wie kann ich einen Matrixbereich für die Verwendung in VBA definieren?
In VBA kannst du den SVERWEIS mit einer variablen Matrix so verwenden:

Application.WorksheetFunction.VLookup(Cells(1, 1), Range("meinBereich1"), 2, False)

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige