用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


推薦閱讀:
相关文章