excel

时间:2016-03-20 20:16:21

标签: excel

我有以下函数返回最大列值位置:

=ADDRESS(MATCH(MAX(B1:B18),B1:B18,0),1)

当我向函数添加OFFSET以获取另一列中的相应值时,它不起作用!

=OFFSET(ADDRESS(MATCH(MAX(B1:B18),B1:B18,0),1),1,0)

还有其他办法吗?

我有两个colomns:

Time (hours)    Cp (ug/L)
0               0
0.1             26.282
0.25            46.532
0.5             57.046
0.75            57.411
1               55.028

我想找到Cp colomn中的最大值,并返回该最大值的时间。在此示例中,最大值为57.411,时间为0.75 ..该字段应返回0.75

3 个答案:

答案 0 :(得分:3)

尝试非挥发性解决方案。

=INDEX(A1:A18, MATCH(MAX(B1:B18), B1:B18, 0))
'or,
=INDEX(A:A, MATCH(MAX(B:B),B:B, 0))

fwiw,我发现很多情况下,不稳定的OFFSET function不能被非挥发性INDEX function取代。

index_offset

¹当整个工作簿中的任何内容发生变化时,不仅在影响其结果的某些内容发生变化时,挥发性函数都会重新计算。 易失性函数的示例包括INDIRECTOFFSETTODAYNOWRANDRANDBETWEENCELLINFO工作表函数的某些子函数也会使它们变得不稳定。

答案 1 :(得分:2)

它不起作用,因为ADDRESS()返回一个字符串,而OFFSET()需要一个引用,但这是一个更简单的方法:

=OFFSET(A1, MATCH(MAX(B1:B18), B1:B18, 0) - 1, 0)

答案 2 :(得分:0)

您可以将 ADDRESS() 包裹在 INDIRECT() 中。

这会将其从文本格式转换为参考格式。