乐山水泥渗水管:EXCEL合并多个工作表(提取工作表数据)

来源:百度文库 编辑:偶看新闻 时间:2024/04/29 00:56:24
EXCEL合并多个工作表(提取工作表数据)2010-12-27 16:08

   在工作中,我们常常会遇到如下问题:

    1. 需要将两个工作表合并到一个。

    2. 需要从一个工作表中提取某列的部分数据到另一个工作表中。

 

情况一:A、B两个工作表的数据的行数、排序等内容完全一样,只是列数不同。

解决办法:

    问题1:最简单的方法,就是将A工作表与B工作表不同的列复制到B工作表中空白列即可。

    问题2:最简单的方法,就是将A工作表中某行与B工作表对应数据行的数据复制到B工作表相应列的空白行中即可。

    当然,以上是最简单的情况下的最简单办法。只是复制粘贴即可。

 

情况二:A、B两个工作数据行不同,A数据多,B数据少,A有包含B所需要的数据。需要从A中提取需要的数据到B中。

    针对此问题,问题1和问题2是用同一个方法来操作。只不过,一个是提取一列,另一个可能是提取多列。所以,我们以提取一列来操作。多列的情况,则是可以举一反三来做的,就不一一列举了。

 

    为了让大家更好的理解,笔者准备了两个示例工作表,按步骤展示操作。


图1  sheet1工作表

  
图2  Sheet2工作表

     从图中可以看出:sheet1工作表中是某学校某年级各班级学生成绩表,包含学生考号、班级、姓名、语文、英语、数学、物理、化学、政治、历史、地理、平均分、年级名次、班级名次共15列。按考号从低到高显示学生信息(这里只显示了25行,实际有1500多个学生的考试数据)。

    Sheet2工作表中这些学生中语文成绩超过100分的学生考号、班级、姓名、语文成绩共4列,这里按语文成绩从高到低排序显示学生信息(这里只显示了25行,实际有50个学生的考试数据)。

    我们想了解一下,这些语文成绩都超过100分的50名学生在年级中名次是多少?!我们要如何操作呢?

    第一步,在Sheet2表的E列(第5列)的E1位置输入表标题:名次。

    第二步,在Sheet2表的E列(第5列)的E2位置输入:

=VLOOKUP(A2,Sheet1!$A$2:$N$2000,14,TRUE)


图3  Sheet2表E2位置公式和数据

     第三步,将光标移到E2右下角,当显示为“+”时,双击鼠标左健,整列数据即完成。


图4  Sheet2表E3位置公式和数据

     到此,从Sheet1中提取相应学号学生的年级名次数据,已经完成了。

 

     是不是很简单呢?!--唔,我知道你在怀疑这些提取的数据是否正确的问题。

     那么我们将Sheet1中的数据整体复制到Sheet3中,再按语文列从高到低排序。可以看到名次列与考号对应的值与上图(图4)所示表中一致。如下图所示:


 图5  按语文成绩排序过的成绩表

 

   现在再解释你有关刚才输入的公式的疑惑。EXCEL原公式结构为:

VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) 

 

    我这里输入的是:=VLOOKUP(A2,Sheet1!$A$2:$N$2000,14,TRUE)

说明:

   A2表示根据Sheet2表与Sheet1表中第一列值进行对比,找相同的名称来匹配(所以,这一列应该是唯一的)。注意:值须按值增逆排列(笔者在操作时,有一次打乱考号顺序操作,结果获得的名次与实际不符,据分析是EXCEL按与A列(考号)匹配的值存在E列(名次)中,未排序。即提取的值是未经排序后的值。因此建议一定要排序来提取值)。

    Sheet1!$A$2表示Sheet1表的A列第2行(即A2)开始搜索对比。

    $H$2000表示Sheet1的N列第2000行结束。如果你的行数比这大,要增加(注:因本表中只有1500多条数据,用2000有余。可以写精确值,也可以写稍大一些值。但不能低于有值的行数,否则可能有些数据查不到)。

    14表示提取的是第14列的值,即N列。

    TRUE表示显示精确值,如果Sheet1中找到值,则会显示:#REF!。

----------------------------------------------------------------------------

注:以上为在EXCEL2007中同一个EXCEL文件的不同工作表中操作。

另:为了避免出错和核对数据,不建议直接在原数据上进行操作,建议是复制到新文件中进行以上操作。