excel的lookup函数怎么用
发布网友
发布时间:2022-04-21 22:46
我来回答
共3个回答
热心网友
时间:2023-06-28 00:39
VLOOKUP
函数使用方法:
在表格或数值数组的首列查找指定的数值,并由此返回表格或数组中该数值所在行中指定列处的数值。
这里所说的“数组”,可以理解为表格中的一个区域。数组的列序号:数组的“首列”,就是这个区域的
第一纵列,
此列右边依次为第
2
列、
3
列„„。
假定某数组区域为
B2:E10
,
那么,
B2:B10
为第
1
列、
C2:C10
为第
2
列„„。
语法:
VLOOKUP
(查找值,区域,列序号,逻辑值)
“查找值”:为需要在数组第一列中查找的数值,它可以是数值、引用或文字符串。
“区域”:数组所在的区域,如“B2:E10”,也可以使用对区域或区域名称的引用,例如数据库或数据清
单。
“列序号”:即希望区域(数组)中待返回的匹配值的列序号,为
1
时,返回第一列中的数值,为
2
时,
返回第二列中的数值,以此类推;若列序号小于
1
,函数
VLOOKUP
返回错误值
#VALUE!
;如果大于区域的
列数,函数
VLOOKUP
返回错误值
#REF!
。
“逻辑值”:为
TRUE
或
FALSE
。它指明函数
VLOOKUP
返回时是精确匹配还是近似匹配。如果为
TRUE
或
省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于“查找值”的最大数值;如果
“逻辑值”为
FALSE
,函数
VLOOKUP
将返回精确匹配值。如果找不到,则返回错误值
#N/A
。如果“查找
值”为文本时,“逻辑值”一般应为
FALSE
。另外:
·如果“查找值”小于“区域”第一列中的最小数值,函数
VLOOKUP
返回错误值
#N/A
。
·如果函数
VLOOKUP
找不到“查找值” 且“逻辑值”为
FALSE
,函数
VLOOKUP
返回错误值
#N/A
。
下面举例说明
VLOOKUP
函数的使用方法。
假设在
Sheet1
中存放小麦、水稻、玉米、花生等若干农产品的销售单价:
A B
1
农产品名称
单价
2
小麦
0.56
3
水稻
0.48
4
玉米
0.39
5
花生
0.51
„„„„„„„„„„„„„
100
大豆
0.45
Sheet2
为销售清单,
每次填写的清单内容不尽相同:
要求在
Sheet2
中输入农产品名称、
数量后,
根据
Sheet1
的数据,自动生成单价和销售额。设下表为
Sheet2
:
A B C D
1
农产品名称
数量
单价
金额
2
水稻
1000 0.48 480
3
玉米
2000 0.39 780
„„„„„„„„„„„„„„„„„„„
在
D2
单元格里输入公式:
=C2*B2
;
在
C2
单元格里输入公式:
=VLOOKUP
(
A2
,
Sheet1!A2:B100
,
2
,
FALSE
)
。
如用语言来表述,就是:在
Sheet1
表
A2:B100
区域的第一列查找
Sheet2
表单元格
A2
的值,查到后,返
回这一行第
2
列的值。
这样,当
Sheet2
表
A2
单元格里输入的名称改变后,
C2
里的单价就会自动跟着变化。当然,如
Sheet1
中
的单价值发生变化,
Sheet2
中相应的数值也会跟着变化。
其他单元格的公式,可采用填充的办法写入。
热心网友
时间:2023-06-28 00:39
VLOOKUP
在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数
HLOOKUP。
在 VLOOKUP 中的 V 代表垂直。
语法
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value 为需要在数组第一列中查找的数值。LOOKUP_value
可以为数值、引用或文本字符串。
Table_array 为需要在其中查找数据的数据表。可以使用对区域或区域名称的引用,例如数据库或数据清单。
如果 range_lookup 为 TRUE,则 table_array
的第一列中的数值必须按升序排列:…、-2、-1、0、1、2、…、-Z、FALSE、TRUE;否则,函数 VLOOKUP 不能返回正确的数值。如果
range_lookup 为 FALSE,table_array 不必进行排序。
通过在“数据”菜单中的“排序”中选择“升序”,可将数值按升序排列。
Table_array 的第一列中的数值可以为文本、数字或逻辑值。
文本不区分大小写。
Col_index_num 为 table_array 中待返回的匹配值的列序号。Col_index_num 为 1 时,返回 table_array
第一列中的数值;col_index_num 为 2,返回 table_array 第二列中的数值,以此类推。如果 col_index_num 小于 1,函数
VLOOKUP 返回错误值值 #VALUE!;如果 col_index_num 大于 table_array 的列数,函数 VLOOKUP 返回错误值
#REF!。
Range_lookup 为一逻辑值,指明函数 VLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE
或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值;如果 range_value 为 FALSE,函数
VLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。
说明
如果函数 VLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value
的最大值。
如果 lookup_value 小于 table_array 第一列中的最小数值,函数 VLOOKUP 返回错误值 #N/A。
如果函数 VLOOKUP 找不到 lookup_value 且 range_lookup 为 FALSE,函数 VLOOKUP 返回错误值 #N/A
示例
如果您将示例复制到空白工作表中,可能会更易于理解该示例。
A
B
C
1
密度
粘度
温度
2
0.457
3.55
500
3
0.525
3.25
400
4
0.616
2.93
300
5
0.675
2.75
250
6
0.746
2.57
200
7
0.835
2.38
150
8
0.946
2.17
100
9
1.09
1.95
50
10
1.29
1.71
0
公式
说明(结果)
=VLOOKUP(1,A2:C10,2)
在 A 列中查找 1,并从相同行的 B 列中返回值 (2.17)
=VLOOKUP(1,A2:C10,3,TRUE)
在 A 列中查找 1,并从相同行的 C 列中返回值 (100)
=VLOOKUP(.7,A2:C10,3,FALSE)
在 A 列中查找 0.746。因为 A 列中没有精确地匹配,所以返回了一个错误值 (#N/A)
=VLOOKUP(0.1,A2:C10,2,TRUE)
在 A 列中查找 0.1。因为 0.1 小于 A 列的最小值,所以返回了一个错误值
(#N/A)
=VLOOKUP(2,A2:C10,2,TRUE)
在 A 列中查找 2,并从相同行的 B 列中返回值
(1.71)
热心网友
时间:2023-06-28 00:40
LOOKUP的运行原理分析
1
LOOKUP函数以高效的运算速度被EXCEL函数爱好者喜欢,而且LOOKUP在日常实际工作中特别是数组公式,内存数组中应用广泛。
LOOKUP(lookup_value,lookup_vector,result_vector)
lookup_value意思为我们要在数据表中查找的“值”。
lookup_vector意思为我们要查找的值得“数据表”。
result_vector意思为我们通过数据表想要得到的"值“。
LOOKUP的查询方式为二分法查询,具体的查询原理看下图。
2
下面我们用例子给大家具体讲一下LOOKUP的具体应用与原理:
我们以一个学生成绩表为例进行分析,查询一下英语成绩为98的学生姓名:
F2的公式为=LOOKUP(D2,B2:B15,C2:C15)
意思为从B2:B15列里面找D2,并返回C2:C15相对应行的值
这里的结果是"刘备"肯定会让好多人感到困惑,明明有98对应的是“王思”怎么会返回“刘备”呢?那么看往下看,大家就会彻底明白的。
3
我们对LOOKUP的查找方法进行分解——第一次二分法查询:
98会跟第7行的数据78进行比较,因为98>78,所以返回第8到第14行的值。
4
第二次二分法查询:
98会跟第4行的数据66进行比较,因为98>66,所以返回第5到第7行数据。
5
第三次二分法查询:
98会跟第2行的数据87进行比较,因为98>87所以返回第3数据。
因为98比91大,所以就向下近似取比98小的最近的值——91所对应的名字
6
这里就给我们总结了一个知识点:
1、LOOKUP要查询一个明确的值或者范围的时候(也就是知道在查找的数据列是肯定包含被查找的值),查询列必须按照升序排列。(在EXCEL帮助文档里也是这么说的)
如果所查询值为明确的值,则返回值对应的结果行,如果没有明确的值,则向下取的于所查询值最近的值
2、查找一个不确定的值,如查找一列数据的最后一个数值,在这种情况下,并不需呀升序排列。(下面有例子特别说明)
END
LOOKUP用法1:LOOKUP(lookup_value,lookup_vector,result_vector)
1
我们以例子1来帮助大家理解(没有明确的值,但是存在包含关系)
一个公司的销售提成表如下:
2
我们求取销售额在40W所得提成:
这因为40W介于10W与50W之间,所以取比40W小的,最接近的值10W所对应的提成比例。
3
我们以例子2来帮助大家理解(有明确的值)
如下图,找成绩为英语98的人的姓名:
END
LOOKUP用法2:LOOKUP(lookup_value,array)
1
LOOKUP(lookup_value,array)的意思为,从array(数组)里的第一列查找”lookup_value“的值,并返回array里最后一列的结果。
我们依旧以例子来解释
我们一个班级的学生成绩单:
2
我们查找“李刚”的总成绩:
公式为: LOOKUP(G5,B2:F11)
从B列中查找G5的值,找到后,返回F列对应的行的值。
END
LOOKUP函数查找最后非空数值的方法及原理
这里如果查询表中,最后一个人的工资。我们想想该怎么写?
G2的公式为: LOOKUP(9E+307,d:d)
9E+307是Excel中的最大数值
G3的公式为: LOOKUP(65535,CODE(C:C),D:D)
65535是Excel中汉字代码的最大代码