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))