Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Verweis mit mehreren Suchkriterien in Zeilen und Spalten mit doppelten Einträgen
#1
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
Antworten Top
#2
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
Wir sehen uns!
... Detlef

Meine Beiträge können Ironie oder Sarkasmus enthalten.

Antworten Top
#3
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
Gruß Werner
.. , - ...
Antworten Top
#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))
Gruß
Michael
Antworten Top
#5
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.
Gruß Werner
.. , - ...
Antworten Top
#6
Hallo,
die Unterstützung bei den allen Formeln passt. Herzlichen Dank.
Joe
P.S. Hallo Werner, schön von Dir zu hören.
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste