标签:
杂谈 |
查询函数一直是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的排序问题。

加载中…