使用索引匹配来查找区域中的第二个匹配列

时间:2019-05-13 05:27:39

标签: excel excel-formula

我试图使用Index / Match函数从某些区域中查找值,因为由于列索引可能具有两个相同的值(例如,您的区域如下图所示)而被卡住了

例如,我想为测试1查找1/24/2018的值,但是我使用公式,它给我测试1的第一个值是0.31,但我想要的是0.83

enter image description here

=INDEX(G5:I11,MATCH(F5,F5:F11,0),MATCH("Test 1",G4:I4,0))

我进行了一些搜索,我认为我应该使用大号,这意味着为您在行中找到的最后一个匹配值(而不是第一个)提供列的位置,但是我不确定如何对我实现大功能公式

这意味着给我第二个匹配项中找到的最后一个匹配项的列号,您知道当您将MATCH(“ Test 1”,G4:I4,0))放入时,它返回第一个匹配值,但是我想第二或第三(表示最后)

  Test 1   Many  Test 1 
1  0.31    0.21   0.83
2   1       2      3

2 个答案:

答案 0 :(得分:1)

根据您的情况,您可以在第I列上使用INDEX()。这样,您可以松散对列的引用。

下面我提供了一个示例,以及是否必须使用LARGE()

enter image description here

B11中的公式:

=INDEX(D2:D8,MATCH(B10,A2:A8,0))

B12中的公式:

{=INDEX(B2:D8,MATCH(B10,A2:A8,0),LARGE((B1:D1="Test1")*(COLUMN(B1:D1)-1),1))}

请注意,最后一个是通过 Ctrl Shift Enter

输入的数组公式

答案 1 :(得分:1)

尽管您的示例数据有点难以理解,但基于您的问题的可能解决方案可能是B11中的公式。 ARRAY公式:SHIFT + CTRL + ENTER

=INDEX($B$2:$D$7,
        MATCH($A11,$A$2:$A$7,0),
        SMALL(IF($B$1:$D$1=B$10,COLUMN($A$1:$C$1)),COUNTIF($B$10:B$10,B$10))
      )

enter image description here

您可以将其横向拖动。当您将公式调整为适合自己的表格时,请注意$

正如您已经说过的,您需要在公式中使用SMALLIF函数在上表中查找例如Test1的出现,并返回列号。 COUNTIF对搜索词的出现进行计数直到当前列,并将结果提供给SMALL