Excel多个变量查找

时间:2018-01-19 10:45:45

标签: excel excel-formula vlookup

有一个表,我希望它根据大小值选择可以使用的最小尺寸相框, 基本上返回适合图像的最小帧。

例如,我有4种标准尺寸:

a       b    c
Size1   150  150
Size2   300  300
Size3   540  570
Size4   800  800

我希望在另一个细胞中有一个尺寸,例如290 x 300并希望它能够选择最小的尺寸,即在这种情况下尺寸为2。

我已经按照一些指南进行操作,如果值准确,则会打印出值,但如果它们略微位于其中一个选项下则不会打印出来

=VLOOKUP($A$8,CHOOSE({1,2},$B$2:$B$5&", "&$A$2:$A$5,$C$2:$C$5),2,0)

任何helo / direction都会非常适合!

由于

2 个答案:

答案 0 :(得分:2)

目前尚不清楚细胞A8是什么。按照你的问题,我认为它必须是“W x H”格式的尺寸(例如:290 x 300)。如果是这样,请尝试:

In D2: 1

// Copy next down
In D3: D2+1

// Wherever you want it
=CONCATENATE("Size ",MIN(VLOOKUP(LEFT(A8,FIND(" ",A8)-1)+0,B2:D5,3,TRUE),VLOOKUP(RIGHT(A8,LEN(A8)-FIND("x ",A8)-1)+0,C2:D5,2,TRUE)))

或者,如果您将宽度和高度分成2个单元格A8和B8,这个更简单的版本应该可以解决这个问题:

In D2: 1

// Copy next down
In D3: D2+1

//Wherever you want it
=CONCATENATE("Size ",MIN(VLOOKUP(A8,B2:D5,3,TRUE),VLOOKUP(B8,C2:D5,2,TRUE)))

这些假设大小都使用“Size#”命名约定。否则,您可以在右侧添加另一列以等于A列,然后使用vlookup识别匹配,如下所示(再次假设单元格A8中为“W x H”):

In D2: 1

// Copy next down
In D3: D2+1

// Copy next down
In E2: =A2

// Wherever you want it

=VLOOKUP(MIN(VLOOKUP(LEFT(A8,FIND(" ",A8)-1)+0,B2:D5,3,TRUE),VLOOKUP(RIGHT(A8,LEN(A8)-FIND("x ",A8)-1)+0,C2:D5,2,TRUE)),D2:E5,2,FALSE)

答案 1 :(得分:2)

假设订单确实很重要(例如 500x550和550x500之间的差异),您可以使用此数组公式:

= INDEX($A$2:$A$5,MATCH(2,MMULT((E2:F2<=$B$2:$C$5)+0,{1;1}),0))

请注意,这是一个数组公式,因此您必须在键入此公式后按 Ctrl + Shift + Enter 而不是仅按输入

请参阅下面的工作示例。

enter image description here

假设订单很重要(例如, 500x550和550x500之间存在差异),公式会因为{{1}的顺序颠倒而变得更长数组。可能有更好的方法来做到这一点,但这是我能想到的最简单的方法。不幸的是,Excel无法处理3D数组,否则这与上面的原始公式没什么不同。无论如何,这里是公式(为了可读性添加了换行符)

E2:F2

请注意,这也是一个数组公式。

见下面的工作示例。请注意它在除了单元格= INDEX($A$2:$A$5,MIN(MATCH(2,MMULT((E2:F2<=$B$2:$C$5)+0,{1;1}),0), MATCH(2,MMULT((INDEX(E2:F2,N(IF({1},MAX(COLUMN(E2:F2))- COLUMN(E2:F2)+1)))<=$B$2:$C$5)+0,{1;1}),0))) 之外的每个单元格中如何产生与上面相同的结果,因为再次考虑550x500 500x550。

enter image description here