So finden Sie einen bestimmten Index eines Werts, der mehrmals in einer Tabelle vorkommt

So finden Sie einen bestimmten Index eines Werts, der mehrmals in einer Tabelle vorkommt

Ich habe eine Excel-Funktion, die den Index AmountNamedRangedes zweitgrößten Betrags ermittelt, sofern der entsprechende Betrag DateNamedRangeinnerhalb der letzten dreißig Tage liegt.

=ArrayFormula(Match(Large(If(DateNamedRange > Today() - 30, AmountNamedRange, 0), 2), AmountNamedRange, 0))

Dies funktioniert gut genug, solange es keine anderen Zeilen in der Tabelle mit dem gleichen Betrag gibt. Wenn es so etwas gibt, gibt diese Formel den Index desErsteZeile mit dem gleichen Betrag wie der zweithöchste Betrag der letzten dreißig Tage. Mir ist klar, dass meine Erklärung verwirrend ist, deshalb hier ein Beispiel (nehmen wir an, heute ist der 31.01.2017):

1    Date          Amount
2    12/2/2016     27
3    12/6/2016     66
4    12/15/2016    99
5    1/8/2017      45
6    1/20/2017     27
7    1/22/2017     18

In diesem Fall ist der zweitgrößte Betrag der letzten 30 Tage 27 (Index 6), aber meine Formel gibt Index 2 zurück, da sie Matchdie erste Zeile in der Tabelle findet, die dem Betrag entspricht. Wie kann ich meine Formel ändern, damit sie korrekt 6 zurückgibt?

Antwort1

Sie müssen als zweiten Parameter denselben Ausdruck verwenden , MATCHden Sie für verwendet haben LARGE, sodass nicht nur nach Beträgen gesucht wird, sondern nur nach den Beträgen der letzten 30 Tage:

=MATCH(LARGE(IF(DateNamedRange > TODAY() - 30, AmountNamedRange, 0), 2), IF(DateNamedRange > TODAY() - 30, AmountNamedRange, 0), 0)
(es ist immer noch eine Array-Formel)

Bildbeschreibung hier eingeben

verwandte Informationen