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.

[Array] Indexwert durch Suche in Matrix (Spalten+Zeilen) ermitteln
#1
Hallo Zusammen,

ich versuche seit Tagen eine Lösung für das im Betreff genannte Problem zu finden. Ich würde auch wissen wie es geht, jedoch ist der Suchbereich keine Zeile ODER eine Kombination aus Spalten sondern es ist eine Matrix in Kombination mit Gültigkeitsbedingungen in 3 Spalten.

Ich suche also den Eintrag in Spalte A, für den der Suchwert (J1) in der Such-Matrix übereinstimmt und zusätzlich die Kombination von Bedingung1-3 einer Bestimmten Konstellation (J2) entspricht.

Bitte helft mir, ich weiß nicht wie es gehen soll.

PS: Mehrfachergebnisse würde ich in der Tabelleneingabe schon versuchen zu vermeiden. Es sollte also nur eine Lösung geben.

Danke vorab!

VG
Peter

//Anhang aktualisiert


Angehängte Dateien
.xlsx   Index_Verweis.xlsx (Größe: 10,27 KB / Downloads: 14)
Antworten Top
#2
Hola,


Code:
=INDEX(A2:A5;AGGREGAT(15;6;ZEILE(A2:A5)-1/((B2:B5&C2:C5&D2:D5=J2)*(E2:G5=J1));1))

Gruß,
steve1da
Antworten Top
#3
Hallo Titus,

ich vermute, anstelle deines "//Anhang aktualisiert" war eine Beispieldatei. Es ist schade, dass du sie entfernt hast - nachfolgende Suchende können jetzt mit der Antwort alleine nichts anfangen. Sad
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#4
Hi,

Danke Steve, das scheint zu funktionieren, und sogar ohne Array :20:

Ich steige trotzdem nicht ganz durch, könntest du nochmal etwas Hilfe leisten und die Bestandteile kurz erklären?

PS: hatte nicht die letzte Version meiner Datei hochgeladen, beim Update scheint aber was schiefgegangen zu sein, war keine Absicht. Jetzt ist die neuste Version hochgeladen, inkl. der Formel von Steve.
Antworten Top
#5
Hola,

mit aggregat(15;6....ermittelt man die kleinste Zeilennummer (Fehlerwerte werden ignoriert), die die nachfolgenden Bedingungen in der Formel erfüllen. Index() gibt dann den Werte aus Spalte A mit der kleinsten gefundenen Zeilennummer aus.
Man könnte auch noch Mehrfachvorkommen ausgeben lassen - dazu musst du die Bereiche fixieren und am Ende aus der 1 einfach Zeile(A1) machen.

Gruß,
steve1da
[-] Folgende(r) 1 Nutzer sagt Danke an steve1da für diesen Beitrag:
  • titusatwork
Antworten Top
#6
Hallo, alternativ geht auch ohne AGGREGAT()..:

PHP-Code:
=VERWEIS(2;1/(B1:B5&C1:C5&D1:D5=J2)*(E1:G5=J1);A:A
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#7
steve1da schrieb:Hola,

mit aggregat(15;6....ermittelt man die kleinste Zeilennummer (Fehlerwerte werden ignoriert), die die nachfolgenden Bedingungen in der Formel erfüllen. Index() gibt dann den Werte aus Spalte A mit der kleinsten gefundenen Zeilennummer aus.
Man könnte auch noch Mehrfachvorkommen ausgeben lassen - dazu musst du die Bereiche fixieren und am Ende aus der 1 einfach Zeile(A1) machen.

Gruß,
steve1da

Hi Steve,

für meine eigentliche Tabelle tritt mit deiner FOrmel das Problem auf, dass der Bereich nicht in Zeile 2 beginnt sondern in Zeile 168. Nach Auflösen aller Berechnungen von Aggregat komm dann Index(Bereich E168:E225;170) heraus, was natürlich nicht geht, da Zeile() nicht den relativen Bezug von der Startzeile 168 liefert. Nur zur Vollständigkeit:

A) könntest du dir das nochmal anschauen und mir einen Tipp geben
B) wie löst man das Thema mit Mehrfachvorkommen genau?

Jockel schrieb:Hallo, alternativ geht auch ohne AGGREGAT()..:

PHP-Code:
=VERWEIS(2;1/(B1:B5&C1:C5&D1:D5=J2)*(E1:G5=J1);A:A

Hi,

Auch dir vielen Dank, das Funktioniert auch. Bin sehr verwundert. Was hat es mit Suchkriterium == 2 auf sich? kannst du das noch erklären bitte?
Antworten Top
#8
Moin,


Zitat:Was hat es mit Suchkriterium == 2 auf sich? kannst du das noch erklären bitte?
hier https://www.herber.de/excelformeln/pages...oriam.html findest du die Erklärung.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Antworten Top
#9
Hola,


Code:
=INDEX($A$168:$A$225;AGGREGAT(15;6;ZEILE($A$168:$A$225)-167/(($B$168:$B$225&$C$168:$C$225&$D$168:$D$225=J2)*($E$168:$G$225=J1));zeile(A1)))

Gruß,
steve1da
Antworten Top
#10
WillWissen schrieb:Moin,


hier https://www.herber.de/excelformeln/pages...oriam.html findest du die Erklärung.

ok danke, das macht es um einiges Klarer.
Ich habe jedoch festgestellt, dass trotzdem ein Ergebnis ermittelt wird, scheinbar das aus der letzten Zeile des Suchbereichs, auch wenn keine Übereinstimmung aller 3 Bedingungen und des Suchwertes (9) erfüllt ist. Charmant wäre die Verweis Funktion an der Stelle schon, aber mit der Einschränkung wohl so für mich nicht nutzbar. Confused  Oder?
Antworten Top


Gehe zu:


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