如何根据这些工作簿的内容构造出新的工作簿?

我有15个工作簿,每个工作簿有6个工作表(sheet1--sheet6),其中每个
工作簿的sheet6为土建预算表,15个sheet6分别代表15个单位的土建预算
表。每个sheet6的栏目(列)结构相同,行数略有不同。以下举例列出两
个具有相同栏目(列)结构而行结构不尽相同的表。
表一:

子目名称 价值(元)
工程量 单价 合价
基础工程
平整场地 5.526 128.25 708.7095
挖运土石方M3 4.45 5348.75 23801.9375
回填土夯填M3 1.05 772.7 811.335
垫层混凝土10M3 3.55 1672.6 5937.73
砖基础 10785 1752.05 4879.46
...

表二:

子目名称 价值(元)
工程量 单价 合价
一、地面工程
平整场地 5.526 128.25 708.7095
挖运土石方M3 4.45 5348.75 23801.9375
防潮水泥地00M2 0.25 3481.3 870.325
瓷质地砖地00M2 0.12 4938.27 592.5924
混凝土摆墩2.15 1200 2580
...
现在需要造一个土建预算总表,栏目(列)结构与各个sheet6的栏目(列)结构
相同,行的内容则包括了各个sheet6所具有的行,某列某行的值为所有sheet6相
应列相应行的值之和,例如,总表的“工程量”列“平整场地”行的值应为
book1的sheet6的“工程量”列“平整场地”行的值
+book2的sheet6的“工程量”列“平整场地”行的值
+book3的sheet6的“工程量”列“平整场地”行的值
+...
+book15的sheet6的“工程量”列“平整场地”行的值

其中还要判断bookn(n=1,2,2...15)有无“平整场地”行,若无则以零算。

请问要造出总表在Excel里应如何操作?我是Excel的新手,请各位大侠多指教!

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

公式应该会输入吧?

=[book1]sheet6!单元格名称+......

至于判断列的存在,需要vlookup函数

VLOOKUP
参阅

在表格或数值数组的首列查找指定的数值,并由此返回表格或数组当前行中指定列处的数值。当比较值位于数据表首列时,可以使用函数 VLOOKUP 代替函数 HLOOKUP。

语法

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。

示例

在上述工作表中,区域 A4:C12 的名称为 Range:

VLOOKUP(1,Range,1,TRUE) 等于 0.946

VLOOKUP(1,Range,2) 等于 2.17

VLOOKUP(1,Range,3,TRUE) 等于 100

VLOOKUP(.746,Range,3,FALSE) 等于 200

VLOOKUP(0.1,Range,2,TRUE) 等于 #N/A,因为 0.1 小于 A 列的最小数值

VLOOKUP(2,Range,2,TRUE) 等于 1.71

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

SUM('C:\filepath\[Book1.xls]Sheet1'!$B$2+'C:\filepath\[Book2.xls]Sheet1'!$B$2+........)

B2就是你所要相加的单元格
不知道你明白了没有
---------------------------------------------------------------

同一工作簿中可以用合并计算
然后你再用公式合并各个工作簿的数据
---------------------------------------------------------------

+1
---------------------------------------------------------------

设平整场地在A列,工程量在B列,数据从第4行开始,到1000行为止:
=VLOOKUP(“平整场地”,'D:\[book1.xls]sheet6'!$A$4:$B$1000,2,FALSE)+VLOOKUP(“平整场地”,'D:\[book2.xls]sheet6'!$A$4:$B$1000,2,FALSE)+VLOOKUP(“平整场地”,'D:\[book3.xls]sheet6'!$A$4:$B$1000,2,FALSE)+......
其余类推。

Published At
Categories with 服务器类
Tagged with
comments powered by Disqus