颜晓华吧 关注:27贴子:131
  • 1回复贴,共1

VLOOKUP 使用方法

只看楼主收藏回复

VLOOKUP
全部显示
全部隐藏
在表格阵列的第一栏中搜寻某个数值,并传回该表格阵列中同一列之其他栏中的数值。
VLOOKUP 中的 V 代表「垂直」。当比对值位於要寻找之资料左方的某一栏中时,请使用 VLOOKUP,而非 HLOOKUP。
语法
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
Lookup_value   在表格阵列 (阵列:用来建立产生多个结果或运算一组以列及栏排列之引数的单一公式。阵列范围共用一个公式;一个阵列常数是用作一个引数的一组常数。)的第一栏中搜寻的数值Lookup_value 可以是数值,也可以是参照位址。当 lookup_value 小於 table_array 第一栏中的最小值时,VLOOKUP 将会传回错误值 #N/A。
Table_array   两栏以上的资料。请使用参照位址来指向某个范围或范围名称。table_array 第一栏中的值即为 lookup_value 所搜寻的值。这些值可以是文字、数字或逻辑值 (不分大小写)。
Col_index_num   table_array 中的栏号;相符的值将从该栏中传回。如果 col_index_num 引数值为 1,则传回 table_array 第一栏中的值;如果 col_index_num 引数值为 2,则传回 table_array 第二栏中的值,依此类推。如果 col_index_num:
小於 1,则 VLOOKUP 会传回错误值 #VALUE!。
大於 table_array 中的栏数,则 VLOOKUP 会传回错误值 #REF!。
Range_lookup   一个逻辑值,用来指定 VLOOKUP 应该要寻找完全符合还是部分符合的值:
如果此引数值为 TRUE 或被省略了,则传回完全符合或部分符合的值。如果找不到完全符合的值,将会传回仅次於 lookup_value 的值。
table_array 第一栏中的值必须以递增顺序排序;否则,VLOOKUP 可能无法提供正确的值。如需详细资讯,请参阅排序资料。
如果此引数值为 FALSE,则 VLOOKUP 函数只会寻找完全符合的值。在此情况下,table_array 第一栏中的值便不需要排序。如果 table_array 第一栏中有两个以上的值与 lookup_value 相符,将会使用第一个找到的值。如果找不到完全符合的值,则传回错误值 #N/A。
备注
在 table_array 的第一栏中搜寻文字值时,请确定 table_array 第一栏中的资料未包含前置空格、结尾空格、不成对的一般引号 ( ' 或 " ) 及智慧引号 ( ‘ 或 “),以及非列印字元。否则,VLOOKUP 可能会提供错误或与预期不符的值。如需详细资讯,请参阅 CLEAN 及 TRIM。
搜寻数字或日期值时,请确定 table_array 第一栏中的资料并未储存成文字值。否则,VLOOKUP 可能会提供错误或与预期不符的值。如需详细资讯,请参阅将储存成文字的数字转换成数值。
如果 range_lookup 为 FALSE 且 lookup_value 为文字,则您需要在 lookup_value 中使用万用字元、问号 (?) 和星号 (*)。问号可替代任一字元;星号可替代任一系列的字元。如果您确实要寻找实际的问号或星号,请在该字元前输入波状符号 (~)。
范例 1
如果将范例复制到空白工作表上,就会比较容易了解。
如何复制范例
建立空白的活页簿或工作表。
选取 [说明] 主题中的范例。
附注     请不要选取列或栏标题。
选取 [说明] 中的范例
按 CTRL+C 键。
选取工作表中的 A1 储存格,然后按 CTRL+V 键。
若要在结果检视与会传回结果的公式检视之间进行切换,请按 CTRL+` (重音符符号),或在按一下 [工具] 标签出现的 [公式稽核] 群组中,按一下 [显示公式] 按钮。
本范例会在一份大气特性表的 [密度] 栏中进行搜寻,以找出 [黏性] 和 [温度] 栏中的对应值 (下表中的值适用於 1 大气压的空气,亦即位於海平面、摄氏温度为 0 度的空气)。
   
1
2
3
4
5
6



1楼2010-06-24 12:20回复
    7
    8
    9
    10
    A B C
    密度 黏性 温度  
    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
    公式 说明 (结果)
    =VLOOKUP(1,A2:C10,2) 在栏 A 中寻找与 1 接近的值,在栏 A 中找到小於或等於 1 的最大值 (0.946),再传回栏 B 中同一列的值。(2.17)
    =VLOOKUP(1,A2:C10,3,TRUE) 在栏 A 中寻找与 1 接近的值,在栏 A 中找到小於或等於 1 的最大值 (0.946),再传回栏 C 中同一列的值。(100)
    =VLOOKUP(.7,A2:C10,3,FALSE) 在栏 A 中搜寻与 0.7 完全相符的值。由於在栏 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 接近的值,在栏 A 中找到小於或等於 2 的最大值 (1.29),再传回栏 B 中同一列的值。(1.71)
    范例 2
    请如果将范例复制到空白工作表上,就会比较容易了解。
    如何复制范例
    建立空白的活页簿或工作表。
    选取 [说明] 主题中的范例。
    附注     请不要选取列或栏标题。
    选取 [说明] 中的范例
    按 CTRL+C 键。
    选取工作表中的 A1 储存格,然后按 CTRL+V 键。
    若要在结果检视与会传回结果的公式检视之间进行切换,请按 CTRL+` (重音符符号),或在按一下 [工具] 标签出现的 [公式稽核] 群组中,按一下 [显示公式] 按钮。
    本范例会在一份婴幼儿产品表的 [商品代码] 栏中进行搜寻,并比对 [成本] 和 [加价率] 栏中的值,以计算出价格,并针对各种情况进行测试。
       
    1
    2
    3
    4
    5
    6
    A B C D
    商品代码   商品   成本   加价率  
    ST-340 婴儿车 $145.67   30%  
    BI-567 围兜 $3.56   40%  
    DI-328 尿布   $21.45   35%  
    WI-989 湿纸巾   $5.12   40%  
    AS-469 吸出器 $2.56   45%  
    公式 说明 (结果)
    = VLOOKUP("DI-328", A2:D6, 3, FALSE) * (1 + VLOOKUP("DI-328", A2:D6, 4, FALSE))   将加价率与成本相加,以计算出尿布的零售价。($28.96)
    = (VLOOKUP("WI-989", A2:D6, 3, FALSE) * (1 + VLOOKUP("WI-989", A2:D6, 4, FALSE))) * (1 - 20%) 将零售价减去指定的折扣,以计算出湿纸巾的折扣价。($5.73)
    = IF(VLOOKUP(A2, A2:D6, 3, FALSE) >= 20, "加价率为 " & 100 * VLOOKUP(A2, A2:D6, 4, FALSE) &"%", "成本低於 $20.00") 如果商品的成本大於或等於 $20.00,则显示 "加价率为 nn%",否则就显示 "成本低於 $20.00"。(加价率为 30%)
    = IF(VLOOKUP(A3, A2:D6, 3, FALSE) >= 20, "加价率为:" & 100 * VLOOKUP(A3, A2:D6, 4, FALSE) &"%", "成本为 $" & VLOOKUP(A3, A2:D6, 3, FALSE))   如果商品的成本大於或等於 $20.00,则显示 "加价率为 nn%",否则就显示 "成本为 $n.nn"。(成本为 $3.56)
    范例 3
    请如果将范例复制到空白工作表上,就会比较容易了解。
    如何复制范例
    建立空白的活页簿或工作表。
    选取 [说明] 主题中的范例。
    附注     请不要选取列或栏标题。
    选取 [说明] 中的范例
    按 CTRL+C 键。
    选取工作表中的 A1 储存格,然后按 CTRL+V 键。
    若要在结果检视与会传回结果的公式检视之间进行切换,请按 CTRL+` (重音符符号),或在按一下 [工具] 标签出现的 [公式稽核] 群组中,按一下 [显示公式] 按钮。
    本范例会在一份员工表格的 [员工编号] 栏中进行搜寻,并比对其他栏中的值,以计算出员工的年纪,并针对各种错误情况进行测试。
       
    1
    2
    3
    4
    5
    6
    7
    A B C D E
    员工编号   姓
    名   职称 出生日期  
    1 Davolio Nancy 业务代表   12/8/1968
    2 Fuller Andrew 业务部副总 2/19/1952
    3 Leverling Janet 业务代表 8/30/1963
    4 Peacock Margaret 业务代表 9/19/1958
    5 Buchanan Steven 业务经理 3/4/1955
    6 Suyama Michael 业务代表   7/2/1963
    公式 说明 (结果)
    =INT(YEARFRAC(DATE(2004,6,30), VLOOKUP(5,A2:E7,5, FALSE), 1)) 在 2004 年会计年度,找出员工编号等於 5 之员工的年纪。使用 YEARFRAC 函数将会计年度最后一天的日期减去出生日期,并使用 INT 函数将结果显示为整数。(49)  
    =IF(ISNA(VLOOKUP(5,A2:E7,2,FALSE)) = TRUE, "找不到员工", VLOOKUP(5,A2:E7,2,FALSE)) 如果找到了员工编号为 5 的员工,则显示该名员工的姓氏,否则就显示「找不到员工」讯息。(Buchanan)
    当 VLOOKUP 函数传回错误值 #NA 时,ISNA 函数将会传回 TRUE 值。
    =IF(ISNA(VLOOKUP(15,A3:E8,2,FALSE)) = TRUE, "找不到员工", VLOOKUP(15,A3:E8,2,FALSE)) 如果找到了员工编号为 15 的员工,则显示该名员工的姓氏,否则就显示「找不到员工」讯息。(找不到员工)
    当 VLOOKUP 函数传回错误值 #NA 时,ISNA 函数将会传回 TRUE 值。
    =VLOOKUP(4,A2:E7,3,FALSE) & " " & VLOOKUP(4,A2:E7,2,FALSE) & " 的职称是" & VLOOKUP(4,A2:E7,4,FALSE) & "。" 针对员工编号为 4 的员工,将其三个储存格的值连接成一个完整的句子 (Margaret Peacock 的职称是业务代表)。
    


    2楼2010-06-24 12:20
    回复