多个条件的索引匹配需要 return 小于或等于搜索值的最接近值
Index Match with multiple criteria needs to return the closest value that is less than or equal to search value
现在的问题是公式 returns 最接近的值,无论它是高值还是低值。我只需要接受低于值。
{=INDEX($AO:$AO00,MATCH(SMALL(IF($AN:$AN00=A2,ABS($AO:$AO00-F2)),1),IF($AN:$AN00=A2,ABS($AO:$AO00-F2)),0))}
供参考:
AO 是美元金额
AN 是一个日期
A 是日期
F 是美元金额
我们希望将 AN 中的日期与 A 匹配,然后找到 AO 中小于或等于 F 的最接近美元金额。同一天可能有多个实例具有不同的美元金额。我们只需要最近的一个,而不需要返回 F 中的内容。如果您能想到更好的方法,这不一定是索引匹配公式,但我非常肯定它必须是数组公式,因为它必须查看所有值才能做出正确的决定。
=AGGREGATE(14,6,($AO:$AO00)/(($AN:$AN00=A2)*(($AO:$AO00)<=F2)),1)
如果任何一个为假,/ 之后的部分将评估为 0。这会导致一个错误,由于 6,聚合将忽略该错误。14 告诉聚合将结果从最大到最小排序。 1 告诉聚合 return 小于或等于 F2 的第一个最大值。
现在的问题是公式 returns 最接近的值,无论它是高值还是低值。我只需要接受低于值。
{=INDEX($AO:$AO00,MATCH(SMALL(IF($AN:$AN00=A2,ABS($AO:$AO00-F2)),1),IF($AN:$AN00=A2,ABS($AO:$AO00-F2)),0))}
供参考:
AO 是美元金额
AN 是一个日期
A 是日期
F 是美元金额
我们希望将 AN 中的日期与 A 匹配,然后找到 AO 中小于或等于 F 的最接近美元金额。同一天可能有多个实例具有不同的美元金额。我们只需要最近的一个,而不需要返回 F 中的内容。如果您能想到更好的方法,这不一定是索引匹配公式,但我非常肯定它必须是数组公式,因为它必须查看所有值才能做出正确的决定。
=AGGREGATE(14,6,($AO:$AO00)/(($AN:$AN00=A2)*(($AO:$AO00)<=F2)),1)
如果任何一个为假,/ 之后的部分将评估为 0。这会导致一个错误,由于 6,聚合将忽略该错误。14 告诉聚合将结果从最大到最小排序。 1 告诉聚合 return 小于或等于 F2 的第一个最大值。