2016-05-05 12 views
1

Vielleicht war es nur ein langer Tag (ein wirklich langen Tag scheinbar), aber ich kann nicht verstehen, warum meine Formel das falsche Ding zurückgibt ...Vlookup über einen Bereich, Rückgabe falscher Wert oder # N/A

Ich habe eine Tabelle (Hinweis: Oben links ist B1, unten rechts ist D6).

Min Score Max  Score 
101.00  1000.00  A+ 
81.00  100.00  A 
51.00  80.00  B+ 
41.00  50.00  B 
-4000.00 40.00  C 

(Oder hier ist ein screen shot wenn jemand vorzieht)

meine vlookup Formel ist: =Vlookup(C8,B2:D6,3,TRUE)

Ich erwarte, dass "A" zurück, wenn die Suche ist 100, "B", wenn ich Nachschlagen einer Zahl von 41 bis 50, usw. (Meine Zellen sind zu Zahlen formatiert.)

Gegenwärtig wird für einen Nachschlagewert von 100 "C" zurückgegeben. Was übersehe ich? Wenn ich 100 zu 50 ändere, gibt es einen #N/A Fehler zurück!

Edit: Ich habe mit dem "Min Score" als aufsteigend sortiert und es hat funktioniert!

+2

Sortieren Spalte B aufsteigend –

+0

@ Scott - ooh Dank, werde ich morgen versuchen, wenn ich wieder in Excel bin. – BruceWayne

+1

Wenn vlookup verwendet wird und nach der engsten Matte statt der exakten Übereinstimmung gesucht wird (true vs. false für das letzte Argument), muss der Suchbereich in aufsteigender Reihenfolge sortiert werden, wie in Scotts früherem Kommentar. Wenn Sie Ihre Zahlen in absteigender Reihenfolge beibehalten möchten, müssen Sie eine INDEX/MATCH-Kombination mit dem dritten Argument für die Übereinstimmung verwenden, die auf -1 gesetzt ist. –

Antwort

0

Ich stimme zu Spalte B muss aufsteigend sortiert werden.

Die Formel verwendet auch relative Referenzen im Gegensatz zu absoluten für ihre Suche, die die Formel nicht funktionieren könnte, wenn sie automatisch ausgefüllt wird.

=VLOOKUP(C8,$B$2:D6,3,TRUE)

Oder wenn Aussagen anstelle von Vlookup verschachtelt. =IF(C8<41,"C",IF(C8<51,"B",IF(C8<81,"B+",IF(C8<101,"A",IF(C8>=101,"A+","N/A")))))

+1

Danke dafür - während es sicherlich funktionieren würde, bin ich neugierig, warum das einfache 'vlookup()' nicht funktioniert. Auch die Formel mit 'if()' wird ziemlich schnell gefaltet, wenn ich noch mehr Noten hinzufügen möchte. Trotzdem danke! – BruceWayne

+1

Spalte B muss aufsteigend sortiert werden. Ich denke, dass ich das Problem gefunden haben kann, verwendet die Formel relative Referenz im Gegensatz zu absolut für seine Lookup-Tabelle. = SVERWEIS (C8, $ B $ 2: D6,3, WAHR) – Orthogod

+1

Aber die relative vs absolute Referenz sollte nicht wichtig sein, es sei denn, ich plane das Ziehen/Verschieben der Formel, nein? – BruceWayne

4
=IFERROR(INDEX($C$2:$C$6,MATCH(B8,B2:B6,-1)),"OFF the chart") 

Verwenden Sie die oben in C8 und Sie werden nicht das Diagramm, um zu ändern.

Auf einer Randnotiz wird eine Punktzahl von 80,5 ein A sein, da der Breakpoint 80 ist. Ihre minimale Spalte hat nichts mit der Kalkulation zu tun, ist aber für mein Auge ästhetisch angenehm, um den Bereich in 1 Reihe zu sehen.

pROOF OF CONCEPT

+0

Für die Unterschiede zwischen [SVERWEIS] (https://support.office.com/de-de/article/vlookup-function-adceda66-30de-4f26-923b-7257939faa65) 's * [range_lookup] * Parameter und [MATCH] (https://support.office.com/de-de/article/match-function-0600e189-9f3c-4e4f-98c1-943a0eb427ca) s * [match_type] * Parameter siehe die Dokumentation. – Jeeped

+0

Ohhh ich sehe jetzt, Sie haben nur eine einzelne Spalte im 'Match()' Teil verwendet. Danke dafür. Da meine Frage über 'Vlookup()' war, habe ich den anderen als Antwort markiert, aber dies ist eine großartige Hilfe und ein Werkzeug, um mein Wissen zu Index/Matches zu erweitern! – BruceWayne

Verwandte Themen