具有多个条件和重复值的大型索引匹配

具有多个条件和重复值的大型索引匹配

我已经设法从表(tblData)中提取前 10 个分数,其参数如下:

  1. 类型= 贷款利率
  2. = 今年 (TYEAR)
  3. 季度报告= 本财政年度的本季度 (QUARTER)
  4. A 列使用以下方式占据 1 - 10 个位置:大的功能。
{=LARGE(IF((tblData[Type]=LPR)*(tblData[Year]=TYEAR)*(tblData[QTR]=QUARTER),tblData[Score]),$A7)}

我现在需要从 tblData(原始表)中提取前 10 个分数所在的每一行的匹配信息。

使用 INDEX 和 MATCH 函数我可以执行以下操作从表的第 3 列中提取数据:

{=INDEX(tblData[#All],MATCH(1,(tblData[Type]=LPR)*(tblData[Year]=TYEAR)*(tblData[QTR]=QUARTER)*(tblData[Score]=$B7),0),3)}

这种方法效果很好,直到前 10 名中出现重复的分数。然后我从 tblData 第 3 列中获得针对两个分数的相同信息。

我知道答案就在我眼前!

我的原始数据:

我的原始数据

我的输出:

我的输出

表数据:

表数据

答案1

使用修改后的公式这个答案

=INDEX(tblData[Code], MATCH(1, INDEX((tblData[Score]=LARGE(IF((tblData[Type]=LPR)*(tblData[Year]=TYEAR)*(tblData[QTR]=QUARTER),tblData[Score]),$A7))*(COUNTIF(C$1:C1, tblData[Code])=0),),0))`

解释

此公式创建一个前 10 个表,然后查找适当的代码字符串。(COUNTIF(C$1:C1, tblData[Code])=0)此部分查看当前列,并查看是否已插入特定代码字符串。如果已插入,则查找下一个出现的位置。

例如,如果和ABCDEF值都是 9,则列中将显示第 4 个位置是ABC。当它尝试查找 9 的值时,公式的这一部分知道ABC已经在列中,因此它将找到下一个值为 9 的代码字符串,即DEF。所以现在在第 5 个位置显示DEF

相关内容