在EXCEL中,为什么用LOOKUP查找符合某个条件的值 ,结果只显示一个

符合”广州“条件的,明明有

两个人,结果只显示一个人的名字

  你希望的结果是?
  LOOKUP在第2个参数中查找第1个参数,返回对应的第3个参数中的值。找到后返回,找不到返回错误值#N/A。
  而lookup查找是按二分法来查找的,即先在第2个参数的的1/2处查找,如果查找的第1参数大于1/2处的数据就在后面剩下的数据中的1/2处,即事个数据的3/4处查找;反之小于1/2处的数据,则在左侧来查找。按此方法直到在第2参数中找到第1个参数为止,全部查找完后还没找到就返回错误值#N/A。
  看了上面的介绍,就不难理解你的公式返回的结果是陈方了。不妨把D3修改为“郑州”试试,返回将是“李是”而不会是“陈方”了,为什么,因为广州的拼音第1个为G,小于郑州的拼音第1个Z,就在左侧来查找,而D为北(拼音第1个为B)时,在右侧查找。
  像你这样问题,因为数据没按规律排序,且有重复数据,比较好的方法还是用index+match或index+small之类的函数组合来处理,具体要看你要求是什么来确定。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-08-04
lookup正常情况下仅返回第一个查找到的内容,所以不会都返回的。
另外你图片中的公式的结果应该不对,应该返回李是,而不是陈方,应该D2的广州的内容和你公式里的不一样。
添加个辅助列吧,做个序号连接一下,形成一个新的查询条件。
第2个回答  2015-08-04
在F2单元格输入以下数组公式,按Ctrl+Shift+Enter组合键结束,然后向下填充公式
=INDEX(B:B,SMALL(IF(D$2:D$20=D$2,ROW($2:$20),4^8),ROW(A1)))&""
相似回答