1、汇总表与几个分表放在同一个文件夹下,该文件夹下不要放置与此无关的Excel工作簿。 2、每个分表的汇总表名称都是“分类汇总表”,且都是同样的位置(比如B4单元格对应同样项目的数据) 3、汇总数据时,请将各个分类的工作簿都打开。 定义名称: Myname =GET.WORKBOOK(16)&T(NOW()) ——取得汇总表所在工作簿名称 Mypath =REPLACE(CELL("filename",!A3),FIND(Myname,CELL("filename",!A3))-1,255,) ——取得汇总表所在的文件夹路径 Files =FILES(Mypath&"*.xls") ——取得该路径(文件夹)下所有工作簿名称数组 Row =ROW(INDIRECT("1:"&COLUMNS(Files))) ——取得1至包含汇总表的工作簿个数的等差序列 Books =LOOKUP(SMALL(IF(Row<>MATCH(Myname,Files,),Row),ROW(INDIRECT("1:"&ROWS(Row)-1))),Row,Files) ——取得除汇总表外的工作簿名称数组 (Lookup生成内存数组:请参考gvntw版主[原创]LOOKUP()在处理内存数组中的应用,以及 正式竞赛题[ Excel 函数与公式 ] [第12期_2] 看看你的“内存”有多大 [
中相关的用法和解释) 汇总公式=SUMPRODUCT(N(INDIRECT("["&Books&"]分类汇总表!RC",))) 其中N()将三维引用的维数降低,以便求和。 请参考:gvntw版主的只用函数实现分表合并与总表拆分。 公式解释请参考(第136楼): [
附件:(注意,要把所有源数据表打开)
CaKV68pC.rar
(68.7 KB, 下载次数: 122)
[此贴子已经被作者于2006-11-25 12:31:28编辑过] |