欢迎大家来到 Office学院,xiaoyang在此恭候大家的光临!
今天我们继续与大家一起来学习 Excel 电子表格中各个常用公式(函数)的详细用法,掌握了公式,我们的很多工作就会大大提高效率的,大家要好好学哟,有不懂的可以到 Office学院问题解答(ask.officexy.com)这里来问呵,大家有进步,我就会高兴得了 :)
这一讲,我们来学习一下 HLOOKUP
|
|
一月 |
二月 |
三月 |
行1 |
行数字并非必需的. |
|
|
|
10 |
80 |
97 |
行2 |
它们只是便于在示例中使用. |
|
|
20 |
90 |
69 |
行3 |
|
|
|
|
|
30 |
100 |
45 |
行4 |
|
|
|
|
|
40 |
110 |
51 |
行5 |
|
|
|
|
|
50 |
120 |
77 |
行6 |
|
|
|
|
|
|
|
|
|
|
|
|
| |
|
|
寻找月份: |
三月 |
|
|
|
|
| |
|
|
需要挑出的行: |
4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
结果是: |
45 |
=HLOOKUP(F10,D3:F10,F11,FALSE) |
功能
在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。在 VLOOKUP 中的 V 代表垂直。
语法
HLOOKUP(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;否则,函数 HLOOKUP 不能返回正确的数值。如果 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,函数 HLOOKUP 返回错误值值 #VALUE!;如果 col_index_num 大于 table_array 的列数,函数 HLOOKUP 返回错误值 #REF!。
Range_lookup 为一逻辑值,指明函数 HLOOKUP 返回时是精确匹配还是近似匹配。如果为 TRUE 或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value 的最大数值;如果 range_value 为 FALSE,函数 HLOOKUP 将返回精确匹配值。如果找不到,则返回错误值 #N/A。
格式
没有专门的格式
示例 1
下面示例以月份和姓名为基础查找值.
使用函数=HLOOKUP()查找月份.
当向下查找相邻的姓名时问题出现了.
这个问题可以使用函数=MATCH()解决.
函数=MATCH()彻底搜索姓名列表并找到我们需要的姓名在列表中的位置。
然而, 因为姓名列表并不像LOOKUP范围那样广泛,
函数=MATCH() 等到的结果与我们实际需要的结果少1,因此要额外添加数字1补充。
在函数=HLOOKUP() 中使用函数 =MATCH() 得到的数字在月份列向下找到单元格条目。
函数=HLOOKUP() 在结尾处使用FALSE为的是月份列不用按升序排列。
|
|
一月 |
二月 |
三月 |
|
|
程香宙 |
10 |
80 |
97 |
|
|
刘冰 |
20 |
90 |
69 |
|
|
程龙 |
30 |
100 |
45 |
|
|
程坤 |
40 |
110 |
51 |
|
|
张三 |
50 |
120 |
77 |
|
|
|
|
|
|
|
| |
|
|
查找的月份: |
二月 |
|
| |
|
|
查找的姓名: |
程龙 |
|
|
|
|
|
|
|
|
|
|
结果是: |
100 |
|
|
|
|
=HLOOKUP(F51,D44:F51,MATCH(F52,C45:C49,0)+1,FALSE) |
示例 2
这个示例使用函数=HLOOKUP() 查找不同小车生产厂商不同配件的价值。
函数=HLOOKUP()在B列不同厂商标题.
找到厂商后, 函数 =HLOOKUP() 又使用=MATCH()函数查找下一列C内配件列表中指定的行。
公式中使用了绝对引用,为的是确保公式复制移动时函数 =HLOOKUP() 和=MATCH()引用的范围不发生变化。
| 厂商 |
配件 |
价值 |
|
|
|
|
|
| 日本丰田 |
火花塞 |
$50 |
|
|
日本丰田 |
福特 |
奔驰 |
| 奔驰 |
变速箱 |
$600 |
|
变速箱 |
500 |
450 |
600 |
| 福特 |
引擎 |
$1,200 |
|
引擎 |
1000 |
1200 |
800 |
| 奔驰 |
方向盘 |
$275 |
|
方向盘 |
250 |
350 |
275 |
| 福特 |
火花塞 |
$70 |
|
火花塞 |
50 |
70 |
45 |
| 福特 |
刹车片 |
$290 |
|
刹车片 |
300 |
290 |
310 |
| 日本丰田 |
变速箱 |
$500 |
|
|
|
|
|
| 福特 |
引擎 |
$1,200 |
|
|
|
|
|
|
|
=HLOOKUP(B71,$G$64:$I$69,MATCH(C71,$F$65:$F$69,0)+1,FALSE) |
示例 3
下面的示例是一个建材经销商提供的不同采购数量的折扣率
价格表中显示了砖,木材和玻璃的单价.
折扣表提供了不同产品不同采购数量的折扣率.
采购表是采购预算.
所有的预算结果显示在采购表中.
产品名称列表在C列.
单价是从价格表中获得的.
FALSE选项表示产品名称在价格表中没有排序整理.
使用FALSE强迫搜索精确匹配. 如果没有找到,则函数显示错误.
=HLOOKUP(C127,E111:G112,2,FALSE)
折扣是从折扣表中获得的
如果采购数量与折扣表中某个值不匹配,函数 =HLOOKUP将向下查找正确的匹配折扣.
TRUE选项表示采购数量在折扣表中经过了升序排列整理.
使用TRUE允许模糊匹配.如果采购数量在折扣表中没有找到匹配的值,则它下面较小的值将被使用.
比如采购数量为125将向下与100匹配,并且使用100对应列的折扣率.
#NAME?
|
|
价格表 |
|
|
砖 |
木材 |
玻璃 |
|
|
£2 |
£1 |
£3 |
|
|
|
|
|
|
|
折扣表 |
|
|
1 |
100 |
300 |
|
砖 |
0% |
6% |
8% |
|
木材 |
0% |
3% |
5% |
|
玻璃 |
0% |
12% |
15% |
|
|
|
|
|
| 采购表 |
| 项目 |
采购数量 |
单价 |
折扣 |
合计 |
| 砖 |
125 |
£2 |
6% |
£235 |
| 木材 |
200 |
£1 |
3% |
£194 |
| 玻璃 |
150 |
£3 |
12% |
£396 |
| 砖 |
225 |
£2 |
6% |
£423 |
| 木材 |
50 |
£1 |
0% |
£50 |
| 玻璃 |
500 |
£3 |
15% |
£1,275 |
|
|
|
|
|
| 单价 |
=HLOOKUP(C114,$E$98:$G$99,2,FALSE) |
|
|
|
|
|
|
| 折扣 |
=HLOOKUP(D114,$E$102:$G$105,MATCH(C114,$D$103:$D$105,0)+1,TRUE) |
示例4
| 密度 |
粘度 |
温度 |
| 0.457 |
3.55 |
500 |
| 0.525 |
3.25 |
400 |
| 0.616 |
2.93 |
300 |
| 0.675 |
2.75 |
250 |
| 0.746 |
2.57 |
200 |
| 0.835 |
2.38 |
150 |
| 0.946 |
2.17 |
100 |
| 1.09 |
1.95 |
50 |
| 1.29 |
1.71 |
0 |
| |
|
|
| 结果 |
公式 |
说明(结果) |
| 2.17 |
在 A 列中查找 1,并从相同行的 B 列中返回值 (2.17) |
|
| 100 |
在 A 列中查找 1,并从相同行的 C 列中返回值 (100) |
|
| #N/A |
在 A 列中查找 0.746。因为 A 列中没有精确地匹配,所以返回了一个错误值 (#N/A) |
|
| #N/A |
在 A 列中查找 0.1。因为 0.1 小于 A 列的最小值,所以返回了一个错误值 (#N/A) |
|
| 1.71 |
在 A 列中查找 2,并从相同行的 B 列中返回值 (1.71) |
|
说明
如果函数 HLOOKUP 找不到 lookup_value,且 range_lookup 为 TRUE,则使用小于等于 lookup_value 的最大值。
如果 lookup_value 小于 table_array 第一列中的最小数值,函数 HLOOKUP 返回错误值 #N/A。
如果函数 HLOOKUP 找不到 lookup_value 且 range_lookup 为 FALSE,函数 HLOOKUP 返回错误值 #N/A。