Excel Formel gesucht (ohne VBA)

Registerblatt 1 mit Beispieldaten im Bereich A1 - F12 - (Excel, Daten, Matrix)

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Dazu brauchst Du keine Matrix. Diese Formel sollte tun was Du willst, wenn ich Dich richtig verstanden habe:
=INDEX($A$1:$F$12;VERGLEICH("Auto1";$A$1:$A$12;0)+2;5)
Ich, und auch einige andere Excel-Spezialisten, die ich kenne, ziehe diese Kombination von INDEX und VERGLEICH prinzipiell dem SVERWEIS vor, den ich gar nicht mehr nutze.
Sie ist, wie Du selber siehst, viel flexibler, da man, wie hier z.B. 2 Zeilen addieren kann, oder auch einen SVERWEIS-nach links problemlos hinbekommt.
Klappt es?
Sonst frage nochmal nach.


Danke. Funktioniert.


Für mein Verständnis: ist es normal, dass bei fehlendem Zelleintrag in der gesuchten Zelle die Zahl Null ausgeworfen wird (wäre recht praktisch, weil dann eine [Wenn Sonst] Verschachtelung überflüssig erscheint)? Ich hatte zur Probe die Zahl 21 gelöscht, als Ergebnis brachte die oben aufgeführte Kombination von INDEX und VERGLEICH den Wert Null (als Zahl 0). Weiterhin möchte ich den Bereich nicht auf A1 bis G12, sondern auf A1 bis Z65536 erweitern. Geht das mit der Formel oder muss ich hier evtl. zusätzlich mit Array arbeiten? Wie gehe ich übrigens nach links, muss ich dann -2;5 schreiben (natürlich nur, wenn das gesuchte Datenfeld bei K oder F ist)? Wie ist das mit der Addition von zwei Zeilen gemeint?


0
@cafibone

"...dass bei fehlendem Zelleintrag in der gesuchten Zelle die Zahl Null ausgeworfen wird"
JA, das ist normal. Der Wert einer leeren Zelle wird mit Null angegeben. Wenn Du den Eintrag in E3 löscht, und in irgendeine Zelle =E3 schreibst, wird dort 0 angezeigt. Genauso funktioniert INDEX.

"sondern auf A1 bis Z65536 erweitern"
Natürlich geht das. Probiere es einfach aus. Allerdings macht es wenig Sinn, die Spalten bis Z anzugeben, wenn Du nur den Wert aus Spalte E brauchst. Da reicht auch:
=INDEX($A$1:$E$65536;VERGLEICH("Auto1";$A$1:$A$12;0)+2;5)
Ich wüsste nicht, was da ein Array zu suchen hätte.
Natürlich kannst Du auch die Spalte des Index, hier also die 5, durch eine VERGLEICH-Formel ersetzen.

"Wie gehe ich übrigens nach links"
Angenommen, Auto-1 steht in Spalte C, und der gesuchte Wert in Spalte A, dann sieht die Formel so aus:
=INDEX($A$1:$F$12;VERGLEICH("Auto1";$C$1:$C$12;0)+2;1)
Also einfach die Suchspalte unter VERGLEICH anpassen, und die Ergebnisspalte des INDEX von 5 auf 1 ändern, da ja der Wert in Spalte A ausgegeben werden soll.
Mit -2;5 würdest Du den Wert in Spalte E (5) finden, der zwei Zeilen ÜBER dem gefundenen Auto-1 steht. (In Deinem Beispiel gäbe das einen Fehler!).

"Wie ist das mit der Addition von zwei Zeilen gemeint?"
Ich meinte nicht zwei ZEILEN addieren, sondern zu der gefundenen Zeile z.B. eine 2 addieren, um den Wert 2 Zeilen darunter auszugeben. Oder eben 2 abzuziehen, um den Wert zwei Zeilen darüber zu finden.
In Deinem Beispiel, ergibt der VERGLEICH ja 1, also Zeile 1.
1+2=3
Also wird Zeile 3 ausgegeben.
Schau dir die beiden Funktionen mal in Ruhe im Assi an.

Falls noch etwas unklar ist, frage ruhig nochmal nach.
(oder wie der Engländer so schön sagt: "Don't hesitate to contact me")****

0

Ohne Programmierung wird alles zu träge. Programmiere Dir lieber die Abfrage und rufe diese Funktion 'Sub funktion()' in der Zelle auf. Dann wird alles so deklariert, dass keine Macrowarnung für andere Nutzer kommt, und keiner merkt das bisschen Programmierung.

Was möchtest Du wissen?