Tạo pivottable cho dữ liệu được tổng hợp từ 2 sheet

Liên hệ QC
Rất hay anh Hai Lúa ạh.
Nhưng dữ liệu lớn có vẻ căng (e chưa thử)
12 Name tương đương 12 tháng, mỗi Name tren dưới 100k bản ghi liệu excel có chịu nổi không anh?
Nếu dữ liệu 12 tháng như F1 nơi có thể chơi ăn gian kiểu khác--=0
ví dụ như kết hợp cùng VBA chẳng hạn
 
Ý anh Thương có phải rút ngắn tối đa các bản ghi bằng VBA -> sau đó mới SQL ?
Đã VBA rồi thì không cần SQL xem đây.Chỉ cần vậy thôi(VBA+PIVOTtable)--=0
PHP:
Option Explicit


Sub Getdata_fromsheets()
Dim sh As Object, Data As Range, T As Double
T = Timer
Application.ScreenUpdating = False
Sheets("Temp").Range("3:65000").ClearContents
Sheets("PVT").Range("3:65000").ClearContents
For Each sh In ThisWorkbook.Sheets
  If sh.name <> "PVT" Then
  sh.Range("A4").CurrentRegion.Offset(1).copy
  Sheets("Temp").Range("A65536").End(3).Offset(1).PasteSpecial (12)
  Application.CutCopyMode = False
End If
Next
Call PIVOT_ADD
Application.ScreenUpdating = True
Sheets("PVT").Range("A1") = Timer - T
End Sub


Sub PIVOT_ADD()
Dim PVT As PivotTable, PVT_Data As Range
Set PVT_Data = Sheets("Temp").Range("A2").CurrentRegion
ActiveWorkbook.PivotCaches.Create(xlDatabase, PVT_Data).CreatePivotTable (Sheets("PVT").Range("C12")), "Pivot"
    Set PVT = ActiveSheet.PivotTables("Pivot")
      With PVT
           With .PivotFields("S")
                .Orientation = xlRowField
                .Position = 1
           End With
           With .PivotFields("Paid Date")
                .Orientation = xlPageField
                .Position = 1
           End With
         .AddDataField PVT.PivotFields("OUT"), ".OUT", xlSum
         .PivotFields(".OUT").NumberFormat = "#,##0"
         .TableStyle2 = "OPTION1"
         .RowAxisLayout xlTabularRow
    End With
    ActiveWorkbook.RefreshAll
 End Sub
 

File đính kèm

  • Consol Pivot table.xlsb
    0 bytes · Đọc: 126
Không ổn a Thương ơi.
Như em nói mỗi Name có trên dưới 100k bản ghi, mà 12 name thì hơn cả triệu dòng
theo em hiểu thủ tục get data của Anh là copy dữ liệu về 1 sheet.
1 sheet cũng chỉ có hơn triệu dòng vậy giải pháp này chắc phá sản rồi.
 
Không ổn a Thương ơi.
Như em nói mỗi Name có trên dưới 100k bản ghi, mà 12 name thì hơn cả triệu dòng
theo em hiểu thủ tục get data của Anh là copy dữ liệu về 1 sheet.
1 sheet cũng chỉ có hơn triệu dòng vậy giải pháp này chắc phá sản rồi.
nếu dữ liệu nhiều hơn số dòng của 1 sheet thì lúc đó tôi sẽ cho code chạy từ sheet 1--10 để cho pvt rút gọn dữ liệu, sau đó lấy kết quả ở pvt gán ngược lại sheets nguồn của PVT,
còn 2 sheet còn lại cứ gom nối vào là xong.
với các này thjif đảm bảo bạn có 36 sheet cũng chẳng sao nhé--=0
 
Untitled.jpg
Mọi người cho hỏi mình làm theo hướng dẫn lại báo lỗi này. Mọi người giúp với.
SELECT * FROM huyen
UNION ALL
SELECT * FROM xa

Tks all!
 
Mọi người cho hỏi mình làm theo hướng dẫn lại báo lỗi này. Mọi người giúp với.
SELECT * FROM huyen
UNION ALL
SELECT * FROM xa

Tks all!
Untitled.jpg
 
Bcas nào cho em xin link hướng dẫn về Microsoft Power Query này được không. Em cần xây dựng cơ sở dữ liệu từ 3 sheet trong 1 file.
Em cám ơn
 
Cho em hỏi file của em làm theo bài này nhưng toàn bị báo " This work book contain no visible table. Bác nào giúp em với.
 

File đính kèm

  • Pivot.xlsx
    13 KB · Đọc: 13
Anh @Lê Duy Thương có thể hướng dẫn chi tiết lập Queries để kết nối nhiều bảng lập PivotTable được không ạ?
 
Với bài này bạn gõ đoạn Query như sau:
Lưu ý là phải đặt tên name trước nhé.
Bác làm ơn cho hỏi:
1. Mình dùng Table (Excel 2016) thay cho Name được không ạ?
2. Nếu nhiều hơn 2 Table (cấu trúc, format giống hệt, chỉ khác nhau về số liệu) thì câu lệnh Query như thế nào?
Rất mong được bác chỉ dẫn.
Bài đã được tự động gộp:

Tiếp theo bài trên, kính nhờ anh @Lê Duy Thương và anh @Hai Lúa Miền Tây xem giúp file đính kèm. Cứ mở Query ra thì nó báo lỗi như hình gửi kèm.
Mục đích: Lập Pivot Table từ 4 shet trong file mẫu (thực tế thì có thể nhiều hơn, ít nhất là 12 sheet hoặc hơn) có cấu trúc giống nhau.
 

File đính kèm

  • Screenshot (312).png
    Screenshot (312).png
    132.6 KB · Đọc: 9
  • Test Pivot.xlsx
    384.8 KB · Đọc: 7
Lần chỉnh sửa cuối:
e làm đến bước này rồi nhưng không chọn được xlsx các bác xe, giúp, e sử dụng excel2016Untitled.png
 
Bài này dùng Multiple Pivot được nhé.
1. Em muốn học thêm cái MS Query. Nên nếu bác biết thì dạy em luôn ạ.
2. Em chưa có nhu cầu trên data thực nhưng muốn học thêm pivot trên nhiều sheet (giả định format các sheet là như nhau)
Em search multiple pivot ra bài này mà không biết cách dùng, nhờ bác hướng dẫn cụ thể với

 
Alt, D, P, chọn Multiple Pivot, Next, chọn Range 1, Add, chọn Range 2, Add, ... Next, chọn nơi trả ra kết quả. Công việc còn lại dễ rồi. Đang dùng điện thoại nên không nhớ rõ các bước.
 
Dùng VBA thử nha bạn
Sub mongmuon()
Dim J As Integer
On Error Resume Next
Sheets(1).Select
Worksheets.Add
Sheets(1).Name = "mongmuon"
Sheets(2).Activate
Range("A1").EntireRow.Select
Selection.Copy Destination:=Sheets(1).Range("A1")
For J = 2 To Sheets.Count
Sheets(J).Activate
Range("A1").Select
Selection.CurrentRegion.Select
Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select
Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)
Next
End Sub
Bài đã được tự động gộp:

Dùng VBA thử nha bạn:
 
Web KT
Back
Top Bottom