Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1411707
  • 博文数量: 416
  • 博客积分: 13005
  • 博客等级: 上将
  • 技术积分: 3297
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 16:26
文章分类

全部博文(416)

文章存档

2014年(1)

2013年(4)

2012年(46)

2011年(64)

2010年(12)

2009年(4)

2008年(40)

2007年(187)

2006年(58)

分类: WINDOWS

2007-10-16 16:06:53

说起是否会使用Excel,估计只要用过电脑的人都说自己会用。真的是这样吗?就笔者的多年用户技术支援的经验,很多用户所谓的“会用”,真的只是仅仅局限于“会用”而己。输入一些内容,加上一些表格格线,点一下存盘,瞧,文件做好了。

  如果只是这样,微软公司就不用煞费苦心,开发什么新版本了。早期的Excel 5.0就己经绰绰有余了。

   其实,Excel是一个功能非常强大的数据处理系统,决不只是一个拿来画个表格的表格绘制工具。如果真正掌握了Excel的所有功能,你会发现,很多重 复的,烦闷的数据处理过程,会变得非常美妙,你只需点点或拖拖鼠标,然后靠在椅背上啜口咖啡,本来会忙得你晕天黑地的任务己让系统帮你处理好了。这时,看 着仍忙得一塌湖涂的同事,你只有一个感觉:酷…… 

  要真正发挥Excel的威力,你必须掌握Excel的灵魂―函数。不会使用 Excel的函数,你就不是一个真正的会用Excel的用户。正是一个个功能各异的函数,组成的不同的公式,才让Excel这位大侠,有了绝世武功。每一 个函数,便是他的一招绝学,但只单单学会他的招术,也还是不够,只有把所有招术练熟了,并综合运用,融会贯通,做到招中有招,才能真正掌握他的绝世武功, 让Excel自动帮我们完成无法完成的任务。

  下面,我们便来开始学心Excel大侠的绝学。我会先一招一招地介绍,几招之后,再演示怎么综合应用所学的几招,创建新招。在实际对敌中,我们要知道,招是死的,人是活的,招由心生,绵绵不绝。

  第一招:大海捞针(Vlookup函数)

   招如其名。此招用来在一个茫茫的数据源中,自动让电脑找出你要的某个数据的相关资料并填在指定的地方。也是就是,可以让电脑在一个表格或指定的一个区域 中查找某一指定的值,并由此返回该值相对应当前行中指定列处的数值。此招还有相应的变化,分别为lookup和Hlookup两式。当查找的数据是水平排 列时,可以使用函数 HLOOKUP 代替函数 VLOOKUP。但用到的情况比较少,这里不做介绍。

  例如:你有一个工作表,上面近万项货品名称,每项货品的代码,价格,购买日期等。如你要做另一份报表,且其中部分货品在这份表中己有数据,则可以利用此招,只输入货品的名称或者代码,其余的让电脑自动查找并返回相应的价格,购买日期等。

  使用语法

  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。

  应用示例:



   上图中,为方便比较,我将原始数据区域放在了同一工作表中(E1:F5),实际使用时,原始数据可以在不同的工作表,甚至不同的工作簿(即不同的 Excel文件)。当被查找的内容与原始内容在不同的工作表,table_array前面需加上工作表的名称,写法为 “表名! ”区域范围,如“Sheet2!$A$1:$B$12”,而若在不同的工作簿,则还得加上文件名,如“[文件名]sheet1!$A$1:$B$12”。

  详细解释

  公式“=Vlookup(A2,$E$2:$F$5,2,FALSE)”中A2表示要 查找的值为A2单元格的内容,即“Apple”, “$E$2:$F$5”告诉电脑,应该去$E$2:$F$5这个数据区域中查找,“2”表示找到后,应传回该区域第二列的值,即数量列,最后 “FALSE”参数系统,查找区域内容未进行排序,需使用精确查找,找不到就算了,不返回近似匹配值。

  特别要注意的是,通常我们 都是使用鼠标拖动的方法来填充公式,而拖动时,Excel对公式中区域的引用,处理方法是不一样的。如果是相对参照,即栏名列号前没有“$”符号,则 Excel会对该区域作相对位移,如上栏是E2:B5,拖到下栏后,即会自动成为E3:B6,这种处理方法在很多公式中是必要的,但在这个公式中却是致命 的,因为它更改了查找的原始数据的区域,导致实际上包含有的数据,因己不在查找的区域中而漏网。这也是很多用户在实际应用中犯的错误,引致查找结果不真 实。要解决这个问题,我们可以利用Excel对区域引用的第二种方法:绝对参照。即在栏名列号前加上“$”,这样,系统就不会作相对的位移,无论怎样拖, 区域范围都不变。(在很多情况下,我们会使用“名称”来代替直接的区域指定方式,使用更为方便。这一内容将在其他章节中介绍)

  相对参照与绝对参照的写法,可以让电脑作自动转换。方法是,先将当前单元格定位在要修改的单元格上,然后在资料编辑列,用鼠标涂黑(英文的说法叫Highlight)要转换的部分,再按“F4”即可。见下图:



  通过上图可以看出,能找到的,系统己自动填入了找到的值,如Apple & cherry,对于找不到的(Plum & Pear),则显示#N/A。

阅读(1217) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~