excel 多条件查找并返回

sheet2有如下数据ABCDE1550ZKMLPKO773212649QKMOPKO773223570QMLPNKO773234***Z*****KO773**----... sheet 2 有如下数据
A B C D E
1 5 50 Z KMLP KO77321
2 6 49 Q KMOP KO77322
3 5 70 Q MLPN KO77323
4 * ** Z **** * KO773**
----------------------------------------------------------------------------
在sheet 1 中有数据
A B C D
1 N
2 5 50 Z
3 6 49 Q
4 7 70 Q
5 * ** Z
-------------------------------------------------------
有如下条件
条件1: sheet2的Dx中包含sheet1的 A1中字符;
条件2: sheet2的Ax=sheet1的Ay;
条件3: sheet2的Bx>sheet1的By;
条件4: sheet2的Cx=sheet1的Cy;
-------------------------------------------------------------------------------
请教能做如下动作的函数:
查找sheet2中同时满足条件1、2、3、4的那一行(假设第x行满足),在sheet1的Dy单元格返回sheet2的Ex单元格中的数据;若不存在同时满足4个条件的行,则返回“未找到”。

请各位达人帮帮忙,有疑问请提出,答案越详细越好,有解释就更好了!谢谢!
展开
 我来答
jjchangyuan
推荐于2016-02-02 · TA获得超过1.1万个赞
知道大有可为答主
回答量:4278
采纳率:90%
帮助的人:1317万
展开全部
可选用以下两种方法(以两条件为例):
1、用LOOKUP函数配合有关条件实现。
示例公式:
=LOOKUP(0,0/((sheet2!A$1:A$100=A1)*(sheet2!B$1:B$100=B1)),sheet2!C$1:C$100) 该公式“在SHEET2中查找A列B列与本表A列B列对应相同的C列值”。
其中:LOOKUP函数返回向量或数组中的数值,其语法形式有向量和数组两种,本例使用了向量形式。
向量形式的语法是:
LOOKUP(lookup_value,lookup_vector,result_vector) 参数Lookup_value为函数在第一个向量中所要查找的数值,Lookup_vector和result_vector分别为第一向量查找区域和第二向量结果区域,它们是只包含一行或一列的区域。
2、用VLOOKUP函数与IF({1,0}配合实现。
示例公式:
=VLOOKUP(A1&B1,IF({1,0},SHEET2!A$1:A$100&SHEET2!B$1:B$100,SHEET2!C$1:C$100),2,)
其中:IF({1,0},SHEET2!A$1:A$100&SHEET2!B$1:B$100,SHEET2!C$1:C$100)建立一个包含两列数据的内在数组,第一列为A列与B列值同行合并结果,第二列为C列值。
Stcxj
高粉答主

2011-09-01 · 繁杂信息太多,你要学会辨别
知道大有可为答主
回答量:7.1万
采纳率:68%
帮助的人:1.6亿
展开全部
你的Sheet1与Sheet2的行排列顺序不是对应的吧?
问题难就难在于“条件1: sheet2的Dx中包含sheet1的 A1中字符”。
可在Sheet2中增加辅助列F列(先把包含Sheet1的A1“提”出来)
在Sheet2的F1输入
=IF(COUNT(FIND(Sheet1!A$1,D1)),Sheet1!A$1,"")
回车并向下填充
在Sheet1的D2输入
=IF(ISERROR(MATCH(A$1&A2&B2&C2,Sheet2!F$1:F$100&Sheet2!A$1:A$100&Sheet2!B$1:B$100&Sheet2!C$1:C$100,)),"未找到",INDEX(Sheet2!E:E,MATCH(A$1&A2&B2&C2,Sheet2!F$1:F$100&Sheet2!A$1:A$100&Sheet2!B$1:B$100&Sheet2!C$1:C$100,)))
数组公式,输入后先不要回车,按Ctrl+Shift+Enter结束计算,再向下填充。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
caltrop
2011-09-14 · TA获得超过1984个赞
知道小有建树答主
回答量:831
采纳率:0%
帮助的人:1202万
展开全部
假设你满足条件是唯一的,那可以用比较简单的做法
(条件1是不是: sheet2的Dx中包含sheet1的 Dy中字符?)

=index(sheet12e1:e100,sum((len(substitute(sheet2!d1:d100,sheet1!d1,""))=len(sheet2!d1:d100))*(sheet2!a1:a100=sheet1!a1)*(sheet2!b1:b100>sheet1!b1)*(sheet2!c1:c100>sheet1!c1))*row(sheet2!c1:c100))

CTRL+SHIFT+ENTER
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dazhio
2011-08-31 · 超过29用户采纳过TA的回答
知道答主
回答量:115
采纳率:0%
帮助的人:56万
展开全部
可以直接用IF函数判断。=IF(条件1满足第x行,返回某个值,IF(条件2满足第A行,返回某个值,IF(条件3满足第B行,返回某个值,IF(条件4满足第C行,返回某个值,返回另一个值))))
这样就可以了,IF函数最多不能超过七层的嵌套。超过七层的嵌套它就会容易计算出错,切忌
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
绿水青山20198
2011-08-31 · TA获得超过500个赞
知道小有建树答主
回答量:668
采纳率:100%
帮助的人:344万
展开全部
d1=if(and(sheet1!a1=sheet2!a1,sheet1!b1>sheet2!b1,sheet1!c1=sheet2!c1,ISERR(SEARCH(sheet1!a1,sheet2!d1))=0),sheet2!e1,"未找到") 下拉填充
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式