用VBA可以做,类似的示例

EXCEL 如何筛选出符合条件的数据并自动填充到新表里??

www.zhihu.com图标

步骤如下:

1、将销售数据按照产品分类汇总后,点击截图中框出的【选项】→【显示报表筛选页】,即可把每一类都生成一个单独的sheet页。

2、接著用一个工具将各个sheet页拆分成多个excel表,即可得到你想要的。工具介绍如下:

有一个APP叫做「Merge Excel Files」,主要功能如下:

合并excel表中的多个sheet页到一个sheet页中,还可选择垂直合并(从上到下)或者水平合并(从左到右);

②拆分excel表中的多个sheet页到多个excel表中(即一个sheet页为一个excel文件);

③合并多个excel表到一个excel表中;

题主的问题是「Excel中有好多个sheet,如何将这些sheet内的数据汇总到一张表中?」,即上述软体功能的第1条。现在拿我这边的一个「订购」表实际操作一下,目的是合并「订购」表中的sheet1、sheet2以及sheet3为一个sheet页。具体操作如下:

a、首先将数据导入到「Merge Excel Files」中如下图所示区域。

b、我这边是选择的垂直合并,即从上到下合并数据。然后点击添加所有文件,即将我们需要合并的三个sheet页都选择合并。如下图所示。

c、最后点击菜单栏的「merge excel」按钮,合并并导出最终合并文件即可。

Merge Excel Files

软体的获取方式如下:可自行网上搜索下载或者留言发送。


数据透视表啊。

用插入数据透视表的方法,分分钟完成分类汇总,然后在数据透视表中点击各类的数据,立即生成该类别的明细。

举个栗子:

这是原始数据

这是生成的数据透视表

双击每个类别的数量,比如类别三的31,立即在一个单独的sheet中生成这个类别的明细表:

在单独的工作表中生成类别三的明细

如果我的回答对您有帮助,请随手点赞,如果还有问题,可以在评论中继续讨论。


EXCEL弄这个貌似要手动或者VBA?反正很麻烦

要是我就会导入到ACCESS里面,然后建立查询,使用「生成表」的功能,再全部导出成EXCEL表


不用VBA、不用手动也能轻松解决!

可以用Alteryx来解决很多Excel中无法解决或者很难解决的问题。多数据表的合并、数据分拆为不同Excel文件在Alteryx里都能轻松实现。

Alteryx在国外非常流行,全球数百万的数据分析师都在使用Alteryx解决数据分析问题,而且Alteryx面向中国用户已推出中文版,试用版地址:www.alteryx.cn。建议国内的分析师都体验和学习一下Alteryx,它会打开一扇数据分析的神奇之门!


肯定要编写vba代码。百度一下,有不少。


用数据透视表来可以实现,【选项】→【显示报表筛选页】


Sub main()
Dim d
Set d = CreateObject("scripting.dictionary")
Dim arr
Dim k
Dim i As Long, r As Long
Application.ScreenUpdating = False
Application.SheetsInNewWorkbook = 1
Dim wk As Workbook
Dim sh As Worksheet
With Sheets("明细表")
arr = .Range("a1:f" .Cells(.Rows.Count, 1).End(xlUp).Row)
For i = 2 To UBound(arr)
If Not d.exists(arr(i, 1)) Then
d(arr(i, 1)) = ""
End If
Next i
For Each k In d.keys
arr = .Range("a1:f" .Cells(.Rows.Count, 1).End(xlUp).Row)
r = 1
For i = 2 To UBound(arr)
If arr(i, 1) = k Then
r = r + 1
arr(r, 1) = arr(i, 1)
arr(r, 2) = arr(i, 2)
arr(r, 3) = arr(i, 3)
arr(r, 4) = arr(i, 4)
arr(r, 5) = arr(i, 5)
arr(r, 6) = arr(i, 6)

End If
Next i
Set wk = Workbooks.Add
Set sh = wk.Worksheets(1)

sh.Range("a1").Resize(r, 6) = arr
wk.SaveAs ThisWorkbook.Path Application.PathSeparator k ".xlsx"
wk.Close
Next k
End With
Application.ScreenUpdating = True
End Sub


推荐阅读:
相关文章