如何找到在表中多次出現的值的特定索引

如何找到在表中多次出現的值的特定索引

我有一個 Excel 函數,它可以找到第二大金額的索引,AmountNamedRange因為它對應的DateNamedRange是過去三十天內的金額。

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

只要表中沒有其他行具有相同的數量,這種方法就足夠有效。但是,如果存在這樣的事情,這個公式給出了第一的與過去三十天內第二大金額相同的行。我意識到我的解釋很混亂,所以這裡有一個例子(假設今天是 1/31/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

在本例中,過去 30 天內的第二大金額是 27(索引 6),但我的公式將傳回索引 2,因為Match找到表格中與該金額相符的第一行。如何修改公式以正確返回 6?

答案1

MATCH您需要使用與for 的第二個參數相同的表達式LARGE,因此它不僅會查看 Amounts,還會只查看過去 30 天的金額:

=MATCH(LARGE(IF(DateNamedRange > TODAY() - 30, AmountNamedRange, 0), 2), IF(DateNamedRange > TODAY() - 30, AmountNamedRange, 0), 0)
(仍然是數組公式)

在此輸入影像描述

相關內容