anhbanvuitinh9x
Thành viên mới
- Tham gia
- 4/10/14
- Bài viết
- 43
- Được thích
- 14
- Giới tính
- Nam
Bạn tham khảo PivotTableHiện tại mình đang dùng function để chạy với maxifs nhưng cách này quá chậm khi có nhiều dữ liệu.
Các bác giúp mình cách nào nhanh hơn với. many thanks.
Một cách khác là bạn có thể sử dụng Scripting.Dictionary.Hiện tại mình đang dùng function để chạy với maxifs nhưng cách này quá chậm khi có nhiều dữ liệu.
Các bác giúp mình cách nào nhanh hơn với.
em đang chỉ muốn chạy macro cho file nó đỡ chậm bác à. giờ file toàn công thức nên cứ vào load rất lâu.Bạn thử xài hàm CSDL (DMAX()) chắc sẽ cải thiện hơn.
[Bạn thử thì đo thời gian mà 2 macro trãi qua nha!]
Thanks bạn nhé! cách này nhanh và hay. Nhưng trong file của mình còn những dữ liệu phụ nữa nên mình đang muốn chỉ viết VBA để trả về dữ liệu. Còn Pivot thì sẽ hơi vướng những dữ liệu khácBạn tham khảo PivotTable
Nếu sử dụng Dic thì em đoán nó sẽ nhanh hơn rất nhiều. Tuy nhiên Dic thì quá cao cấp so với khả năng của em rồi bác à.Một cách khác là bạn có thể sử dụng Scripting.Dictionary.
Tổng quan về Scripting.Dictionary
Với những ai yêu thích Excel nói chung và yêu thích VBA nói riêng thì chắc hẳn cũng đã biết qua các khái niệm về mảng, về công thức điều kiện, vòng lặp,..., những thứ rất quen thuộc mà gần như là sử dụng thường xuyên trong từng bài toán lập trình. Tuy nhiên, có lẽ sẽ rất ít người biết về...www.giaiphapexcel.com
Vướng chỗ nào vậy bạn? Như file đính kèm thì dùng pivot table là cách tốt nhất rồi, nếu phức tạp hơn có thể sử dụng PowerPivot hoặc Power QueryThanks bạn nhé! cách này nhanh và hay. Nhưng trong file của mình còn những dữ liệu phụ nữa nên mình đang muốn chỉ viết VBA để trả về dữ liệu. Còn Pivot thì sẽ hơi vướng những dữ liệu khác
Vướng ở chỗ "làm việc với dữ liệu nhiều mà không có thời giờ cập nhật kiến thức bảng tính"Vướng chỗ nào vậy bạn? Như file đính kèm thì dùng pivot table là cách tốt nhất rồi, nếu phức tạp hơn có thể sử dụng PowerPivot hoặc Power Query
Với người thông thạo Excel thì mất dưới 1 phút.Bài này copy data ra một vùng mới, sort ngày newest to oldest rồi remove duplicate theo biển số cũng được
Nếu bạn cài Office 2019 thì Excel có sẵn hàm MAXIFS rồi, khỏi viết!Hiện tại mình đang dùng function để chạy với maxifs nhưng cách này quá chậm khi có nhiều dữ liệu.
Các bác giúp mình cách nào nhanh hơn với. many thanks.
=MAX(IF(Data!$A$2:$A$7669=A2,Data!$B$2:$B$7669,""))
mình viết code sử dụng pivot đúng là nhanh hơn rất nhiều. ok bạn nhé!Vướng chỗ nào vậy bạn? Như file đính kèm thì dùng pivot table là cách tốt nhất rồi, nếu phức tạp hơn có thể sử dụng PowerPivot hoặc Power Query
Thanks bác đã phân tích rất chi tiết và đẩy đủ để những bạn mới biết về VBA như em.Mới chơi với Excel thì hàm là đủ rồi. Được một thời gian, thay vì học hết phần này thì nghe tới VBA.
Nghe tới VBA ai mà chả nghĩ đến sự "huyền diệu, bấm một phát là xong hết"?
Mới chơi với VBA thì sort và duyệt mảng là phê rồi. Nhưng nếu vào GPE sẽ thấy Dictionary "huyền diệu" hơn. Thế là kỹ thuật sort và duyệt mảng chả ai thèm học.
Chơi với Dictionary thấy nó ngon quá. Cho đến khi chịu khó nhìn quanh quất và thấy ADODB.
Câu lệnh SQL chứa kỹ thuật Group By thật ngon để tổng hợp dữ liệu mà khoảng 90% code Đít-sần ở đây sử dụng. Lại thêm cái khả năng của ADO có thể lấy dữ liệu từ files mà không cần [trực tiếp] mở file. Ngon quá sức. (ngày xưa tôi có viết bài khuyến cáo là dùng ADO trongn file hiện tại có thể đưa đến kẹt bộ nhớ. Nhưng bây giừo thì MS có lẽ đã khắc phục được cái bug ấy rồi, không thấy xảy ra nữa)
Với ba cái mớ ấy, tội gì phải học thêm về Excel? Đưa lên GPE tíc tắc là có code giải quyết công việc. Nhiều lúc còn hong cần phải hiểu cong việc, dân GPE sẵn sàng dẫn dắt từng bước để phân tích vấn đề.
Vì không chịu cập nhật kiến thức về Excel cho nên người ta không hề biết là Excel hiện nay có nhiều công cụ giải quyết dữ liệu khủng.
"công ty bắt buộc phải thế này, thế nọ..." là câu biện hộ quá đúng. Với loại kiến thức như vậy làm sao đủ sức thuyết phục công ty làm theo cách khác, hiệu quả hơn?
đúng là Dic quá tuyệt vời bác à. chạy quá nhanh và nguy hiểm. Em cảm ơn nha!Dùng VBA đây, thử xem được chưa:
Bác ơi bây giờ mấy ai đã phá cái cũ đi để xây lại cái mới.Mà chỉ có đắp thêm vào cái cũ cho nó giải quyết được công việc thôi à.Mà cái bác nói ở đây là Excel hiện nay có nhiều công cụ giải quyết dữ liệu khủng.Nhưng với điều kiện là Data được thiết kế theo Cơ sở dữ liệu.Mà mấy cái dữ liệu cũ mấy ai đã thiết kế được cơ sở dữ liệu chuẩn đâu bác.Nên giờ cứ chắp vá thôi..Mới chơi với Excel thì hàm là đủ rồi. Được một thời gian, thay vì học hết phần này thì nghe tới VBA.
Nghe tới VBA ai mà chả nghĩ đến sự "huyền diệu, bấm một phát là xong hết"?
Mới chơi với VBA thì sort và duyệt mảng là phê rồi. Nhưng nếu vào GPE sẽ thấy Dictionary "huyền diệu" hơn. Thế là kỹ thuật sort và duyệt mảng chả ai thèm học.
Chơi với Dictionary thấy nó ngon quá. Cho đến khi chịu khó nhìn quanh quất và thấy ADODB.
Câu lệnh SQL chứa kỹ thuật Group By thật ngon để tổng hợp dữ liệu mà khoảng 90% code Đít-sần ở đây sử dụng. Lại thêm cái khả năng của ADO có thể lấy dữ liệu từ files mà không cần [trực tiếp] mở file. Ngon quá sức. (ngày xưa tôi có viết bài khuyến cáo là dùng ADO trongn file hiện tại có thể đưa đến kẹt bộ nhớ. Nhưng bây giừo thì MS có lẽ đã khắc phục được cái bug ấy rồi, không thấy xảy ra nữa)
Với ba cái mớ ấy, tội gì phải học thêm về Excel? Đưa lên GPE tíc tắc là có code giải quyết công việc. Nhiều lúc còn hong cần phải hiểu cong việc, dân GPE sẵn sàng dẫn dắt từng bước để phân tích vấn đề.
Vì không chịu cập nhật kiến thức về Excel cho nên người ta không hề biết là Excel hiện nay có nhiều công cụ giải quyết dữ liệu khủng.
"công ty bắt buộc phải thế này, thế nọ..." là câu biện hộ quá đúng. Với loại kiến thức như vậy làm sao đủ sức thuyết phục công ty làm theo cách khác, hiệu quả hơn?
Trong code của mình bị thiếu một dấu phẩy, đố bạn tìm được?mình viết code sử dụng pivot đúng là nhanh hơn rất nhiều. ok bạn nhé!
Bài đã được tự động gộp:
Thanks bác đã phân tích rất chi tiết và đẩy đủ để những bạn mới biết về VBA như em.
Em chỉ muốn 1 bài toán sẽ có nhiều cách giải, cách của em quá chậm nên muốn tham khảo thêm cách khác để có thể hoàn thiện thêm thôi bác. Không có ý cái gì cũng đưa lên GPE để mọi người giải và làm giúp
Bài đã được tự động gộp:
đúng là Dic quá tuyệt vời bác à. chạy quá nhanh và nguy hiểm. Em cảm ơn nha!
em nhìn mãi vẫn chưa ra. nhưng nói thật là với Dic em còn rất mơ hồ. nên soi dấu phẩy cũng không làm gì.Trong code của mình bị thiếu một dấu phẩy, đố bạn tìm được?