
Ich versuche, eine MAXIMALE Zahl und die Jahre zu finden, auf die sie sich beziehen lässt.
- JAHRE 2000-2010 (A1:J1)
- DATEN (A2:J2)
- MAXIMALE DATEN werden in A3 untergebracht
Ich kann INDEX/MATCH verwenden, um das ERSTE MAXIMALE JAHR zu erhalten, das mit dem MAXIMALEN DATENWERT übereinstimmt. Dieser MAXIMALE Wert könnte jedoch in mehreren Jahren vorkommen (z. B. 2002, 2005, 2009).
ERSTES MAXIMALES JAHR in B3
Ich habe eine Formel in C3, die nun versucht, mit (OFFSET, 0, B3) eine weitere Indexübereinstimmung zu starten, damit die Suche nach dem ERSTEN MAXIMALEN JAHR beginnt, aber aus irgendeinem Grund gibt sie mir das erste Jahr zurück, das sie findet.
=INDEX(A1:J1,MATCH(A3,OFFSET(A2:J2,0,MATCH(B3, A1:J1,0))))
Ich habe meine Zahlen gerundet, sodass sie eine Dezimalstelle haben, und ich weiß, dass ich in meinem Bereich A2:J2 zwei übereinstimmende MAX of DATA-Zahlen habe.
Update: Ein Bild, das es hoffentlich klarer erklärt.
Danke Michael
ANTWORT:
Ich bin Abduls Link in den Kommentaren unten gefolgt und habe eine Formel gefunden, die meine Anforderungen sehr gut erfüllt hat.
=WENNFEHLER(INDEX(A1:K1,KLEIN(WENN(A2:K2=$A$3,SPALTE(A2:K2)-SPALTE(INDEX(A2:K2,1,1))+1),n-te)),"")
Die n-te Zelle ist die Nummer 2. Es wird also nach dem 2. Vorkommen meiner Zelle A3 gesucht.
Hoffe, das hilft den Leuten. UndExceljetist eine tolle Seite. Sehr empfehlenswert.
Holen Sie sich die n-te Übereinstimmung mit der Indexübereinstimmung
Antwort1
Sie könnten dies mit Formeln tun, die nur in B3, C3 usw. eingegeben werden. Ich schlage jedoch vor, eine Hilfszeile (Zeile 4) hinzuzufügen, um die Formeln lesbarer zu machen.
Geben Sie in Zelle B4 Folgendes ein:
=MATCH($A3,OFFSET($A2:$K2,0,A4),0)+A4
Dies gibt 6
die Spaltennummer des ersten Vorkommens von 19,0 in Zeile 2 zurück. Kopieren Sie diese Formel nach rechts und Sie erhalten 8
und 11
gefolgt von #N/A
in den verbleibenden Zellen. Geben Sie nun in Zelle B3 ein:
=INDEX($A1:$K1,B4)
Und kopieren Sie die Formel nach rechts. Sie erhalten die Jahre , in denen der Höchstwert gefunden wurde: 2005
und gefolgt von in den verbleibenden Zellen.2007
2010
#N/A
#N/A
Wenn Sie die Werte nicht sehen möchten , können Sie IFERROR
diese mit der Funktion in Leerzeichen ändern.
Antwort2
Mir gefällt Blackwoods Antwort, da sie keine Array-Formel erfordert. Wenn Sie die Hilfszeile jedoch nicht aushalten können oder dies mit nur einer Formel tun müssen, können Sie dies in A4 verwenden und rechts ausfüllen:
=IFERROR(SMALL(IF($A$2:$K$2=$A$3,$A$1:$K$1),COLUMN()),"")
Da es sich um eine Array-Formel handelt, muss sie mit CTRL Shift Enterund nicht nur eingegeben werden Enter.
Und so funktioniert es: Die Funktion IF() erzeugt ein Array der Jahre, in denen die Daten mit A3 (dem Maximum der Daten) übereinstimmen, und überall sonst FALSE:
{False;False;False;False;False;2005;False;2007;False;False;2010}
Und dann wählt SMALL() den 1., 2., 3. usw. kleinsten Wert aus diesem Array aus, wobei die Spaltennummer als Index verwendet wird. Es prüft nur die Zahlen und ignoriert die „Falschen“ Werte im Array.
Schließlich ersetzt IFERROR() alle #N/A-Fehler durch ein Leerzeichen.