excel中提取符合一定条件的数据

A B C D
1 机组负荷 轴承温度 流量 气压
2 125
3 278
4 300
5 300
6 256
7 299.6
8 300.2
9 300
10 299.5 116
11 300.6
12 300
13 231
.
.
.
表有几千行,我想在“机组负荷”列中查找满足连续四行在299-301之间,返回这四列中第四列所对应的“流量”的值。
如上表中,从第7行到12行的“机组负荷”都在299-301之间,那么满足“连续四行”这个条件的有第10行、11行和12行,但我只需要第一个满足条件的第10行所对应的“流量”,结果返回应该是116。
请问这个公式该怎么写呀?(解决了再追加分数)
简单说我就是想提取负荷稳定在300左右,达到4分钟时的流量是多少
因为处理量很大,不希望用辅助列来实现(希望用一个公式解决),谢谢!
另外,例中的列号A、B、C、D没对齐,应该再往右边移(大家应该看得懂哈)

要么用一个公式将满足条件(连续四行都在299-301之间)的第4行的行号提取出来也行,在上例中就是:用一个公式提取出第10行的行号

第1个回答  2012-03-07
首先假设这个116是E列的数据,是E10的数值
在c5输入=if((a2>=299)*(a2<=301)*(a3>=299)*(a3<=301)*(a4>=299)*(a4<=301)*(a5>=299)*(a5<=301)*(c4=0),e5,)
第2个回答  2012-03-07
在E5中输入下面公式:
=IF(AND(A2>=299,A2<=301,A3>=299,A3<=301,A4>=299,A4<=301,A5>=299,A5<=301),IF(C5=0,"",C5),"")
然后下拉
第3个回答  2012-03-07
你在F6单元格输入:
F6=IF(AND(ABS(A6-300)<=1,ABS(A5-300)<=1,ABS(A4-300)<=1,ABS(A3-300)<=1,ABS(A2-300)>1),D6,"")下拉
第2、3、4行肯定不符合要求,你至于第五行你自己看下能判断追问

我希望一个公式直接得出C10中的结果(116),有“下拉”、 “填充”这些操作都不行,这相当于增加辅助列解决问题
假设我的公式写在E1单元格

追答

难道你的表格里面符合条件的只有一个???
如果有好几个怎么办?你要求在一个单元格里都列出来吗?

追问

只要第一个符合条件的

追答

SORRY!,刚写错了,已修改
=IF(AND(ABS(A2-300)1),ROW(D6:D2006),4^8),1)))
数组公式按CTRL+SHIFT+回车结束
如果不用考虑A5单元格的可能性的话可以直接用下面的公式(单元格范围只判断到了第2006行,如果需要增加,可以把里面同纬度增加即可
INDIRECT("d"&SMALL(IF((ABS(A6:A2006-300)1),ROW(D6:D2006),4^8),1))

本回答被提问者采纳
第4个回答  2012-03-07
不用辅助列,你准备把公式写在什么地方?
相似回答