Excel索引匹配等于或大于值错误

时间:2016-04-30 08:11:38

标签: excel indexing match equals

你好,首先这是我的代码,它返回错误

=INDEX(Steel_table!A3:A151,LOOKUP(10^10,MATCH(H7,Steel_table!C3:C151,{1,0})+{1,0}))

我基于此线程的代码: Use INDEX MATCH to find greater than/equal to value

这就是场景 我有2张,即应力分析和钢表

我想要比较的值位于应力分析表格单元格H7中,我想将其与从C3到C151的单元格值的钢表格进行比较。

请帮助我,因为它总是返回#N / A错误

压力分析表

enter image description here

钢铁表

enter image description here

非常感谢

2 个答案:

答案 0 :(得分:0)

这将为您提供Steel_table中最小的值!C3:C151)等于或大于cel H7中的值:

=MIN(IF((Steel_table!C3:C151)>=H7,(Steel_table!C3:C151))) 

这是一个数组公式,因此请使用[Control-Shift-Enter]确认。输出为1451.61。当没有相等或更大的值时,它将返回0.

答案 1 :(得分:0)

必须考虑将第三个参数用于MATCH函数,具体取决于查找范围是否已排序。

不需要考虑范围排序的唯一时间是使用0 - 完全匹配。但是,完全匹配并不是您所需要的,因为您正在查找计算结果而不是可能完全匹配的前缀值表...

因此,为了使用1的第三个参数,查找范围应按ASCENDING顺序排序。在您的情况下,查找范围的第二个值大于您的查找值,因此是第一个,因此Excel快捷方式为N / A,假设不会再找到较小的值。

使用-1时反向逻辑为真。

您可以简单地使用查找值和范围的差异来获得最小的值。所以我们使用MIN函数。但是你只想要积极的差异,所以你需要将所有负数转换成一个可笑的大数(例如10 ^ 10),这样它们就不会被用作潜在的最小值:

INDEX(Steel_table!$A$3:$A$151, MATCH(MIN(IF(Steel_table!C3:C151-H7>=0, Steel_table!C3:C151-H7, 10^10)), Steel_table!C3:C151-H7,0))