excel怎样提取多个工作簿中的同一行数据?

比如图一,我现在有上百个excel表格,所有表格打开都是图二(只是表格日期不同),想要把上百个表格的第二行提取成为图三的效果。目前来说,我是把每个表格的第二行复制粘贴成图三,但太慢,而且易错,求方法,谢大神

Excel提取多个工作簿中的同一行数据,可以使用INDIRECT函数配合其他函数组合公式来完成。

但是在取数的时候,必须打开所有的工作簿,INDIRECT函数才会正确计算。

也可以通过VBA编程来完成,如果为了方便的话,那么需要的代码就会复杂些,如果简单点的话,那么可以打开所有的工作簿再运行简单代码,也可以分批运行,代码如下图:

代码图

代码解释:

For语句后面的表示循环2次,1to2,表示1到2,如果是100个工作簿,都打开了,那么就把2改成100。

注意:汇总的工作簿必须是第一个被打开,那么For后面就是i=2 to 100

温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-09-21
如果上百个表,建议用VBA来解决。用indirect函数的话,首先需要知道文件名,规范的话还好,不规范就难写了 。而且,indirect函数要求数据源表全打开才可以的。
用VBA的话,可以自动遍历本目录下所有工作表。也可以设计成可以选择文件夹的形式确定目录。然后自动提取。如果电脑配置不是很低,表打开速度比较快的话, 几百张表一两分钟就提取完了 。全程不用手工干预。如果代码写的没有问题,就不会出错。
写代码需要原表样表。不免费。需要的话可以把源文件发过来。
hyc11072
第2个回答  2020-09-20
选中全部csv文件,Ctrl+回车打开,A2输入公式:
=INDIRECT("'"&TEXT(WORKDAY("2020-08-03",ROW(A1)-1),"emmdd")&"_1.csv'!"&"R2C"&COLUMN(A1),0)
右拉、下拉,然后Ctrl+A全选,选择性粘贴成值。
如果电脑配置较低,可先在单元格布满公式,分批打开csv文件,分批复制粘贴。本回答被网友采纳
相似回答