标签给出MAX结果进行索引匹配查找

时间:2016-04-24 18:47:45

标签: excel excel-2010

我正在做一个具有最佳实验结果的表格。在此表中,我需要为Sample和Method的每个组合显示最佳(最大)结果。而且测试也给出了最好的结果。

在这里检查了类似的问题之后,我得到了如何做第一部分(MAX结果),但没有得到第二部分的解决方案(标签/测试给出结果)。

这是一个简化的表格,看看你是否可以帮我理解如何做到这一点:

数据表

       A     B          C        D       E
1                      Test1    Test2   Test3
2   Sample1 Method1     1.6     2.2     0.1
3   Sample2 Method1     1.5     1.3     0.6
4   Sample3 Method1     1       0       0.6
5   Sample1 Method2     0.5     0.1     1.7
6   Sample2 Method2     1.5     0.5     1
7   Sample3 Method2     0.4     0.5     2.7
8   Sample1 Method3     0.7     1.7     1
9   Sample2 Method3     1.1     1.1     1.2
10  Sample3 Method3     0.6     0.4     1.5

这是我希望建立的表格的草稿

   G        H       I       J       K       L       M
1 BEST      Sample1 Sample1 Sample2 Sample2 Sample3 Sample3
2 RESULTS   ValMax  Test    ValMax  Test    ValMax  Test
3 Method1   2.2             1.5             1   
4 Method2   1.7             1.5             2.7 
5 Method3   1.7             1.2             1.5 

正如你所看到的,我已经知道如何检查每个组合的最大值,这要归功于这个数组函数(在H3):

=MAX(IF(($A$2:$A$10=H1)*($B$2:$B$10=G3);$C$2:$E$10))

(和 Control + Shift + 输入

但是对于第二部分我没有任何线索。我需要从“第1行”中提取3个测试中的哪一个(在C,D和E列中的Test1,Test2和Test3)包含包含Sample和Method的正确组合的Row的MAX值。 我试过这样的事情(在I3):

=INDEX($A$1:$E$10; 1; MATCH(H3&H$1&G3; $C$2:$E$10&$A$2:$A$10&$B$2:$B$10;0))

(和 Control + Shift + 输入

但显然不起作用,因为我正在混合行和列。 如何从第1行(测试)中获取与Method和Sample组合的最大值相对应的值?

2 个答案:

答案 0 :(得分:0)

虽然我可能使用VBA来构建表格,但以下公式将返回与样本对应的测试:

I3:  =INDEX($C$1:$E$1,1,MATCH(H3,INDEX($C$2:$E$10,MATCH(TRUE,IF((I$1=$A$2:$A$10)*($G3=$B$2:$B$10),TRUE),0),0),0))

您需要调整不同列的地址,或将其与IF函数中的其他公式结合使用,以决定是否显示分数或测试名称。

答案 1 :(得分:0)

这是一个非CSE数组公式,它将执行此操作:

=INDEX($C$1:$E$1,MAX(INDEX(($G3=$B$2:$B$10)*($A$2:$A$10=I$1)*($C$2:$E$10=H3)*(COLUMN($C$2:$E$10)-COLUMN($C$2:$C$2)+1),)))

enter image description here