资源描述:
《EXCEL多条件查询》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、EXCEL多条件查询1.概述前几天群里面有人提出一个涉及到多条件查询问题,用函数解决此问题需要很高的技巧,需要用到之前讲解的几乎所有内容,相信认真学习完本文,粉丝们的Excel函数使用水平定有很大提高。其实对数据进行多条件查询,笔者推荐首选的方法是在数据库中Select××或者在Excel中使用VBA,但作为Excel的高级应用,在这里还是要讲一下如何通过使用函数实现,SQL查询和VBA就不进行讨论,有需要的可以去讨论组中探讨。2.基本函数说明实现多条件查询有很多种方法,用到的主要函数无非是常用的几个查询函数Sumproduct、Sum、V
2、lookup和Index+Match。其中Sum、Vlookup和Index+Match需要数组操作(同时按下Shift+Ctrl+Enter),Sumproduct本来就是数组函数,直接回车即可。2.1SumproductSUMPRODUCT(array1,[array2],[array3],...),来自Excel帮助的官方解释是:在给定的几组数组中,将数组间对应的元素相乘,并返回乘积之和。在本文的用法是SUMPRODUCT((条件1)*(条件2)*(…)),这里星号“*”的意义不是相乘,而是同时满足条件1、条件2等几个条件的结果。2.
3、2Sum看到Sum函数好像不太对劲,Sum不是求和函数么?SUM(number1,[number2],...]),来自Excel帮助的官方解释是:将您指定为参数的所有数字相加。每个参数都可以是区域、单元格引用、数组、常量、公式。本文的用法是Sum的另一种用法,SUM((条件1)*(条件2)*(…)),星号“*”的意义同SUMPRODUCT,返回同时满足条件1、条件2等几个条件的结果。2.3VlookupVlookup函数在前几次讲解中已详细讲过,详见“VLOOKUP()函数基础”和“Excel函数讲解之vlookup()&iferror()
4、/iserror()”。VLOOKUP(lookup_value,table_array,col_index_num,[range_lookup]),搜索某个单元格区域的第一列,然后返回该区域相同行上任何单元格中的值。2.4IndexINDEX(array,row_num,[column_num]),返回表格或区域中的值或值的引用。函数INDEX有两种形式:数组形式和引用形式。本文用到它的数组形式,INDEX(A1:C10,2,3)意思是返回区域A1:C10的第2行第3列即C2的值。Index经常和Match函数配合使用。2.5MatchM
5、ATCH(lookup_value,lookup_array,[match_type]),在单元格区域中搜索指定项,然后返回该项在单元格区域中的相对位置。它的用法在“HelloWorld”中涉及过,当初笔者给了它的使用示例,只是没有深入讲解,作为大家自己思考学习的函数,不知看过那篇文章的粉丝们,现在对Match函数的了解成度如何?MATCH("x",{"e";"x";"c";"e";"l"},0)就是在数组{"e";"x";"c";"e";"l"}中精确查找“x”第一次出现的位置,返回2,第2行第一次出现。2.6IfIf函数应该是大家常用的
6、函数,IF(logical_test,[value_if_true],[value_if_false])。不过笔者此处要介绍一下它的数组用法:IF({1,0},[value_if_true],[value_if_false]),返回一个(value_if_true)&(value_if_false)的数组。看例子,比如A1:C3中有数据:No.1类型1值1No.2类型2值2No.3类型3值3那么再选中一个3×2区域,比如说A6:B8,输入公式后,注意Shift+Ctrl+Enter。1、输入“=IF({1,0},A1:A3,B1:B3)”S
7、hift+Ctrl+Enter,得到结果如右:No.1类型1No.2类型2No.3类型3 2、输入“=IF({1,0},A1:A3&B1:B3,C1:C3)”Shift+Ctrl+Enter,得到结果如右:No.1类型1值1No.2类型2值2No.3类型3值3 3、输入“=IF({1,0},A1:A3,B1:B3&C1:C3)”Shift+Ctrl+Enter,得到结果如右:No.1类型1值1No.2类型2值2No.3类型3值3 当然,可以不用把得到的结果放在Excel单元格里面,可以作为一个公式的引用,例如用在Vlookup里面,对于上表
8、中2:VLOOKUP("No.1类型1",IF({1,0},A1:A3&B1:B3,C1:C3),2,0)Shift+Ctrl+Enter,得到返回值“值1”。3.实例应用3.1