本文的标题是《每天学一点Excel2010 (89)——Lookup之数组形式》来源于:由作者:陈谱月采编而成,主要讲述了193 lookup
助记:英文的“查找”。
类别:查找和引用
该函数有数组形
193 lookup
助记:英文的“查找”。
类别:查找和引用
该函数有数组形式和向量形式共两种不同的形式,可以认为是两个形式共用一个函数名称,其参数和用法有区别,因此要分开来讲。
数组形式
语法:
lookup(lookup_value,array)
参数:2个参数
- lookup_value 必需。需要在指定数组中查找的值。可以是数字、文本、逻辑值,当然也可以对应的引用或名称。
- array 必需。指定查找范围的数组或单元格区域。
用法:
当指定区域行数、列数相等时,在第1列里面进行查找,找到后则返回同1行、最后1列单元格的值。
当指定区域行数、列数不相等时,偷点懒,在小的里面查找。即列数小就在第1列里面进行查找,行数小就在行数里面进行查找。
查询
1)我们还用以前的一个例子看看。新建一个工作表,在A1~E5单元格输入图中的内容,并在旁边创建一个按序号的查询区。所有不带背景颜色的都是常规的文本或数值,黄底色单元格是要查询的值,橙色单元格输入公式表示查询结果。
2)我们选择H5单元格,输入“=lookup(I3,A2:B5)”,同理I5单元格是“=lookup(I3,A2:C5)”,依次类推。
3)在填充公式时,不变的单元格要用绝对引用,我们选择H5单元格,按下F2进入编辑状态,把光标移动到I3上,按F4,变成$I$3;再把光标移动到A2上,按F4,变成$A$2。这就是上面图中的公式。有鼠标拖动H6单元格右下角的填充柄将公式填充到K6,改变I3中的数值,可以查询到相应的内容,但是其中的“工龄”内容不对,一直是“4”。
4)因为到达工龄时,所选区域为4行5列,改为在第1行查找了。如果找不到lookup_value值,会使用数组中小于等于lookup_value的最大值,在示例里面小于2的最大值是1,所以返回第1列最后一行的数字4。
找不到用小于lookup_value的最大值代替
5)把I3改成51,如图,前面的三个单元格按列查,小于51的最大值是4;最后一个单元格按行查,小于51的最大值是50,所以显示上述结果。
按列查询
6)为了解决“工龄”存在的问题,本例中将H5中的公式改为“=lookup($I$3,$A$1:B5)”,然后向右填充,到“工龄”时区域变成5行5列,在第一列查询了。如图的蓝**域,像一个大写H,我们在第一列查找,找到后返回最后一列“工龄”的对应值。如果列数大的时候,就相当于一个大写I(工)字母,我们在第1行查询,然后返回最后1行的对应值。
7)同样,需要检索的首行或者数列中的值必须按升序排列,例如:…-2,-1,0,1,2,…,A,B,…Y,Z,false,true。Excel帮助中未涉及到汉字,我们可以把数字、英文文本、中文文本、逻辑值放在同一列不同的单元格,进行排序,便能发现汉字排在字母后头,逻辑值前头,按照汉字的拼音字母排序的。我们把A2~A5改成4、3、2、1。查找的结果是#N/A错误。
8)当要查询的值列表较小或者值在一段时间内保持不变时,使用数组形式。特别简单的情况,我们可以直接用常量数组作为参数。例如,字母变数字,输入“=lookup("C”,{"a","b","c","d";1,2,3,4},结果显示3,英文不区分大小写。
9)现实中用的最多的是将百分制的分数转化成ABCDF打分制。假设K5里面的工龄是考试分数,我们在K6输入公式“=lookup(K5,{0,60,70,80,90;"F","D","C","B","A"})”然后改变E2中的数值,看看变化。
百分制转换为ABCDF等级
(待续)
本文原作者为陈谱月,转载请注明:出处!如该文有不妥之处,请联系站长删除,谢谢合作~
原创文章,作者:陈谱月,如若转载,请注明出处:http://www.kaicen.cn/20220514321663.html