Tạo pivottable cho dữ liệu được tổng hợp từ 2 sheet
Chào các bạn,
Cho mình hỏi với mình có 2 sheet
sheet 1
Cột A, B, C, D có 1000 dòng dữ liệu
sheet 2
Cột A, B, C, D có 10000 dòng dữ liệu
(lưu ý tên cột A, B, C, D ở 2 sheet giống nhau và dữ liệu ở 2 sheet được cập nhật liên tục)Mình muốn gộp 2 sheet này lại để có dữ liệu sau khi gộp mục đích dùng pivottable tiếp
Nghĩa là sau khi gộp
Cột A, B, C, D có 1100 dòng dữ liệuTừ đó pivottable sẽ truy xuất vào vùng dữ liệu có 1100 dòng này (đã thử dùng paste link nhưng hơi thủ công khi gộp dữ liệu và pivottable wizard chỉ ra các bảng sum, count –> không đúng ý mình).
Mong các bạn có giải pháp hữu hiệu hơn.
Thanks
Khoi
Tạo 2 name ở 2 sheet, làm tương tự như clip bên dưới:
T0WN0UtoBhM
Mình đang xem để chỉnh SQL vào file của mình, những đoạn youtbe hơi mờ nên gõ code vào vẫn sai.
Cấu trúc SQL đó như thế nào nhỉ bạn? Để mình thử lại tiếp.Cám ơn bạn
Khoi
Với bài này bạn gõ đoạn Query như sau:
SELECT * FROM DATA1
UNION ALL
SELECT * FROM DATA2
Lưu ý là phải đặt tên name trước nhé.
Oi, được rồi bạn ạ, tớ cám ơn bạn nhiều nhé. Hóa ra excel cũng thực hiện được các cấu trúc query như access nhỉ.
Hay thật đấy.
Và đây là file kết quả theo hướng dẫn của bác Hai Lúa Miền Tây.Thanks
Khoi
www.giaiphapexcel.com/diendan/threads/t%E1%BA%A1o-pivottable-cho-d%E1%BB%AF-li%E1%BB%87u-%C4%91%C6%B0%E1%BB%A3c-t%E1%BB%95ng-h%E1%BB%A3p-t%E1%BB%AB-2-sheet.89218/
Kỹ năng giải quyết vấn đề hiệu quả
Mô tả Nội dung Đánh giá Tài nguyên KỸ NĂNG GIẢI QUYẾT VẤN ĐỀ HIỆU QUẢHiểu đúng vấn đề là một nửa của giải...
Xem khóa học
cái này phải dùng cách khác mới được vui lòng xem file
cách hưỡng dẫn đây
[URL='https://www.giaiphapexcel.com/forum/showthread.php?89218-T%E1%BA%A1o-pivottable-cho-d%E1%BB%AF-li%E1%BB%87u-%C4%91%C6%B0%E1%BB%A3c-t%E1%BB%95ng-h%E1%BB%A3p-t%E1%BB%AB-2-sheet&p=556441#post556441']https://www.giaiphapexcel.com/forum/…-được-tổng-hợp-từ-2-sheet&p=556441#post556441
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
Đã VBA rồi thì không cần SQL xem đây.Chỉ cần vậy thôi(VBA+PIVOTtable)–=0
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
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
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