Tạo Pivot với dữ liệu nguồn tới 5 triệu dòng.

Liên hệ QC
Đừng link lại thông thường, hãy vào tab External data, nhấn nút link table manager và sửa trong đó.
Nếu làm lại từ đầu thì không khéo cái Union cũng không chạy vì table nguồn bị thay đổi

Theo ý em thì nên dùng Union All thay vì dùng Union Thầy à.
 
UNION ALL chỉ việc chập bên này vào bên kia thành một ds chung.
UNION bắt buộc phải xét để lọc ra các dòng dữ liệu trùng nhau, cho nên [theo lý thuyết] sẽ chậm hơn.

Ví dụ nếu như có 2 dòng dữ liệu hoàn toàn giống nhau thì sao bạn? Chẳng lẻ chỉ lấy 1?
 
Ví dụ nếu như có 2 dòng dữ liệu hoàn toàn giống nhau thì sao bạn? Chẳng lẻ chỉ lấy 1?

UNION là phép giao trong đại số tập hợp (ký hiệu là[SUB]
image084.gif
[/SUB] )

trong toán đại số: A union B = A + B - (A intersect B)

Theo luật của SQL, UNION loại tất cả những phần tử trùng, chỉ giữ lại 1.

UNION ALL là phép gộp tập hợp

A union B tương đương với A + B trong toán đại số.

Theo luật của SQL, UNION ALL gộp tất cả các phần tử của hai tập hợp, không cần biết chúng chứa gì, miễn là chúng có cùng đăc tính (trong ngữ cảnh SQL, phần tử là một dòng, đặc tính của phần tử là các trường)

==== Xin đính chánh một vài chỗ viết nhầm ====

UNION là phép HỘI chứ không phải phép GIAO - phép giao là intersection

Câu "A union B tương đương với A + B trong toán đại số"
Xin chỉnh lai là "A union all B tương đương với A + B trong toán đại số"
 
Lần chỉnh sửa cuối:
UNION là phép giao trong đại số tập hợp (ký hiệu là[SUB]
image084.gif
[/SUB] )

trong toán đại số: A union B = A + B - (A intersect B)

Theo luật của SQL, UNION loại tất cả những phần tử trùng, chỉ giữ lại 1.

UNION ALL là phép gộp tập hợp

A union B tương đương với A + B trong toán đại số.

Theo luật của SQL, UNION ALL gộp tất cả các phần tử của hai tập hợp, không cần biết chúng chứa gì, miễn là chúng có cùng đăc tính (trong ngữ cảnh SQL, phần tử là một dòng, đặc tính của phần tử là các trường)

Vậy ta dùng union all thì đúng rồi, dùng union có thể bỏ sót dữ liệu trong trường hợp này.
 
Vậy anh HaiLua giúp em nhé. Em cảm ơn.
View query dưới dạng SQL rồi thay cái này vào:

Select * from 2
union all
select * from 3
union all
select * from 4
UNION ALL select * from 5;

Còn Pivot table bạn phải tự thử nghiệm theo ý muốn xem có vướng mắc gì không chứ? Tôi xem cái ảnh Pivot mẫu chả liên quan gì đến dữ liệu cả nên không test thay bạn được.
 
Lần chỉnh sửa cuối:
View query dưới dạng SQL rồi thay cái này vào:

Select * from 2
union all
select * from 3
union all
select * from 4
UNION ALL select * from 5;

Còn Pivot table bạn phải tự thử nghiệm theo ý muốn xem có vướng mắc gì không chứ? Tôi xem cái ảnh Pivot mẫu chả liên quan gì đến dữ liệu cả nên không test thay bạn được.

Em đã làm được rồi nhưng máy yếu quá nên ko chạy nổi. Có gần 5tr dòng mà cứ chạy 70% là treo máy. Chán quá. hic

Em cảm ơn.
 
Bạn nghiên cứu thử PowerPivot, free addin của Microsoft luôn, chuyên cho xử lý dữ liệu lớn như trường hợp của bạn
 
Bạn nghiên cứu thử PowerPivot, free addin của Microsoft luôn, chuyên cho xử lý dữ liệu lớn như trường hợp của bạn
Power Pivot cũng bị giới hạn bởi số dòng trên bảng tính
pqhong đã viết:
Em đã làm được rồi nhưng máy yếu quá nên ko chạy nổi. Có gần 5tr dòng mà cứ chạy 70% là treo máy. Chán quá. hic

Cái file Excel 4 sheet của bạn, mỗi sheet có hơn chục dòng, bạn chép chung vào 1 sheet Union để giả định là query Union. Lấy sheet này bạn tạo những Pivot table khác nhau theo ý muốn của bạn, rồi gởi lên đây. Nếu muốn group theo tháng, bạn nên cho thêm mỗi sheet vài chục dòng dữ liệu với tháng khác nhau.


Tôi sẽ xem có thể tạo những query thứ cấp ít dòng hơn để chạy nhẹ nhàng hơn, hoặc có thể chạy trực tiếp trên Excel.

Nhớ đừng chụp hình Pivot, chụp hình tôi chẳng làm được gì đâu.
 
Lần chỉnh sửa cuối:
Power Pivot cũng bị giới hạn bởi số dòng trên bảng tính Cái file Excel 4 sheet của bạn, mỗi sheet có hơn chục dòng, bạn chép chung vào 1 sheet Union để giả định là query Union. Lấy sheet này bạn tạo những Pivot table khác nhau theo ý muốn của bạn, rồi gởi lên đây. Nếu muốn group theo tháng, bạn nên cho thêm mỗi sheet vài chục dòng dữ liệu với tháng khác nhau. Tôi sẽ xem có thể tạo những query thứ cấp ít dòng hơn để chạy nhẹ nhàng hơn, hoặc có thể chạy trực tiếp trên Excel. Nhớ đừng chụp hình Pivot, chụp hình tôi chẳng làm được gì đâu.
Em ko gửi được file. Mặc dù đã nén lại có 540kb nhưng site vẫn báo vượt. Em có phải xóa mấy file cũ đã up ở bài trước ko? nếu xóa mấy file cũ thì up lần này sẽ đủ Mọi người hướng dẫn giúp em. Em cảm ơn.
 
Lần chỉnh sửa cuối:
Tại sheet 5, tô chọn từ dòng 70 đến hết, delete row,
Xóa 2 picture Pivot

chỉ còn 25 Kb
 
Tại sheet 5, tô chọn từ dòng 70 đến hết, delete row,
Xóa 2 picture Pivot

chỉ còn 25 Kb

Cảm ơn anh
Em đã làm được.
Nhưng dung lượng up của em chỉ cho có hơn 300kb còn lại. Em ko biết làm sao được tăng hạn mức lên.

Mọi người chỉ giúp em với.
 

File đính kèm

  • test multipivot.xlsx
    52.5 KB · Đọc: 33
Bạn xem file, có 2 query thứ cấp và số lượng dòng đã giảm:

Query1 Dùng tạo Pivot 1 và Pivot2, giảm rất nhiều do không có tham số ngày. Nếu dữ liệu 1 năm và 5 kho, số dòng tối đa 60.
Query2 dùng tạo Pivot 3, có tham số ngày nên giảm ít hơn. Nếu dữ liệu 1 năm và 5 kho, tối đa 1.825 dòng

Khi đang view dạng Pivot table, nhấn nút Export to Excel trong tab Pivot design, sẽ được 1 file excel 2 sheet.

Lưu ý: Tên field không được đặt là 1 từ khóa, thí dụ "Countif"
 

File đính kèm

  • Access.rar
    69.2 KB · Đọc: 45
Lần chỉnh sửa cuối:
Bạn xem file, có 2 query thứ cấp và số lượng dòng đã giảm:

Query1 Dùng tạo Pivot 1 và Pivot2, giảm rất nhiều do không có tham số ngày. Nếu dữ liệu 1 năm và 5 kho, số dòng tối đa 60.
Query2 dùng tạo Pivot 3, có tham số ngày nên giảm ít hơn. Nếu dữ liệu 1 năm và 5 kho, tối đa 1.825 dòng

Khi đang view dạng Pivot table, nhấn nút Export to Excel trong tab Pivot design, sẽ được 1 file excel 2 sheet.

Em cảm ơn anh.
Để em thử.
 
Nếu test ok, thì có thể bỏ qua trung gian Access, dùng code VBA và ADO tạo 2 query thứ cấp đó trên Excel.
Cũng có thể dùng mảng và Dictionary.
Có lẽ sẽ nhanh hơn.
 
Bạn xem file, có 2 query thứ cấp và số lượng dòng đã giảm:

Query1 Dùng tạo Pivot 1 và Pivot2, giảm rất nhiều do không có tham số ngày. Nếu dữ liệu 1 năm và 5 kho, số dòng tối đa 60.
Query2 dùng tạo Pivot 3, có tham số ngày nên giảm ít hơn. Nếu dữ liệu 1 năm và 5 kho, tối đa 1.825 dòng

Khi đang view dạng Pivot table, nhấn nút Export to Excel trong tab Pivot design, sẽ được 1 file excel 2 sheet.

Lưu ý: Tên field không được đặt là 1 từ khóa, thí dụ "Countif"

1-cái field countif là em muốn tính tổng các giao dịch > 0. Nhưng khi làm pivot thì ko biết làm sao nên để cột đó là cái nào > 0 thì cho là 1. Để vào pivot chỉ việc sum lại.
2-pivot3 của em có store mà anh. Cái query2 ko có store thì làm sao tạo được pivot3?
3-em test thử cái union trước với gần 2tr dòng đã đứng máy rồi. 2 cái query thứ cấp cũng lấy data từ union. vậy chắc cũng ko nhanh được hơn anh ạ.
 
1-cái field countif là em muốn tính tổng các giao dịch > 0. Nhưng khi làm pivot thì ko biết làm sao nên để cột đó là cái nào > 0 thì cho là 1. Để vào pivot chỉ việc sum lại.
2-pivot3 của em có store mà anh. Cái query2 ko có store thì làm sao tạo được pivot3?
3-em test thử cái union trước với gần 2tr dòng đã đứng máy rồi. 2 cái query thứ cấp cũng lấy data từ union. vậy chắc cũng ko nhanh được hơn anh ạ.

1. Đặt tên lại
2. Thêm trường store vào (view design mode và kéo thả).
3. Chạy query1 hoặc query2 khác với chạy Union. Phải nhanh hơn.

Ngoài ra, còn có các cách sau:

1. Trên Excel tạo 1 sheet get external data là query1 và query2, sau đó tạo Pivot dựa vào sheet này

2. Open query1 hoặc query2 dạng pivot, nhưng không thao tác pivot trên access, mà nhấn nút Export to Excel, sau đó thực hiện Pivot trên Excel
 
Web KT
Back
Top Bottom