中企动力 > 商学院 > excel多工作表汇总
  • ?

    合并一个EXCEL多个sheet的内容到一个汇总sheet

    姚乾

    展开

    继上篇大猫为大家介绍了合并多个工作簿的VBA代码之后,这篇我们继续为大家介绍一个实用的技能。

    将一个excel文档中的多个工作表进行合并为一个工作表

    打开要合并的工作簿

    按alt+F11进入VBA工程界面

    新建一个模块

    复制下面的代码,然后执行即可

    作用结果是:

    它会新建一个叫做“汇总”的工作表,然后把当前工作簿里的所有Sheet里有数据的内容都复制到“汇总”表里。提示:如果数据表里的内容没有表头的话需要把StartRow = 2改成StartRow = 1

    Function LastRow(sh As Worksheet)

    On Error Resume Next

    LastRow = sh.Cells.Find(what:="*", _

    After:=sh.Range("A1"), _

    Lookat:=xlPart, _

    LookIn:=xlFormulas, _

    SearchOrder:=xlByRows, _

    SearchDirection:=xlPrevious, _

    MatchCase:=False).Row

    On Error GoTo 0

    End Function

    Sub MergeSheets()

    Dim sh As Worksheet

    Dim DestSh As Worksheet

    Dim Last As Long

    Dim shLast As Long

    Dim CopyRng As Range

    Dim StartRow As Long

    Application.ScreenUpdating = False

    Application.EnableEvents = False

    '新建一个“汇总”工作表

    Application.DisplayAlerts = False

    ActiveWorkbook.Worksheets("汇总").Delete

    Application.DisplayAlerts = True

    Set DestSh = ActiveWorkbook.Worksheets.Add

    DestSh.Name = "汇总"

    '开始复制的行号,忽略表头,无表头请设置成1

    StartRow = 2

    For Each sh In ActiveWorkbook.Worksheets

    If sh.Name <> DestSh.Name Then

    Last = LastRow(DestSh)

    shLast = LastRow(sh)

    If shLast > 0 And shLast >= StartRow Then

    Set CopyRng = sh.Range(sh.Rows(StartRow), sh.Rows(shLast))

    If Last + CopyRng.Rows.Count > DestSh.Rows.Count Then

    MsgBox "内容太多放不下啦!"

    GoTo ExitSub

    End If

    CopyRng.Copy

    With DestSh.Cells(Last + 1, "A")

    .PasteSpecial xlPasteValues

    .PasteSpecial xlPasteFormats

    Application.CutCopyMode = False

    End With

    Next

    ExitSub:

    Application.GoTo DestSh.Cells(1)

    DestSh.Columns.AutoFit

    Application.ScreenUpdating = True

    Application.EnableEvents = True

    End Sub

  • ?

    Excel | SUM、SUMIF+INDIRECT——求和项排序相同与不同的多工作表数据汇总

    魂刃斩

    展开

    问题情景

    很多电商、工资等数据统计的时候都会遇到这样的问题:数据以不同的部门,或者不同的月份,也或不同的年份等情况分布在不同的工作表里,经常要求对分表根据相同数据项对数据进行汇总统计。

    示例数据如下图:

    共12月的数据,无需合并,直接汇总到“汇总”工作表“年销售业绩”列中。

    注意:各分表的结构一致,姓名都在B列,求和的数据都在C列。

    关键操作第一种情况:所有表“姓名”排序一致

    这种求和方法很简单,只要在“汇总”表C2单元格输入公式“=SUM('*'!C2)”就可以了,回车以后,公式自动变成:=SUM('1月:12月'!C2)。

    第二种情况:所有表“姓名”排序不一致

    这种情况下求和稍有麻烦,我们一步一步分析:

    第一步:

    如果是仅对一个表,只需要Sumif函数直接求和即可,比如:

    =SUMIF('1月'!$B$2:$B$37,汇总!B2,'1月'!$C$2:$C$37);

    第二步:

    现在是对12个表汇总,需借助INDIRECT函数生成对多个表区域的引用,即是:

    INDIRECT(ROW($1:$12)&"月!$B$2:$B$37")--引用每个表的B列姓名数据区域

    以及

    INDIRECT(ROW($1:$12)&"月!$C$2:$C$37")--引用每个表的C列销量数据区域。

    第三步:

    写入Sumif函数,即是:

    SUMIF(INDIRECT(ROW($1:$12)&"月!$B$2:$B$37"),汇总!B2,INDIRECT(ROW($1:$12)&"月!$c$2:$c$37"))

    第四步:

    INDIRECT函数引用的是一组数,数组求和,最后最外层加Sumproduct函数,即是:

    =SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$12)&"月!$B$2:$B$37"),汇总!B2,INDIRECT(ROW($1:$12)&"月!$c$2:$c$37")))。

    结果如下:

    另:

    本例使用INDIRECT函数产生多维引用,其中:

    使用ROW($1:$12)产生月份序号数组:

    {1;2;3;4;5;6;7;8;9;10;11;12}

    公式中的INDIRECT(ROW($1:$12)&"月!$B$2:$B$37")作为SUMIF函数的range参数,表示每个月销售记录表的$B$2:$B$37区域,共12个区域:

    {"1月!$B$2:$B$37";"2月!$B$2:$B$37";"3月!$B$2:$B$37";"4月!$B$2:$B$37";"5月!$B$2:$B$37";"6月!$B$2:$B$37";"7月!$B$2:$B$37";"8月!$B$2:$B$37";"9月!$B$2:$B$37";"10月!$B$2:$B$37";"11月!$B$2:$B$37";"12月!$B$2:$B$37"}

    同理,公式中的INDIRECT(ROW($1:$12)&"月!$c$2:$c$37")表示每个月销售记录表的$c$2:$c$37区域,作为SUMIF函数的sum_range参数。

  • ?

    Excel多表汇总与 SQL查询语句

    噙泪花

    展开

    同学们好啊 ,首先以实例讲解一下怎样合并多表的数据。

    数据源文件中有三个表,分别是一组、二组、三组,里面有各个销售员的销售数据。

    Step 1、建立连接并获取数据

    点击【数据】选项卡下面的“现有连接”。

    在弹出的对话框中点击左下角的“浏览更多”按钮,找到数据所在的文件,会弹出以下对话框。

    任意选择一个表并点击“确定”按钮就可以了,因为后面还要更改成查询语句。

    在弹出的对话框中可以选择显示列表或者直接创建数据透视表,并且可以指定数据显示的位置。

    这里选择“表”,这样我们就建立了链接并初步导入了数据。

    Step 2、修改查询语句

    在上一步中得到的数据区域,点击右键,选择“表格”-->“编辑查询”。

    在打开的对话框中输入查询语句:

    Select "一组" as 数据来源,* from [一组$] union all

    Select "二组" as 数据来源,* from [二组$] union all

    Select "三组" as 数据来源,* from [三组$]

    这样就完成了多表汇总,是不是感觉很简单呢?

    最后和大家分享一些常用的SQL查询语句,到时候可以适当修改一下代码中的工作表名称,就可以应用到自己的工作中了。

    常用查询SQL语句示例

    1、查询名称为Data的表中的所有字段的数据

    Select * from [Data$]

    注意:Excel工作表名称后面需要加上美元符号$,并且需要放到方括号[]中;星号*表示查询所有字段的数据。

    2、查询名称为Data的表中的“销售员”和“销量”两个字段。

    Select [销售员],[销量] from [Data$]

    注意:字段名称可以不加方括号,但是当字段名称中间有空格、字段名是SQL语句中的保留名称等特殊情况时就必须要加方括号;在查询时,只要表中有这些字段就可以了,不用管这些字段的前后顺序。

    3、查询名称为Data的表中销售员Lily的销售信息

    Select * from [Data$] Where 销售员="Lily"

    注意:需要指定条件时就用Where语句,多个条件用And、Or连接,分别表示并且、或;条件格式为[字段名]=“具体内容”,操作符可以是=、>、=、In,比如:销售员 in ("Lily","Cherry")。

    4、查询名称为Data的表中销售员Lily的销售总额

    Select 销售员,Sum(销量) as Lily的总销量 from [一组$] Where 销售员="Lily" group by 销售员

    注意:进行汇总的时候,可以直接用Sum、Group by;在select中出现的字段,如果这个字段是汇总字段,则这个字段必须加到Group by里面;Sum函数是求和,也可用其他功能函数,比如:平均值AVG、计数Count、最大值Max、最小值Min;As可以重命名字段。

    5、查询名称为Data的表中D5:F200区域的数据中销售员和销量两个字段

    Select [销售员],[销量] from [Data$D5:F200]

    注意:在Data$后面加上区域的地址,如果不知道最后一行是多少,或者为了让数据区域是动态的,可以省略最后一行的行号,如下。

    Select [销售员],[销量] from [Data$D5:F]

    6、查询名称为一组、二组、三组三个表中的所有数据

    Select "一组" as 数据来源,* from [一组$] union all Select "二组" as 数据来源,* from [二组$] union all Select "三组" as 数据来源,* from [三组$]

    注意:有需要合并的表,就用union all连接起来,一般最多不能超过50个。

    在输入SQL语句时,各种符号一定要在英文状态下输入,否则你可能半天都检查不出来错在哪儿;如果使用星号*,那几个表中的数据字段顺序要一致、数据区域大小要一致,如果直接指定字段名称,则不受此限制。

    7、查询名称为一组、二组、三组三个表中销售员Lily和David的所有数据

    select * from (Select * from [一组$] union all Select * from [二组$] union all Select * from [三组$]) where 销售员 in ("Lily","David")

    注意:可以在一个查询语句的外面在嵌套上另外一个查询语句,表示从查询结果中再次查询。

    8、查询名称为Data的表中的所有字段的数据并按照日期排序

    Select * from [Data$] order by 日期

    注意:排序用order by,默认是升序,加上DESC表示降序,DESC是descending的缩写。降序示例:order by 日期 Desc

    End.

    文章转载自:Excel轻松学

  • ?

    30秒搞定多表汇总!这个Excel技巧一般人我不告诉他!

    岑凡柔

    展开

    60秒get一个HR实用小技巧

    在用EXCEL做统计表时,经常会遇到一个问题:相同项目的工作表有N个,需要汇总时,该怎么办?难道要一个个地Ctrl+V吗?

    当然不是了!如果要使用那么累的方法,EXCEL就一点都不智能了!贴心的小薪今天就来教大家一个简单的方法,让宝宝们能快速hold住多个工作表的合并!

    我们先看看需要合并的工作表长啥样

    工作表1

    工作表2

    类似的工作可能会有很多,除了上述举例的各地区的销售量表,还可以是员工的其他信息表,小薪就不一一举例了,宝宝们各自灵活套用吧!

    下面我们开始正式讲解,如何快速实现多表合并。

    新建一个的工作表,命名为“汇总”(或其他任何你需要的名字)

    在“汇总”表的A1单元格,选择“数据”——“合并计算”

    “函数”在此时选择“求和”(可根据自己需要,自行选择其他函数)

    “引用”处,我们选择需要汇总的各个工作表里的对应数据

    5.选择下图中的“+”,添加我们刚刚选择好的引用位置

    6.重复第4步和第5步,添加完所有我们需要汇总的工作表数据

    7.标签位置选择默认的“首行”、“最左列”,然后选择“确定”

    下面我们看一下完整动图演示

    以上就是小薪交给大家的“多表合并”的小技巧啦!希望大家活学活用,让“合并计算”完美代替Ctrl + V !

    -END-

  • ?

    EXCEL多表资料提取汇总方法,值得收藏

    聋五

    展开

    EXCEL多表资料提取汇总,如果你还在复制粘贴,那就太落后了;

    如果领导给你一份含有公司所有人简历的资料表,让你把所有人员的信息提取汇总到一个表中,公司有几十或几百人,只靠复制粘贴,恐怕一天都不一定能完成;

    今天我们来讲一下多表资料提取汇总的方法,分三步完成;

    本教程基于excel2016;

    首先,各人员姓名所在的工作表格式必须相同;

    在“汇总”表内设置好表头;

    1.指定名称

    【公式】--【定义名称】--【名称】处随便命一个名称ML,【引用位置】处输入=GET.WORKBOOK(1);

    2.提取工作表名称

    在O3单元格输入=INDEX(ML,ROW(A1)),向下填充;

    这样各工作表对应的名称就提取出来了;

    3.提取资料

    在B2单元格输入=INDIRECT($O3&"!B2"),B2姓名所对应的名字在“周小林”表中在B2单元格;

    C2输入=INDIRECT($O3&"!D2"),C2性别所对应的性别在“周小林”表中在D2单元格;

    D2输入=INDIRECT($O3&"!B3"),D2民族所对应的民族在“周小林”表中在B3单元格;

    下同

    将B2到N2单元格分别输入完成后,选择B2:N2,下拉填充;

    注意点:

    1)日期列数字,选中,设置单元格格式,日期

    2)选中B2:N4区域,复制,右键选择性粘贴,数值,就可以删除O列;

    3)因GET.WORKBOOK(1)是宏表函数,所以在完成后,将工作表“另存为”后缀为“xlsm”格式或者“启用宏的工作薄”;

  • ?

    超重量级的Excel多表“合并及汇总”功能,99.99%的人都没用过!

    史蒂文

    展开

    前言:最近总有同学提问

    怎么能合并多个工作簿?多个Excel表格汇总到一个表中?怎么把表分发给其他人做调查,收回后能批量合并到一个表中?

    合并多个表的确是一个难题,好象除了VBA也没有什么好办法,即使是新兴的power query也很难完成固定位置合并的问题。其实兰色在06年就发现了个很神奇的工作簿合并的功能,所以今天再把这篇旧文翻出来,希望能帮到大家。

    这个功能是小编昨天无意中发现的,为什么称它为超重量级Excel功能,小编先给你演示个操作。

    【例】在一个文件夹中有N个公司的Excel格式报表,需要把这些报表的数据合并到“报表.xlsx”中。

    只是点了一个按钮,然后选取了要合并的文件,刷刷刷,各公司的数据已全部合并过来了,是不是很神奇!(合并多个文件的多个工作表也适用)

    小编在合并过程中,使用了一个在Excel中隐藏很深的功能:比较和合并工作簿

    我们先把它揪出来:

    文件- 选项 - 快速访问工具栏 - 不在功能区域中的命令 - 找到“比较和合并工作簿”

    然后在快速访问工具栏中就可以看到它了,只是它是灰色的。

    它到底怎么才可以用? 和小编一起开始操作吧!

    1、先设置一个报表模板(可以有多个工作表),把格式设置好,然后设置成共享工作簿。

    2、把设置好的模板发放给各公司填写。

    3、收到各公司上缴的报表,放在一个文件夹里。

    4、合并时,点击“比较与合并工作簿"按钮,选取要合并的文件,然后.....如开始动画演示。多个Excel文件的合并瞬间完成!

    在实际工作中,这个功能可以省去非常大的工作量,毕竟把N多个报表汇总到一起是一件多么枯燥又费力的事情。

    但这个功能只是合并而不能汇总。

    别急,小编再教大家一个神技能,多个表格如何汇总!

    多个Excel表格汇总到一个表中,有一个神秘技巧帮你实现!

    如下图所示工资表中,含有多个月份的数据。要求在汇总表中把所有月份的数据汇总到一起。

    操作步骤:

    1、数据选项卡 - 现有连接 - 浏览更多。

    2、找到当前操作的excel文件。

    3、选取任一个表格名称

    4、【导入数据】窗口中,显示方式选“数据透视表”,放置位置选工资表A1单元格(也可以选新工作表)

    5、选取刚创建的数据透视表,然后点击 数据透视表工具 - 选项 - 更改数据源 - 连接属性。

    6、把下面的代码粘贴到命令文本框里。

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

    select '3月' as 月份, * from [3月$] union all select '4月' as 月份, * from [4月$]union all select '5月' as 月份, * from [5月$]

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

    代码说明:

    1) 具体的SQL语句一言两语也说不清楚,同学们只需要按下面的模式套用即可。有多少表,连接多少个。

    Select * from [表1$] union all Select * from [表2$] union all Select * from [表3$]....union all Select * from [表N$]

    2) '3月' as 月份: 是为三个表创建一个共同的字段(月份),其中引号内3月为自定义字符,用来区分工作表,只是不一定要和工作表名称一致。月份是数据透视表要用的字段名,也是自定义的。中间用 as 连接,放在select 之后 *号之前。如果不需要为三个表创建共同字段名,此部分可以省略。

    7、连接完成!下面就是对数据透视表的基本操作,添加行、列标标签和数据标签。

    8、调整格式和修改字段标题。最终效果如下图所示。

  • ?

    Excel多工作表汇总,这个功能让你快速达成

    嗅楚

    展开

    Excel多工作表如何汇总,这是职场中经常碰到的问题之一。有多种方法可以达到这个效果,今天给大家带来一个简单的操作——合并计算。

    合并计算在哪?

    在【数据】选项卡,【数据工具】功能区。

    1、标题一致的多表汇总

    分表如下:

    各工作表标题一致的情况下,首先将光标定位在汇总表格的左上角单元格,然后再进行操作。光标定位在“引用位置”的文本框中选择各工作表的表格范围,然后点击“添加”。“首行”或“首列”根据情况选择,本例中即要首行的标题,也要首列的员工编号,所以都选择。

    最终完成效果如下:

    2、标题不一致的多表汇总

    如我们要将4个月的明细汇总到一个工作表中,各工作表除员工编号标题外,其它标题不同。

    操作方法一致,最终效果如下:

  • ?

    Excel多工作表数据汇总到一个工作表,其实很简单

    涵菱

    展开

    我们有时候需要将在多个工作表的数据到同一个工作表当中,首先我们需要确认的是这些数据的格式是否具有一致性,如果所有的数据格式都是一样的,那么这个问题就非常好处理了。今天和大家分享的是一键汇总各分表数据到总表。

    照例举个栗子,如下图,一个工作簿,包含多个工作表的格式都是相同,现在需要将各个分表的数据汇总到总表中,如果是你,你会怎么去做?

    数据分别在不同的工作表中,每个工作表的数据格式都是一致的。

    也许你会想到使用数据透视表或者合并计算等方式进行操作。但是你会发现这两种操作方式都有它的不足或者扩展性不强。比如说,当标题行或列是多行(多列)或者存在合并单元格时,也就无能无力了。

    我和你说的是VBA代码来实现这个,有时候就是那么一瞬间的错过,你就不会再遇到啦!

    我们首先看看,下面的动画教程:

    PS:是将分表的数据汇总明细到当前活动的工作表,因此在使用时务必先在需要汇总的表中执行。

    附上VBA源代码

    以上就是今天要和大家分享的技巧,希望对大家有所帮助,祝各位一天好心情!

    唯有不断学习,才能不被淘汰!

    Excel中每一个方法都有特定的用途,不是他们没有用处,只是你不了解或者暂时用不着,建议你收藏起来,万一哪天用着呢?

  • ?

    Excel中SUM函数快速多表汇总,get一个新技能

    装淑女

    展开

    Excel中的SUM函数有一个特殊的表示方法,可以快速对多个表格进行汇总,这个可是很好用的技巧哟。我们继续接上次的例子,假设每个月的销售记录都是一张表,每个月的数据格式都是相同的,如图所示:

    先来看一下第一个最简单的汇总方式,汇总所有月份的邹宇的电视机的销售量:

    =SUM('*'!C2)

    回车后函数变为=SUM('1月:6月'!C2),结果为449,是不是非常简单实用?

    Tips:

    *是通配符,代表所有字符,用在这里的意思是代表除了公示外(汇总)所有表格。如果工作簿中还存在其他工作表,为确保结果的准确性,建议表示为:

    =SUM('*月'!C2)

    以上只是一个很简单的例子,现在我们就来说一个比较实用的,我们将要汇总每个月的总销售量,如图:

    要汇总每个月的销售量,该如何做?

    有些勤劳的小伙伴可能会说了,这很简单呀,直接SUM函数然后分别引用就可以啦。如下所示:

    1月:=SUM('1月'!C:C)

    2月:=SUM('2月'!C:C)

    ……

    6月:=SUM('6月'!C:C)

    当然这也是一种不错的办法,不过作为Excel我们就应该考虑扩展性,假如是12个月?或者是按照销售人员分表,那不得上百个表呀?难道还得一个一个更改公示吗?如果时间充足,那也无可厚非,但是作为懒惰的我是绝对不允许这样的事情发生的。现在每个表格的名称已经知道,那就使用引用呗。如下:

    =SUM("A2""!C:C")

    如下图所示,得到的结果是#VALUE!,警告出错,原因是里面的引用区域仅仅是文本而非区域,那该怎么办呢?

    别急,这时另一个函数INDIRECT就该派上用场了,这个函数可以对文本进行引用,也叫间接引用,也就是说只有通过“小三”才能获得引用,是这样的:

    =SUM(INDIRECT(A3 & "!C:C"))

    结果如图:

    换一个角度来说,INDIRECT就是能把一个单元格中的文本变为区域的引用,其实也很简单的哟。

    是不是一个简单的SUM函数却有很强大的功能?希望大家在函数的学习过程中能够举一反三,争取得到更多的技巧!!

  • ?

    Excel多表汇总?没有比这个更简单实用的技巧了

    Mars

    展开

    关于多表汇总的问题,我在类似的问题中介绍了一种非常好的方法:Power Query(有兴趣的同学,请参考仅需3分钟,轻松帮你搞定Excel多表数据汇总)。下面我来介绍一种更为简单的汇总多表数据的技巧。如何快速汇总下图中的12个sheet中的数据到总表呢?

    一、无链接简单汇总法(各个数据源发生变化,汇总表不发生变化)

    1.选择sheet汇总中的任意空白单元格,依次单击“数据”--“合并计算”,如下图所示:

    2.在弹出的对话框中函数设置为:“求和”。单击引用位置的折叠按钮选择在各个sheet中的数据区域并添加到所有引用位置列表中。勾选标签位置下的“首行”和“最左列”选项,单击确定。

    3.我们将得到如下的汇总表,这时候我们可以删除B列和C列,或者将任意sheet中的B列和C列数据复制粘贴到汇总表中即可。

    二、有链接的数据汇总(汇总结果随数据源的变化而变化)

    此种方式与上面介绍的方法唯一不同的地方就在于多勾选了一个选项,操作技巧都一样,只是在上面设置合并计算对话框时勾选一下:“创建指向源数据的链接”即可。

    得到的结果也会有所不同。

    包含了公式,且前面变成分类汇总的样式。

excel多工作表汇总

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP