Bei statischer Berichtsstruktur und gleichzeitig nicht statischer Abrufstruktur sind die bislang beschriebenen Formeln zwar anwendbar, bed眉rfen aber einer Hilfestellung. Im Beispiel 2 ist das aus dem Klick in ein Steuerelement resultierende Zeilenargument nicht eindeutig, weil von unterschiedlichen Sortierfolgen abh盲ngig.
Eine INDEX-Formel oder wie hier BEREICH.VERSCHIEBEN muss also z. B. Daten zum Namen "Allweiss" ebenso finden k枚nnen, wenn auf Listenposition 7 der Steuerelementliste geklickt wurde, als auch, wenn bei Nummernsortierung auf "088-al-0097" (Listenposition 93) geklickt wurde.
In solchen F盲llen ist der Einsatz der Funktion VERGLEICH n眉tzlich. Die Funktion VERGLEICH(Suchkriterium;Suchmatrix;Vergleichstyp) ermittelt in Suchmatrix die Zeilenposition von Suchkriterium. Der Vergleichstyp bestimmt die Art des Vergleichs. Wenn Sie genaue 脺bereinstimmungen suchen wollen, was in unserem Beispiel unbedingt erforderlich ist, m眉ssen Sie als Vergleichstyp die Ziffer 0 (Null) angeben.
Achtung: Dies ist nicht die Default-Einstellung, muss also explizit in die Formel eingegeben werden. Weiteres zu den 3 verschiedenen Varianten von Vergleichstyp finden Sie in der Excel-Hilfe.
Am Beispiel der Formeln im Arbeitsblatt Listen 2, im Zusammenhang mit Abbildung 9:
Abb. 9: INDEX, BEREICH.VERSCHIEBEN und VERGLEICH im funktionalen Zusammenhang
Bildbereich A: Der Anwender hat das Optionsfeld Namen angeklickt, in der verkn眉pften Zelle rL2.ListenInhaltAusw erscheint die Ziffer 1 (vgl. Kapitel 3.2, Text zu Abbildung 4).
Bildbereich B: Die in Zelle E21 vorhandene Formel liefert deshalb einen Kundennamen.
=BEREICH.VERSCHIEBEN(rP2.Knoten;$C21;WENN(rL2.ListenInhaltAusw=1;1;6)) als Excel-Anweisung: "Gehe im Parameterblatt vom rP2.Knoten so viele Zeilen nach unten, wie es in Zelle C21 vorgegeben ist (also 3 Zeilen)". Dann das Spaltenargument als eingebundene WENN-Formel: "Wenn in Zelle rL2.ListenInhaltAusw die Zahl 1 steht, gehe eine Spalte nach rechts (der Name des Kunden), ansonsten (wenn also in rL2.ListenInhaltAusw die Zahl 2 st眉nde), 6 Spalten nach rechts, die Nummer des Kunden." Das Spaltenargument der 盲quivalenten Formel in Zelle F21 lautet WENN(rL2.ListenInhaltAusw=1;2;7)).
Bildbereich C: Der Anwender m枚chte also die Daten des Kunden Allweiss extrahieren. Bei seiner Auswahl nach Namen erscheint deshalb in der mit dem Steuerelement verkn眉pften Zelle rL2.KundenAusw die Zahl 7, bei der Auswahl nach Nummern hingegen die Zahl 93. F眉r diesen Fall (und noch f眉r deutlich kompliziertere) muss nun eine weitere Formel identifizieren, in welcher Zeile der Quelldatenmatrix die Daten tats盲chlich zu finden sind. Dazu ist hier als absolut eindeutiger Suchbegriff die Kundennummer erforderlich, und die steht im abgebildeten Fall in Spalte F, im alternativen Fall in Spalte E. Die Formel in Zelle G21: =VERGLEICH(WENN(rL2.ListenInhaltAusw=1;$F21;$E21);rD2.KNr;0) als Excel-Anweisung: "Wenn in der Zelle rL2.ListenInhaltAusw die 1 steht benutze als Suchbegriff den Inhalt aus F21, ansonsten den aus E21. Benutze als Suchmatrix den benannten Bereich rD2.KNr (C8:C157 im Blatt Daten 2), finde die genaue 脺bereinstimmung." Die Formel liefert in beiden F盲llen die richtige Zeilenposition, n盲mlich 93.
Bildbereich D: Die Formel =INDEX(rL2.PositionsNummern;rL2.KundenAusw;1) in der Zelle rL2.KundenAusw02 (Zelle G11) ermittelt nun aus dem Bereich G15:G169 (er tr盲gt den Namen rL2.PositionsNummern) die Zahl, die von den BEREICH.VERSCHIEBEN-Formeln im Blatt Daten 2 (vgl. Abb. 8) ben枚tigt wird, n盲mlich auf jeden Fall die 93, egal ob der Anwender in seiner Auswahlliste auf den siebten oder den 93sten Eintrag geklickt hat.