Excel多变量查找

Excel多变量查找,excel,excel-formula,vlookup,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

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

例如,我有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)
任何直升机/方向都会很受欢迎


谢谢

不清楚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)))
或者,如果您将宽度和高度拆分为两个单元格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)))
这些假设大小都使用“大小#”命名约定。否则,您可以在右侧添加另一列,使其等于列A,然后使用vlookup标识匹配项,如下所示(再次假设单元格A8中的“W x H”):


目前还不清楚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)))
或者,如果您将宽度和高度拆分为两个单元格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)))
这些假设大小都使用“大小#”命名约定。否则,您可以在右侧添加另一列,使其等于列A,然后使用vlookup标识匹配项,如下所示(再次假设单元格A8中的“W x H”):


假设顺序确实重要(例如在500x550和550x500之间存在差异),您可以使用以下数组公式:

= INDEX($A$2:$A$5,MATCH(2,MMULT((E2:F2<=$B$2:$C$5)+0,{1;1}),0))
注意这也是一个数组公式

请参见下面的工作示例。请注意,除了单元格
G4
,它如何在每个单元格中产生与上述相同的结果,因为这同样是考虑550x500和500x550


假设顺序确实重要(例如500x550和550x500之间存在差异),可以使用以下数组公式:

= INDEX($A$2:$A$5,MATCH(2,MMULT((E2:F2<=$B$2:$C$5)+0,{1;1}),0))
注意这也是一个数组公式

请参见下面的工作示例。请注意,除了单元格
G4
,它如何在每个单元格中产生与上述相同的结果,因为这同样是考虑550x500和500x550



您在A8中输入了什么?实际上,在C列中列出了上述尺寸的错误方向。我在A8中输入了150 150,这一行请编辑以使其更清晰方向重要吗?例如,如果参考尺寸为550x500,则仅当540x570旋转到570x540时,该尺寸才适合内部。在这种情况下,您希望输出返回540x570还是800x800?此外,请指出查找单元格的位置。也许电子表格的屏幕截图会有用。你们在A8里放了什么?实际上列在C栏,上面的尺寸是错误的。我在A8里输入了150,这一个请编辑,使它更清晰。方向重要吗?例如,如果参考尺寸为550x500,则仅当540x570旋转到570x540时,该尺寸才适合内部。在这种情况下,您希望输出返回540x570还是800x800?此外,请指出查找单元格的位置。也许电子表格的屏幕截图会有用。似乎有很多不必要的帮助栏。另外,我也不是
VLOOKUP
的超级粉丝。我总是更喜欢
索引
匹配
,因为它更灵活,并且根据查找表的大小有可能更高效。尽管如此,我认为这里有足够的投票支持。这里是…如果您感兴趣,请参阅以了解有关
索引
/
匹配
VLOOKUP
之间差异的更多信息。似乎有很多不必要的帮助列。另外,我也不是
VLOOKUP
的超级粉丝。我总是更喜欢
索引
匹配
,因为它更灵活,并且根据查找表的大小有可能更高效。尽管如此,我认为这里有足够的投票支持。这里是……如果您感兴趣,请参阅了解有关
索引
/
匹配
VLOOKUP
之间差异的更多信息。您的第一个示例非常完美!我想你不能为我解释一下它是如何工作的?如果不是太麻烦的话!例如,如果我想添加另一个变量,使其看起来介于3个值之间,并给出最佳结果?再次感谢!我想我已经弄明白了,真的对不起指数($A$2:$A$5,匹配(3,MMULT)((F2:H2@steveybo更一般地说,您可以使用以下内容:
=INDEX($A$2:$A$5),MATCH(列(E2:F2),MMULT((E2:F20‌​)+这将动态地将
2
更改为
3
并将
{1;1}
更改为
{1;1;1}
。在我最初的回答中,我将此硬编码,因为我没有意识到列的数量是动态的。还有,它是如何工作的(简要说明):
MMULT
中的部分返回一个垂直数组,其中告诉您“图片大小”中有多少值小于或等于“参考表”。您要查找的是值2,因为这表示第一个和第二个条目都小于或等于它。然后
匹配(2,)
返回找到2的第一个索引,从而告诉您它适合的最小图片帧的索引。然后
索引
查找帧的实际名称(例如
大小1
大小2
,等等)您好!再次感谢您,只是想再次更新此内容,我正在尝试将类型放入其中。例如,木制金属玻璃等,我将如何添加一个可以在mmult命令内工作的匹配案例?因此,如果选择了类型,则只会给出所选材料的大小结果?只是想办法,我可以制作第一个m吗