我试图使用Index / Match函数从某些区域中查找值,因为由于列索引可能具有两个相同的值(例如,您的区域如下图所示)而被卡住了
例如,我想为测试1查找1/24/2018的值,但是我使用公式,它给我测试1的第一个值是0.31,但我想要的是0.83
=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
答案 0 :(得分:1)
根据您的情况,您可以在第I列上使用INDEX()
。这样,您可以松散对列的引用。
下面我提供了一个示例,以及是否必须使用LARGE()
。
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))
)
您可以将其横向拖动。当您将公式调整为适合自己的表格时,请注意$
。
正如您已经说过的,您需要在公式中使用SMALL
。 IF
函数在上表中查找例如Test1
的出现,并返回列号。 COUNTIF
对搜索词的出现进行计数直到当前列,并将结果提供给SMALL
。