玩转Excel

您所在的位置:网站首页 lookup函数数组 玩转Excel

玩转Excel

2023-03-15 03:35| 来源: 网络整理| 查看: 265

VLOOKUP 是 Excel 中的一种查找函数,它可以根据一个指定的查找值,在一个数据表中查找并返回相应的数值。该函数的语法如下:

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

其中:

lookup_value:要查找的值。table_array:包含要查找的值的表格范围。col_index_num:要返回的值所在的列数。此参数从 1 开始计数。range_lookup:一个可选参数,用于确定查找方式。当设置为 TRUE 或省略时,表示使用近似匹配(默认);当设置为 FALSE 时,表示使用精确匹配。

举例说明,现有如下统计表,使用VLOOKUP函数可以方便地查找出某一个学生对应的成绩。

但是,如果统计表有多个统计字段,直接使用VLOOKUP函数很容易出现错误,如下

这是因为VLOOKUP($J$2,$A$2:$F$19,4,FALSE)的$A$2:$F$19这一部分实际上创造了一个二维数组,{"Margaret",4,"m",50,29,38;"Julia",2,"m",30,94,97;"Julia",3,"m",40,27,16;"Julia",3,"f",60,78,89;"Natalie",5,"m",16,64,41;"Kate",1,"f",41,71,32;"Olivia",5,"m",63,20,18;"Sam",5,"f",58,8,45;"Betty",5,"m",90,26,78;"Angel",1,"m",37,28,91;"Laura",3,"f",63,62,42;"Ellen",6,"m",9,56,69;"Elena",5,"m",91,83,2;"Vicky",3,"m",54,91,43;"Summer",6,"f",67,50,51;"Isabella",6,"m",46,35,40;"Kitty",1,"m",26,5,24;"Mia",6,"f",97,6,39}

这个数组共有18个元素,每个元素有6个数据。VLOOKUP函数的工作原理为,函数匹配值是$J$2,即"Julia",18个元素的首个数据分别是

"Margaret"、"Julia"、"Julia"、"Julia"、"Natalie"、"Kate"、"Olivia"、"Sam"、"Betty"、"Angel"、"Laura"、"Ellen"、"Elena"、"Vicky"、"Summer"、"Isabella"、"Kitty"、"Mia"

当函数找到第一个"Julia"时,即默认这个元素就是返回值所在的位置,即"Julia",2,"m",30,94,97,所以这里匹配出的数值分别为30,94,97。

分析元数据就能发现,匹配字段共有三个,分别是Name,Class,Gender,只有同时满足这三个条件,那么匹配出来的数据才是正确的。

方法之一是,添加一个辅助列把这三个条件合并为一个条件,再使用VLOOKUP函数就不会出错了。

但是这个方法的缺点是,我们改变了元数据,一般在进行数据处理的时候一个原则是尽量不要改变元数据。所以,这个方法不是太好。

方法之二是,我们可以在VLOOKUP函数的被查找区域中构造一个二维数组,这样也能实现查找条件的合并。

我们逐步拆开这个函数来看,=VLOOKUP($J$2&$L$2&$K$2,IF({1,0},$A$2:$A$19&$B$2:$B$19&$C$2:$C$19,D2:D19),2,FALSE)

其中,

$J$2&$L$2&$K$2:表示Name,Class,Gender合并之后的查询条件

IF({1,0},$A$2:$A$19&$B$2:$B$19&$C$2:$C$19,D2:D19):使用IF函数的特性构造一个二维数组表示被查找区域。这一部分的运行结果为:{"Margaret4m",50;"Julia2m",30;"Julia3m",40;"Julia3f",60;"Natalie5m",16;"Kate1f",41;"Olivia5m",63;"Sam5f",58;"Betty5m",90;"Angel1m",37;"Laura3f",63;"Ellen6m",9;"Elena5m",91;"Vicky3m",54;"Summer6f",67;"Isabella6m",46;"Kitty1m",26;"Mia6f",97}

可见被查找区域是一个二维数组,共有18个元素,每个元素有2个数据。

注意:对于数组函数,我们需要同时按下ctrl+shift+enter键进行函数运算。

2:返回列数为2,因为上述二维数组的每个元素有2个数据,我们需要查找的是第2个数据,所以返回列数为2。

对比添加辅助列和构造二维数组这两种方法可以发现:

1.添加辅助列,优点是方便理解便于操作,缺点是改变了元数据。

2.构造二维数组,优点是不改变元数据,缺点是不太容易理解。

大家可以在实务中根据需要灵活使用两种方法,个人建议是使用构造二维数组,这样可以保持元数据不被破坏。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3