EXCEL中如何将多个表格中同一个人的数据提取汇总到一张表格中

表格如上图,我要将1-12月这些SHEET表里面相同编号人员的工时做一个汇总。
每张表里面的编号人员都不同,比如123这个编号只在1-9月出现,10-12月的中没有这个编号。
我使用了vlookup将每个表格中链接到的数据进行相加,如果每个表格都有这个编号,那这个公式成立,但是当某个表格没有这个编号的时候,则无法显示数值,变成了N/A。
请问一下各位大神,有什么公式可以实现这种多个表格抓取数据的方式。
谢谢啦!

你可以用等于号把这些表格的数据引到同一张表。然后用vlookup(),查找数据,也可以用多条件求和函数sumifs(),多条件统计函数countifs()计数。

1、如果表少,可以直接用查找公式,相加求和。

2、如果表多,可以先把数据引到同一个表。再用多条件求和计算。

扩展资料


Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具,再加上成功的市场营销,使Excel成为最流行的个人计算机数据处理软件。在1993年,作为Microsoft Office的组件发布了5.0版之后,Excel就开始成为所适用操作平台上的电子制表软件的霸主。

Microsoft Excel是电子试算表程序(进行数字和预算运算的软件程序),与Microsoft Word一样,它在市场拥有统治份额。它最初对占优势的Lotus 1-2-3是个竞争者,但最后它卖得比它多、快,于是它成为了实际标准。它适宜Windows和Macintosh平台。它的主要竞争者是OpenOffice.org Calc、AppleNumbers和CorelQuattro Pro。

countifs语法

countifs(criteria_range1,criteria1,criteria_range2,criteria2,…)

criteria_range1为第一个需要计算其中满足某个条件的单元格数目的单元格区域(简称条件区域),criteria1为第一个区域中将被计算在内的条件(简称条件),其形式可以为数字、表达式或文本。例如,条件可以表示为 48、"48"、">48" 、 "广州" 或 A3;

同理,criteria_range2为第二个条件区域,criteria2为第二个条件,依次类推。最终结果为多个区域中满足所有条件的单元格个数。

说明

Excel2007中新增函数,为countif函数的扩展。用法与countif类似,但countif针对单一条件,而countifs可以实现多个条件同时求结果。

参考资料来源:百度百科:Excel百度百科:countifs语法

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2019-10-10

1、首先将你1-12月中的内容都贴在一张表格里面,竖向贴(不管当月你想要统计的员工编号是否出现),若是你仅仅是想要统计员工每个月的总工时,那么可以仅仅贴“编号”和“工时”字段数据即可,可放在同一张表格的空白处,也可以放在其他空白表格中;

2、在你需要统计的表格中,选择你需要统计编号人员的“总工时”相对应的单元格,点击“fx”按钮,将会出现以下对话框,从跳出来的对话框中选择“sumif”公式,若是列表中没有这个函数,可在“查找函数”中输入“sumif”进行查找;

3、选择“sumif”点击“确定”后,跳出以下对话框。在如图的对话框中,“区域”选择刚刚汇总数据的“编号”列(选一整列),“条件”选择需要统计统计的人员编号(选一个单元格数据),“求和区域”选择刚刚汇总数据的“工时”(选一整列)。然后点击“确定”按钮;

4、点击“确定”,就能统计出编号为“123”人员的总工时。

扩展资料:

SUMIF函数是Excel常用函数。使用 SUMIF 函数可以对报表范围中符合指定条件的值求和。Excel中sumif函数的用法是根据指定条件对若干单元格、区域或引用求和。

sumif函数语法是:SUMIF(range,criteria,sum_range)

sumif函数的参数如下:

第一个参数:Range为条件区域,用于条件判断的单元格区域。

第二个参数:Criteria是求和条件,由数字、逻辑表达式等组成的判定条件。

第三个参数:Sum_range 为实际求和区域,需要求和的单元格、区域或引用。

当省略第三个参数时,则条件区域就是实际求和区域。

本回答被网友采纳
第2个回答  推荐于2017-10-15
将这些文件copy到一个文件夹(只有这些Excel,且若打开某一文件,数据就能看见——即不用点其他sheet),建一新Excel,也存到该文件夹。仅打开该新Excel,按Alt+F11,左边窗口右键点,插入模块,在右边窗口粘贴如下代码:

Sub Find()
Application.ScreenUpdating = False
Dim MyDir As String
MyDir = ThisWorkbook.Path & "\"
ChDrive Left(MyDir, 1) 'find all the excel files
ChDir MyDir
Match = Dir$("")
Do
If Not LCase(Match) = LCase(ThisWorkbook.Name) Then
Workbooks.Open Match, 0 'open
ActiveSheet.Copy Before:=ThisWorkbook.Sheets(1) 'copy sheet
Windows(Match).Activate
ActiveWindow.Close
Match = Dir$
End If
Loop Until Len(Match) = 0
Application.ScreenUpdating = True
End Sub

按F5执行此宏,文件copy完成。

然后可以用sum(sheet12:sheet30!A1)汇总了。
如果数据只有几列的话,可以直接用宏copy到一张工作表中。
第3个回答  2015-07-14
  每个表的人名顺序可能不同,最好就是用vlookup(),出现错误可以套用函数iferror()(2003以上版本可以用),如:
  =iferror(vlookup(a1,1月!a:z,2,0),0)
  当出现查不到时,就会显示0,要是在2003里使用可以把公式变一下。
  =if(iserror(vlookup(a1,1月!a:z,2,0)),0,vlookup(a1,1月!a:z,2,0))追问

谢谢你,使用iferror可以避免出现查询不到编号时结果变成N/A,然后使用十二个iferror(vlookup(a1,1月!a:z,2,0),0)就可以提取出所有该编号的数值,并进行汇总,加上一个加号就好了。
但是还是不够简洁,不知道还有没有更好的办法,没有其他的回答的话,就采纳。

追答

能用就行,因为每个表顺序不同,现在的公式就是最好的。如果顺序一样,汇总可以用这个公式:=sum(1月:12月!b1)

这个公式就能把12个月的所有b1单元格求和。

本回答被提问者采纳
第4个回答  2021-04-01

相似回答