Vlookup从多个条件显示最近的答案

时间:2018-07-25 12:25:50

标签: arrays excel excel-formula formula

我希望有人能帮助我。我碰到了坚固的墙。

我有一个包含产品信息的表,并且我正在构建一个计算器,该计算器应根据表中的设置标准吐出许多选项。我无法仅通过编写代码。我感到很尴尬,询问在这里如何进行vlookup。但基本上,我有一个vlookup,它取决于多个条件,并且calc会根据此条件找出最接近的匹配项(如果适用)。

Criteria 1 = Product

Criteria 2 = Type

Criteria 3 = Height

Criteria 4 = Min

我已经在表中创建了一个搜索键来连接所有这些列,然后执行了vlookup,这是=Vlookup(Criteria1 & Criteria2 & Criteria3 & Criteria4, Table Data, Code Required),但这似乎没有给我结果,它咳嗽了一个错误或者不正确的产品。以下是我希望完成的数据和计算。有人可以帮忙吗?

enter image description here

enter image description here

3 个答案:

答案 0 :(得分:2)

这里是一个示例,用于寻找最接近Min的匹配项。它演示了原理,因此您可以进行扩展。

最接近的匹配公式部分是:

MATCH(MIN(ABS(E2:E4-K2)),ABS(E2:E4-K2),0))

E列表示最小值的输入,K2表示目标最小值。这是使用 Ctrl + Shift + Enter 输入的数组公式。您将调整E2:E4的范围。

多个条件部分正在使用:

=MATCH(lookup_value_1&lookup_value_2&lookup_value_3, lookup_array_1&lookup_array_2&lookup_array_3, match_type)

要集中显示参数并在表中搜索这些参数的并列匹配项(如果键由相同的参数组成,则可以针对键列执行此操作)。

带有一些测试数据的总体公式(使用一个估计数字):

=INDEX(F:F,MATCH(K1&K5&J5&INDEX(E2:E4,MATCH(MIN(ABS(E2:E4-K2)),ABS(E2:E4-K2),0)),B:B&C:C&D:D&E:E,0))

上面输入的组合公式请记住是一个数组公式,因此使用 Ctrl + Shift + Enter 输入。您可以将整个列的范围缩小到仅包含数据的行。


数据数据:

我没有从图片中输入所有内容,所以这里有一个快速的n脏

TEST DATA

答案 1 :(得分:0)

我尝试使用QHarr的解决方案,但不适用于所有行。

我的解决方法是:

  1. 添加具有以下内容的列:

= IF(E2 <$ K $ 2,E2,0)并复制所有行

  1. 在L5中创建公式:

{= INDEX(F2:F19,MATCH($ K $ 1&K5&$ J $ 5&INDEX(E2:E19,MATCH(MAX(SI(B2:B19 = $ K $ 1,1,0))* IF(C2:C19 = K5,1,0)* IF(D2:D19 = $ J $ 5,1,0)* G2:G19,0),E2:E19,0)),B2:B19&C2:C19&D2:D19&E2:E19,0) )}

  1. 将公式复制到L6和L7

Excel exercise printscreen

答案 2 :(得分:0)

最初将其标记为已回答,并且起初确实起作用,但是随着我添加更多产品,它开始失败。经过反复尝试,我确实设法找到了一个简单的解决方案{=INDEX(Calc!$I$2:$I$189,MATCH(Output!$H$7,IF(Calc!$B$2:$B$189=Output!A12,Calc!$H$2:$H$189),1))}