如何查找表中多次出现的值的特定索引

如何查找表中多次出现的值的特定索引

我有一个 Excel 函数,它可以找出过去三十天内AmountNamedRange第二大金额的指数。DateNamedRange

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

只要表中没有其他行具有相同金额,此方法就足够了。但是,如果有这样的情况,则此公式给出第一的行中金额与过去 30 天内第二大金额相同的行。我意识到我的解释令人困惑,所以这里有一个例子(假设今天是 2017 年 1 月 31 日):

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您需要使用与第二个参数相同的表达式LARGE,因此它不仅会查看金额,还会查看过去 30 天的金额:

=MATCH(LARGE(IF(DateNamedRange > TODAY() - 30, AmountNamedRange, 0), 2), IF(DateNamedRange > TODAY() - 30, AmountNamedRange, 0), 0)
(它仍然是一个数组公式)

在此处输入图片描述

相关内容