excel,匹配大于和小于和静态值

我想在Excel中做什么应该在数据库中完成。 我有一个电子表格与原始数据,我试图根据标准来查询。 鉴于以下示例表:

ABCDEF 1 Red up 1 4 dn 5 2 Blu up 5 9 3 Yel dn 1 4 4 Gre dn 5 9 

我想返回满足E1和F1条件的列A的值,其中在列B中发现E1,并且发现F1等于或者在列C和D中的值之间。在该示例中,我想返回“ GRE”。

我一直在用INDEX和MATCH函数拉我的头发,我可以完成我的一部分任务,但没有发现任何可扩展的解决scheme。

预先感谢您的帮助!

请试试这个…

 =IFERROR(INDEX($A$1:$A$4,MATCH(1,INDEX(($B$1:$B$4=$E$1)*($C$1:$C$4<=$F$1)*($D$1:$D$4>=$F$1),),0)),"") 

如果您不介意将标题添加到您的原始数据。 在这里输入图像说明

你可以使用这个公式:
=DGET($A$1:$D$5,"Field 1",$E$1:$F$2)

A1:D5是你的数据库。
字段1是从中返回值的字段。
E1:F2是您的标准(在该字段中查找的字段名称和值)。

https://support.office.com/en-gb/article/DGET-function-455568bf-4eef-45f7-90f0-ec250d00892e

正如@Vityata所指出的那样,对于OP来说这不起作用 – 寻找值6会返回一个#VALUE错误而不是Gre。

几个更新将允许它的工作:

  • 更新公式为: =DGET($A$1:$D$5,"Field 1",$E$1:$G$2)
  • 将表更新为:
    在这里输入图像说明

F2和G2中的值计算为: ="<=" & $H$2 and =">=" & $H$2
这个例子将返回Yel,当单元格H2进入1时。

我喜欢这个问题,因此我详细地谈了一下这个问题的答案。 其原因是,它的工作原理是因为我们正在寻找真理(aka 1 )在以下公式:

 =MATCH(1; INDEX(($B$1:$B$4=$E$1)*($C$1:$C$4<=$F$1)*($D$1:$D$4>=$F$1););0) 

喜欢这个: 在这里输入图像说明

然后用INDIRECT我们可以得到答案: =INDIRECT(ADDRESSE(I1;1))

如果你想在一个公式,它应该是这样的:

 =INDIRECT(ADDRESS( MATCH(1;INDEX(($B$1:$B$4=$E$1)*($C$1:$C$4<=$F$1)*($D$1:$D$4>=$F$1););0); 1))