Clever-Excel-Forum

Normale Version: Verweis mit mehreren Suchkriterien in Zeilen und Spalten mit doppelten Einträgen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo Forumteilnehmer,

ich habe eine Problem mit einer Vergleichformel, die mir als Ergebnis #WERT! liefert.
Basis bildet eine Matrix, in der ich anhand mehrerer Suchkriterien in Zeilen und Spalten den richtigen Eintrag suche. Die richtige Zeilennummer wird ermittelt; der Fehler entsteht bei der Ermittlung der Spaltennummer.

Verweis 1

STUVWXYZ
1Suchkriterien2
2CBCD
33234
4Suchkriterien1
5ayz121001.59712.457
6ccb351243.65415.478
7xyz508859.54796.585
8adp109658.52135.428
9xyz459869.65812.322
10abo661574.21435.875
11
12Sverweis mit mehreren Suchkriterien ohne doppelte Einträge
13
14Suchkriterien1Ergebnis
15xyz#WERT!
16Suchkriterien2
17C3
Formeln der Tabelle
ZelleFormel
W15=INDEX(W5:Z10;VERGLEICH(1;MMULT((S5:S10=S15)*(T5:T10=T15)*(U5:U10=U15);1);0);VERGLEICH(1;MMULT((W2:Z2=S17)*(W3:Z3=T17);1);0))

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4.8



Gruß Joe
Hallo

Du hast ja mehr als einen Treffer.
Arbeitsblatt mit dem Namen 'Tabelle1'
WXYZ
14Ergebnis
15
16SpalteZeile
1723,0071350
1823,0091545
1925,007339547
2025,009359658
21#ZAHL!#ZAHL!#ZAHL!#ZAHL!
22#ZAHL!#ZAHL!#ZAHL!#ZAHL!

ZelleFormel
W17=AGGREGAT(15;6;SPALTE($W$5:$Z$10)/(W$2:$Z$2=$S$17)/($W$3:$Z$3=$T$17)+ZEILE($W$5:$Z$10)/($S$5:$S$10=$S$15)/($T$5:$T$10=$T$15)/($U$5:$U$10=$U$15)/10^3;ZEILEN(W$17:W17))
X17=QUOTIENT(W17;1)-22
Y17=REST(W17;1)*10^3-4
Z17=INDEX($W$5:$Z$10;Y17;X17)
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.01] MS Excel 2016
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg
Hallo,

mir ist auch unklar was Du hier mit: "...ohne doppelte Einträge"  meinst.
Wenn immer nur der oberste und am weitest links gelegene Treffer ausgewiesen werden soll,
dann folgende Formel:
Code:
=WENNFEHLER(INDEX(A:Z;AGGREGAT(15;6;ZEILE(W5:W13)/(S5:S13=S15)/(T5:T13=T15)/(U5:U13=U15);1);
AGGREGAT(15;6;SPALTE(W1:Z1)/(W2:Z2=S17)/(W3:Z3=T17);1));"")

Anderenfalls, um alle relevanten Treffer zu listen, wäre mein Vorschlag, nachfolgende Formel nach unten und rechts kopieren.

STUVWXYZ
1Suchkriterien2
2CBCD
33234
4Suchkriterien1
5ayz121001.59712.457
6ccb351243.65415.478
7xyz508859.54796.585
8adp109658.52135.428
9xyz459869.65812.322
10abo661574.21435.875
11
12
13
14Suchkriterien1Ergebnis
15xyz509547
16Suchkriterien2459658
17C3
18
Formeln der Tabelle
ZelleFormel
W15=WENNFEHLER(INDEX(W:W;AGGREGAT(15;6;ZEILE(W$5:W$10)/($S$5:$S$10=$S$15)/($T$5:$T$10=$T$15)/($U$5:$U$10=$U$15)/(W$2=$S$17)/(W$3=$T$17);ZEILE(A1)));"")

Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Hallo,

das liegt an der Zeile. Du musst diese innerhalb von MMULT mittels MTRANS in eine Spalte "umwandeln", dann funktioniert auch die von Dir gepostete Formel ohne Fehler:
Code:
=INDEX(W5:Z10;VERGLEICH(1;MMULT((S5:S10=S15)*(T5:T10=T15)*(U5:U10=U15);1);0);VERGLEICH(1;MMULT(MTRANS((W2:Z2=S17)*(W3:Z3=T17));1);0))
Hallo Michael,

der Einsatz von MTRANS() erfordert zwingend den Abschluss der Formel als Matrixformel, was aber nicht notwendig ist, weil auch bei Anwendung von MMULT() hier kein MTRANS() notwendig ist.

Man muss dazu lediglich die Argumente im entsprechenden MMULT()-Formelteil vertauschen.

Also so:

Code:
=INDEX(W5:Z10;VERGLEICH(1;MMULT((S5:S10=S15)*(T5:T10=T15)*(U5:U10=U15);1);0);VERGLEICH(1;MMULT(1;(W2:Z2=S17)*(W3:Z3=T17));0))

@ Joe,

(sorry, hab erst heute mitbekomme, dass Du der Fragesteller bist)

Wie Du weißt, hab ich ein Faible  für AGGREGAT(), welche ich oft einsetze, wenn man mehrere Ergebnisse ohne klassische Matrixformel ausgegeben muss. Deshalb hatte ich aus dieser mein Formelvorschlag auch für nur ein Ergebnis aus der "mehre Ergebniswerte" abgeleitet.

Der Einsatz von MMULT() ist natürlich hier günstiger.
Hallo,
die Unterstützung bei den allen Formeln passt. Herzlichen Dank.
Joe
P.S. Hallo Werner, schön von Dir zu hören.