So finden Sie alle passenden Zahlen/Daten in einem Bereich

So finden Sie alle passenden Zahlen/Daten in einem Bereich

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.

Jahre mit Maximalwert suchen Irgendwelche Ideen?

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 6die Spaltennummer des ersten Vorkommens von 19,0 in Zeile 2 zurück. Kopieren Sie diese Formel nach rechts und Sie erhalten 8und 11gefolgt von #N/Ain 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: 2005und gefolgt von in den verbleibenden Zellen.20072010#N/A

#N/AWenn Sie die Werte nicht sehen möchten , können Sie IFERRORdiese 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.

verwandte Informationen