2016-04-05 4 views
0

Ich habe eine Tabelle von etwa 5.000 Spielern mit ihrem Alter und Gewicht. Ich habe eine Level-Tabelle, wo ich das maximale Gewicht für jedes Alter erstellt und ein Level zugewiesen habe. Die Arrays in der Nachschlagetabelle heißen "Alter", "Gewicht" und "Level". Das angegebene Gewicht ist das Maximum für dieses Alter auf diesem Level, wenn das Gewicht des Spielers überschritten ist, sollten sie auf das nächste Level steigen . ich unterhalb der Lookup-Tabelle haben. Alter die Spieler ist in der Spalte E und ihr Gewicht ist in Spalte K.Excel-Lookup zum Zuweisen von Level basierend auf Alter und Gewicht

ich mit der Lookup-Funktion helfen müssen, die das Niveau an den Spieler vergeben würde.

Max 
Age Weight Level 
7 110  A 
8 105  A 
9 65  A 
8 150  B 
9 120  B 
10 115  B 
11 75  B 
10 175  C 
11 130  C 
12 125  C 
13 85  C 
11 175  D 
12 135  D 
13 130  D 
14 100  D 
12 180  E 
13 185  E 
14 300  E 

Nicht sicher, was Sie betrachten, meine Frage ist nichts wie die referenzierte Frage. Die andere Frage hatte eine einzige Variable, Datum, meine hat zwei, Alter und Gewicht. Die andere Frage hatte spärliche Daten in der Suche, meins ist komplett.

Es ist wirklich schlechte Form, dass jemand vorbei kommen und Ihre Frage herunterstufen kann, ohne es wirklich sogar zu lesen. Sie gaben an, dass meine Frage bereits beantwortet wurde und etwas von vor zwei Jahren referierte, das nicht einmal mit dem, was ich verlange, zusammenhängt.

+0

Mögliches Duplikat von [Excel: Suchwert in einer Tabellenspalte und finden Sie den nächsten Wert in einem anderen r spärlich besetzte Spalte] (http://stackoverflow.com/questions/20937776/excel-lookup-value-in-one-table-column-and-find-the-nearest-value-in-an-other-co) –

+0

Es ist mehrdeutig ........... ein 11 Jahre alt bei 120 Pfund kann entweder ein ** C ** oder ein ** D ** –

+0

Nein, es ist linear. Da C vor D kommt, wenn sie in C passen, würden sie dorthin gehen, wenn sie nicht in D gehen. – Joseph

Antwort

0

Ich konnte keine einfache Lösung finden, aber die Idee dahinter ist, dass ich versuche, ein Level zu finden, das im Alter und Gewicht des Spielers liegt. Schlägt das fehl, weil der Spieler zu schwer ist, stößt er den Spieler in die nächste Ebene. Das würde bedeuten, dass, wenn der Spieler selbst für die Kategorie E zu schwer ist, er seine Kategorie als F eingibt (mein Alter und Gewicht sind in D2 und E2, die Nachschlagetabelle ist in den Spalten A, B und C).

=IFERROR(INDEX(C$2:C$20,MATCH(1,(A$2:A$20=D2)*(B$2:B$20>=E2),0)), 
CHAR(CODE(INDEX(C$2:C$20,MATCH(2,1/(A$2:A$20=D6))))+1)) 

Es ist eine Matrixformel und hat mit CtrlShift-Geben Sie

enter image description here

+0

Es funktioniert nicht für mich, das ist, was ich zu: = IFERROR (INDEX (Ebene, MATCH (1, (Alter = E2) * (Gewicht> = K2), 0)), CHAR (CODE (INDEX (Level, MATCH (1000,1/(Alter = E2)))) + 1)) – Joseph

+0

Ja das ist grundsätzlich was ich bekomme wenn ich benannte Bereiche = IFERROR (INDEX (Level, MATCH (1, (Alter = D2) * (Gewicht> = E2), 0)), CHAR (CODE (INDEX (Level, MATCH (1000,1/(Alter = D2)))) 1)) wo Alter $ A $ 2: $ A $ 20 etc Stellen Sie sicher, dass es mit geschweiften Klammern angezeigt wird. Gibt es eine Fehlermeldung oder nur eine falsche Antwort? –

1

Basierend auf Ihre Kommentare eingegeben werden, ich habe Ihre Tabelle neu wie folgt strukturiert :

enter image description here
Die Reihenfolge der Zeilen in der neuen Tabelle wirkt sich nicht auf die Funktionsweise der Formel aus, Sie können jedoch überprüfen, ob die Formel ordnungsgemäß funktioniert. Dies sollte die gleichen Zuweisungen wie Ihre Tabelle enthalten, aber einer Formel erlauben, nach einer bestimmten einzelnen Zeile zu suchen, die die Kriterien erfüllt.

habe ich ein Alter in F1 und ein Gewicht in G1 und diese Suchformel in H1:

=INDEX($D$2:$D$19,SUMPRODUCT(--($A$2:$A$19=F1)*($C$2:$C$19>=G1)*($B$2:$B$19<=G1)*ROW($2:$19))-1) 

Diese
Zum Beispiel unten kopiert werden kann:

enter image description here

Verwandte Themen