加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Excel中index和match函数的应用实例

(2010-10-04 20:43:00)
标签:

杂谈

查询函数一直是Excel中常被用到的一种函数,本篇来介绍一下index与match在实际工作中的应用实例。

先看一下这个Excel工作簿。要求:将“用户分析”工作表中机房名称列中输入函数,向下拖动使其自动选择对应“号段检索”工作表中备注的机房名称。

https://nmnura.bay.livefilestore.com/y1mUlCjuNqrLnpUy1P3tE5QXBevI5UkshA8KiyTxG_lO4h-Z7AUM-MVpxXD7AOhF4F897chjQU7Xho3bsiZCI6PMU1zukLE8ulg_t9Y3tetd8saAHZMWGS5ilQkPUOcgIzv_-mlYIwhIPt6tAo2fMM61A/1_thumb[7]%20455FF2FA.jpg?download&psid=1

https://nmnura.bay.livefilestore.com/y1mGQ-viTHAFkLc7BSNClRAgiwm_HTQAL6Vyeja5E-U0Kvc7VMcDx0aZiVSUj5rTcJmSzhen2uD5_jtGohlf1utm3igl2E5ewe7lDz8IkCR1tbAIeSsKPy1na_pad5RJx7fbri0vgJG07mWFUh3WOSswA/2_thumb[6].jpg?download&psid=1

其中故障号码为“号段检索”表中起始、结束号段中的码号。因此这里需要利用index与match函数来完成检索号段归属机房查询工作。

想到了index与match函数了吧,可以先回顾一下。

------------------------------------------------------------------------------------

------------------------------------------INDEX-----------------------------------

index函数的意义:返回指定行列交叉处引用的单元格。                                                                   

公式:=index(reference,row_num,column_num,area_num)
reference指的是要检索的范围;
row_num指的是指定返回的行序号,如超出指定检索范围,返回错误值#REF!;
column_num指的是指定返回的列序号,如超出指定检索范围,返回错误值#REF!;
area_num指的是返回该区域中行和列的交叉域。可省略,默认1。如小于1时返回错误值#VALUE!

-------------------------------------------------------------------------------------

------------------------------------------MATCH-----------------------------------

match函数的意义:返回指定方式下查找指定查找值(可以是数字、文本或逻辑值)在查找范围1行或1列的位置。

公式:=match(lookup_value,lookup_array,match_type)
lookup_value指指定查找值;
lookup_array指的是1行或1列的被查找连续单元格区域。
match_type指的是查找方式,1或省略指查找小于或等于lookup_value的最大值,lookup_array必须为升序排列,否则无法得到正确结果。
0指查找等于lookup_value的第一个数值,如果不是第一个数值则返回#N/A
-1指查找大于或等于lookup_value的最小值,lookup_array必须为降序,否则无法得到正确结果。

--------------------------------------------------------------------------------------

--------------------------------------------------------------------------------------

那么在这里是用match函数来定位“用户分析”表中故障号码在“号段检索”起始号段结束号段的所在行序号。

如下图:=MATCH(用户分析!K2,号段检索!B:B,1)。但是为什么检索出来的行号会是错误值呢?

https://nmnura.bay.livefilestore.com/y1m78T3lOwvxgEzLUcg2_id6p9G4QkhIFh3vLau81VsyN7MCakOz2VaUR9FvAwb7-uivdwQ6qYimP2e0e0bvN1rPcS8I1U55lGowchniI_QJI-cBLApy8Sk793qUTGrnt0lG1_wsqkrX78Fq8AkLZrvQg/3_thumb[10].jpg?download&psid=1

别忘了,match_type为-1时,lookup_array必须为升序排列,也就是“号段检索”表中起始号段应按升序排序。

https://nmnura.bay.livefilestore.com/y1mqISFxUAWjmzHRrfA4oyObjF-WDDO5yLKR37l4lOgvaUgSo5iMhoQYi_22-GdWLrIzOs0GBWIl-h2_cQnn5HE6rNACGM7wGhaGhAigXfvv_bAYimp29R2VcwFY297818yGJmQAPax9P4Oot9le-EN2A/4_thumb[5]%205432E848.jpg?download&psid=1

OK,这次查询正确,也可以抽一个验证一下无误即可。

https://nmnura.bay.livefilestore.com/y1mFZgZuxKs7dWLGmuCF-_vJhXT_PYk4zCvt7pUtOBh07_VUJBZ9qY7MNqgdX4Ln7JLTFOP0FmoHl3b3qlg_u95Drp85tYmRHWWwS85U3lESnhqqeb0PTQgpxs0WiVG3Rq-w3IBuKrt8Pl6EttAtNM1ew/5_thumb[1]%20338B5CFC.jpg?download&psid=1

最后index函数利用match定位的行序号,来引用“号段检索”表中该行序号所在备注的机房名称。

输入公式如下:INDEX(号段检索!A:G,MATCH(用户分析!K2,号段检索!B:B,1),6)。

https://nmnura.bay.livefilestore.com/y1mx9wrdHppsy67x-WAlwt-5rKlW0Lu4ZSzC1_xGBZLzVQgooRZQhl8MpabGru7KzcD2bv8_KTyI7F5XsPfHJ9dffx8zRlWhHVvwY6vBBDyllvXiTxs-Bn9L4jRu-3YKFtYZ-AAMaN2DEuM0zReSj8Fjg/6_thumb[3]%2047547E2B.jpg?download&psid=1

最后向下拖动公式,完成机房名称检索。

在实际应用中可能常用的是精确查找,但是如果match函数需要应用-1和1时,特别要注意lookup_array的排序问题。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有