本文链接:http://oicu.cc.blog.163.com/blog/static/123039471200981111856302/
本文是多对一查找,需要一对多的请看:Excel同一条件返回多个结果的查找引用
解答:
发信人: oicu (Oh! I see you!), 信区: OfficeSoft
标 题: Re: 请教:类似Vlookup的高级查找
发信站: 水木社区 (Sun Aug 16 18:21:55 2009), 站内
=LOOKUP(2,1/((A1:A3="男")*(B1:B3=28)),C1:C3)
=INDIRECT("C"&SUMPRODUCT((A1:A3="男")*(B1:B3=28)*ROW(C1:C3)))
最好的是用 INDIRECT(ADDRESS(ROW,COLUMN)) 这种形式:
=INDIRECT(ADDRESS(SUMPRODUCT((A1:A3="男")*(B1:B3=28)*ROW(C1:C3)),3))
如果C列是数字,可以直接用
=SUMPRODUCT((A1:A3="男")*(B1:B3=28)*(C1:C3))
{=INDEX(C1:C3,MATCH("男"&"28",A1:A3&B1:B3,0))}
{=VLOOKUP("男"&"28",IF({1,0},A1:A3&B1:B3,C1:C3),2,0)}
{=OFFSET(C1,SUM(IF((A1:A3="男")*(B1:B3=28),ROW(C1:C3),0))-1,0,1,1)}
Google spreadsheet在线表格只能用这种方法,上面的都无效。
列查找用COLUMN代替ROW,并和0值位置互换。
注:大括号{}表示的是数组公式,不是直接输入的!
问题:
发信人: On2 (On
标 题: 请教:类似Vlookup的高级查找
发信站: 水木社区 (Sun Aug 16 16:25:19 2009), 站内
用Vlookup,可以在一个数据阵列中,根据调节查找相应数据
但查询条件只能有一个。
如果需要用两个或多个条件进行查找,有没有什么办法?
举例:
A B C D
男 28 aaa bbb
男 27 bbb ccc
女 28 aaa bbb
如果需要查找:A列=男 ,B列=28的数值,返回相应的C列数值,有没有什么快捷的方法?
多条件查找公式的解释:
只解释 =LOOKUP(2,1/((A1:A3="男")*(B1:B3=28)),C1:C3) 这个公式,其他都很容易理解。
(A1:A3="男")*(B1:B3=29)
真为1,假为0,相乘后构成这种垂直向量{1;0;0}
同样的应用示例:
{=OFFSET(C1,SUM(IF((A1:A3="男")*(B1:B3=28),ROW(C1:C3),0))-1,0,1,1)}
1/((A1:A3="男")*(B1:B3=29))
倒数后,0值变成 #DIV/0!,构造错误,所以向量中就只有一个数字1啦。
(当数字被零 (0) 除时,出现错误)
=LOOKUP(2,1/((A1:A3="男")*(B1:B3=29)),C1:C3)
第一个数字写一个>=1的任意数字即可。
向下兼容的,所以查找到C列的结果为最后一个,查不到结果返回#N/A。
因为是向量形式,所以Result_vector中的值不用按升序顺序排列。
评论