Hỗ trợ Pivot bằng VBA (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Yeuvoyeucon

Thành viên hoạt động
Tham gia
30/10/09
Bài viết
143
Được thích
23
Kính gửi Các Anh cao thủ VBA trên diễn đàn. Em làm việc tại Bank và có nhiều số liệu cần phân tích cho nhanh. Em có một câu hỏi nhờ các Anh trợ giúp ạ !
- Em có một bảng số liệu về duyệt vay theo File kèm theo. Sheet Data là dữ liệu gốc. Yêu cầu đặt ra là.
+ Tạo một Cột quy đổi số tiền về VND theo nguyên tắc nếu là VND thì giữ nguyên như giá trị tại G, còn nếu là USD thì lấy giá trị tại cột G nhân với tỷ giá điền sẵn tại ô M1
+ Sau đó, tìm ra danh sách theo từng vùng mà kết quả đảm bảo yêu cầu.
-> Tìm ra danh sách 10 cán bộ bán ghép cặp với Người duyệt theo thứ tự từ cao đến thấp theo số lượng Khách hàng (Giá sử như theo số liệu Pivot thì tại Vùng Nam HN cán bộ bán Tuấn đã được người duyệt có mã hnm duyệt vay 3 khác hàng với số tiền giải ngân là 141)
Ghi chú: Số lượng KH là tính theo mã KH chứ không phải theo Khế ước. Giả sử dòng 4 và 5 của Sheet Data thì cán bộ bán Hiền và người duyệt aht chỉ duyệt 1 khách chứ không phải 2 khách (tức 1 khách hàng giải ngân 2 lần thì chỉ tính là 1 khách hàng).
kết quả đưa ra SHeet Ket quả ạ !
 

File đính kèm

Kính gửi Các Anh cao thủ VBA trên diễn đàn. Em làm việc tại Bank và có nhiều số liệu cần phân tích cho nhanh. Em có một câu hỏi nhờ các Anh trợ giúp ạ !
- Em có một bảng số liệu về duyệt vay theo File kèm theo. Sheet Data là dữ liệu gốc. Yêu cầu đặt ra là.
+ Tạo một Cột quy đổi số tiền về VND theo nguyên tắc nếu là VND thì giữ nguyên như giá trị tại G, còn nếu là USD thì lấy giá trị tại cột G nhân với tỷ giá điền sẵn tại ô M1
+ Sau đó, tìm ra danh sách theo từng vùng mà kết quả đảm bảo yêu cầu.
-> Tìm ra danh sách 10 cán bộ bán ghép cặp với Người duyệt theo thứ tự từ cao đến thấp theo số lượng Khách hàng (Giá sử như theo số liệu Pivot thì tại Vùng Nam HN cán bộ bán Tuấn đã được người duyệt có mã hnm duyệt vay 3 khác hàng với số tiền giải ngân là 141)
Ghi chú: Số lượng KH là tính theo mã KH chứ không phải theo Khế ước. Giả sử dòng 4 và 5 của Sheet Data thì cán bộ bán Hiền và người duyệt aht chỉ duyệt 1 khách chứ không phải 2 khách (tức 1 khách hàng giải ngân 2 lần thì chỉ tính là 1 khách hàng).
kết quả đưa ra SHeet Ket quả ạ !
Góp ý với bạn.
1. Nếu bạn nhờ "các anh cao thủ" chắc là không có ai dám giúp vì ở đây không có ai là "cao thủ", mà bạn không nhờ các chị, các bạn, các em?
2. Cột quy đổi số tiền rất đơn giản, chỉ dùng hàm IF() là xong, bạn không biết cả hàm này?
3. Các yêu cầu khác của bạn hoàn toàn dùng Pivot Table là có kết quả, không cần phải thêm sheet kết quả gì cả.
Kết luận: bạn nên nắm được các kiến thức cơ bản để chủ động trong công việc trước khi nghĩ đến sử dụng VBA.
 
Upvote 0
Hì, Anh bắt câu từ em quá. Em chỉ biết sơ sơ một số hàm thôi Anh, còn VBA em mới biết mấy cái này nên với em ai biết chút ít về VBA thì với em đều là cao thủ cả. Em lướt qua diễn đàn nhìn thấy mấy cái code là hoa mắt rồi.
Do số liệu của em thường làm khoảng 300.000 dòng (số của Bank thường dài) nên nếu dùng hàm thường đơ máy. Nên em phải nhờ đến ngôn ngữ VBA để xử lý cho nhanh hơn Anh nhé. Ví dụ của em đưa ra còn đơn giản hơn thực tế vì nó hơi loàng ngằng chút ạ. Nếu được các Anh, chị, các bạn và các em trên diễn đàn trợ giúp em sẽ nghiên cứu và phát triển thêm.
Do vậy, em xin nhờ trợ giúp của các Anh, chị, các bạn và các em trên diễn đàn trợ giúp câu hỏi của em ạ. Chúc mọi người tuần mới làm việc hiệu quả !
 
Upvote 0
Cứ 10 bài ở đây là 7-8 bài lấy cớ "dữ liệu nhiều, vài trăm ngàn dòng..."
Phân tích con số như thế thì phải chịu khó học PowerPivot. Chấm hết.
Chả lẽ nhà băng giao cho nhân viên sử lý hàng trăm ngàn phát sinh mà lại hà tiện tiền mua Excel 2016.

(*) Gọi ngừoi giỏi hơn mình bằng từ "cao thủ" là nịnh nọt.
 
Upvote 0
Dear Anh HPkhuong,
Như em đã Reply ở trên đây chỉ là em quá đơn giản hóa số liệu để cho dễ hiểu thôi Anh. Còn số của em thường rất dài và nặng mỗi File khoảng hơn 100 mb ! Nếu thêm hàm vào nữa thì rất khó. Với lại nếu em Pivot, thực tễ số càn bộ bán và người phê duyệt rất nhiều nếu Pivot nó dài lắm lắm luôn nhất là về chiều ngang, và em phải ngồi nhặt ra khoảng 8 vùng khác nhau, và mỗi vùng lại khoảng 10 cặp mà có số khách hàng nhiều nhất. Nếu làm em phải mất nguyên cả nửa buổi luôn ! thực tế nó thế chứ không phải em lười hay nhờ vả một cách vô lý đâu anh.

Với nếu anh Pivot thì số khách hàng không chuẩn xác do nó đang lấy theo khế ước. Như em đã nói nếu nó Count theo số khế ước là sai vì một KH có nhiều khế ước mà em ở đây chỉ lấy số KH thôi ạ. Như em đã trình bày ở File và câu hỏi.

Cảm ơn mọi người !
 
Upvote 0
Cứ 10 bài ở đây là 7-8 bài lấy cớ "dữ liệu nhiều, vài trăm ngàn dòng..."
Phân tích con số như thế thì phải chịu khó học PowerPivot. Chấm hết.
Chả lẽ nhà băng giao cho nhân viên sử lý hàng trăm ngàn phát sinh mà lại hà tiện tiền mua Excel 2016.

(*) Gọi ngừoi giỏi hơn mình bằng từ "cao thủ" là nịnh nọt.

Dear Anh,
số liệu cả một hế thống có khoảng 3 sheet mỗi sheet có khoảng hơn 300 nghìn dòng anh nhé. Và em đang dùng Office 2013.
 
Upvote 0
Em thực tế lần đầu hỏi một câu trên diễn đàn nhưng em thấy mọi người có vẻ quá khó khăn. Dùng từ (*) Gọi ngừoi giỏi hơn mình bằng từ "cao thủ" là nịnh nọt ???? Em đi làm ở cơ quan chưa bao giờ nịnh ai bao giờ đẻ thăng tiến cả nhé. Cuộc sống chỉ có nể ai chứ chưa bao giờ nịnh ai cả. Em cũng không phải kẻ ngu dốt nhưng với một cái mới thì mình nên cầu tiến để hiểu thêm. Anh chị nào có tâm thì trợ giúp, còn không thì cũng đừng nói này nọ làm gì cả. Ở đời này, giúp người không bao giờ là thiệt cả. Thanks mọi người.
 
Upvote 0
Chớ có đía đọt với tôi.
Hồi tôi còn nhỏ, những ngừoi nói chuyện "moa toa" là dân chảnh, tự cho mình có học thức và dùng tiếng Tây vào tiếng Việt để tự phân biệt mình với dân ngu khu đen.

Office 2013 cũng có thể dùng PowerPivot
 
Upvote 0
Chớ có đía đọt với tôi.
Hồi tôi còn nhỏ, những ngừoi nói chuyện "moa toa" là dân chảnh, tự cho mình có học thức và dùng tiếng Tây vào tiếng Việt để tự phân biệt mình với dân ngu khu đen.

Office 2013 cũng có thể dùng PowerPivot
Cạn lời, xem ra bác có một tuổi thơ dữ dội.
 
Upvote 0
Dear Anh HPkhuong,
Như em đã Reply ở trên đây chỉ là em quá đơn giản hóa số liệu để cho dễ hiểu thôi Anh. Còn số của em thường rất dài và nặng mỗi File khoảng hơn 100 mb ! Nếu thêm hàm vào nữa thì rất khó. Với lại nếu em Pivot, thực tễ số càn bộ bán và người phê duyệt rất nhiều nếu Pivot nó dài lắm lắm luôn nhất là về chiều ngang, và em phải ngồi nhặt ra khoảng 8 vùng khác nhau, và mỗi vùng lại khoảng 10 cặp mà có số khách hàng nhiều nhất. Nếu làm em phải mất nguyên cả nửa buổi luôn ! thực tế nó thế chứ không phải em lười hay nhờ vả một cách vô lý đâu anh.

Với nếu anh Pivot thì số khách hàng không chuẩn xác do nó đang lấy theo khế ước. Như em đã nói nếu nó Count theo số khế ước là sai vì một KH có nhiều khế ước mà em ở đây chỉ lấy số KH thôi ạ. Như em đã trình bày ở File và câu hỏi.

Cảm ơn mọi người !
Bạn tạo thêm 1 cột = Cán bộ bán&" - "&Người duyệt.
Sau đó tạo Pivot Table với Row Labels là cột vừa tạo thêm.
Trong Pivot Table bạn cho Count theo mã khách hàng là được mà, file mẫu của bạn cũng đang làm như vậy.
Đối với lọc Top thì bạn Sort 1 chút là được.
Bạn thử xem file xem sao.
 

File đính kèm

Upvote 0
Bạn tạo thêm 1 cột = Cán bộ bán&" - "&Người duyệt.
Sau đó tạo Pivot Table với Row Labels là cột vừa tạo thêm.
Trong Pivot Table bạn cho Count theo mã khách hàng là được mà, file mẫu của bạn cũng đang làm như vậy.
Đối với lọc Top thì bạn Sort 1 chút là được.
Bạn thử xem file xem sao.

Cảm ơn ANh đã đưa ý tưởng ạ, nhưng em xin nói một số khó khăn mà em gặp phải khi làm với số liệu hằng ngày ạ
+ Số liệu của em rất dài và nặng (Như em đã nói ở trên ạ - xin đừng ai bảo cố đưa ra lý do này vì thực tế nó thế)
+ Số lượng người duyệt và người làm rất nhiều (Người bán có thể lên tới hơn 500 người, người duyệt khoảng 40 người) nếu em Pivot thì em phải nhìn chân tay miệng toét mắt để xem ai gặp ai nhiều nhất, rồi lại phải nhặt tay từ Pivot nhiều khi nhìn nhầm vì nó quá dài làm rất mệt mỏi
+ Như em đã trình bay là để đơn giản em cho ví dụ ngắn gọi thôi ạ. Còn bình thường em mở File còn đơ máy chứ đừng nói làm hàm ạ.

Nhờ mọi người nếu có thể thì trợ giúp em bằng VBA rồi em sẽ cố gắng áp nó vào dữ liệu thực ạ. Cảm ơn mọi người.
 
Upvote 0
Cảm ơn ANh đã đưa ý tưởng ạ, nhưng em xin nói một số khó khăn mà em gặp phải khi làm với số liệu hằng ngày ạ
+ Số liệu của em rất dài và nặng (Như em đã nói ở trên ạ - xin đừng ai bảo cố đưa ra lý do này vì thực tế nó thế)
+ Số lượng người duyệt và người làm rất nhiều (Người bán có thể lên tới hơn 500 người, người duyệt khoảng 40 người) nếu em Pivot thì em phải nhìn chân tay miệng toét mắt để xem ai gặp ai nhiều nhất, rồi lại phải nhặt tay từ Pivot nhiều khi nhìn nhầm vì nó quá dài làm rất mệt mỏi
+ Như em đã trình bay là để đơn giản em cho ví dụ ngắn gọi thôi ạ. Còn bình thường em mở File còn đơ máy chứ đừng nói làm hàm ạ.

Nhờ mọi người nếu có thể thì trợ giúp em bằng VBA rồi em sẽ cố gắng áp nó vào dữ liệu thực ạ. Cảm ơn mọi người.
Hay thế này đi.
Bạn lấy 1 ít dữ liệu theo đúng kiểu thực tế, post lên để mọi người xem nhé!
 
Upvote 0
Hay thế này đi.
Bạn lấy 1 ít dữ liệu theo đúng kiểu thực tế, post lên để mọi người xem nhé!


Dear Anh,
Đây là số liệu mà em cắt một phần từ báo cáo nhé. Nếu mà em Pivot ngang dọc gì đó thì nó rất dài, rồi phải tìm ai gặp ai nhiều nhất (10 cặp nhiều nhất). thực sự làm rất lâu và vất. A nghiên cứu giúp em. Thanks
 
Upvote 0
Cạn lời, xem ra bác có một tuổi thơ dữ dội.

Hồi tôi còn nhỏ không có nghĩa là tuổi thơ. Và chả có gì dữ dội cả, nó chỉ là một hiện tượng vọng ngoại của người Việt
Đối với tôi, ngừoi Việt mà phải chêm tiếng ngoại để giao thiệp thì là khinh rẻ tiếng mẹ đẻ, và không biết tôn trọng người đối thoại (trừ phi hai bên đã thoả thuận với chủ trương khi rẻ tiếng mẹ đẻ).
 
Upvote 0
Hồi tôi còn nhỏ không có nghĩa là tuổi thơ. Và chả có gì dữ dội cả, nó chỉ là một hiện tượng vọng ngoại của người Việt
Đối với tôi, ngừoi Việt mà phải chêm tiếng ngoại để giao thiệp thì là khinh rẻ tiếng mẹ đẻ, và không biết tôn trọng người đối thoại (trừ phi hai bên đã thoả thuận với chủ trương khi rẻ tiếng mẹ đẻ).


Không biết bao bao tuổi nhưng em chỉ có ý kiến thế này thôi.
+ Cuộc sống mình luôn phải linh động biết tiếp nhận nhưng cái mới, con người hình thành thói quen nhiều nhất từ công việc vì ngày mình làm tối thiểu 8 tiếng. Và thời mở cửa giao tiếp với bên ngoài và tiếng anh là phổ biến nên để học thì họ nói chỗ này chỗ nọ để học cho nhanh...đâu có gì sai. Nhất là ngành lập trình của mọi người. Chỉ là hành động để tạo nên những phản xạ có gì mà phải nặng lời làm gì.
+ Thứ 2, theo em đừng quá quan trọng mọi cái, xã hội đa dạng mình phải chấp nhận sự thật bất biến đó...ngành nào cũng thế cần sự tôn trọng không nên lặng mạ nhau. Càng sống lâu mình càng phải tôn trọng người khác thế mới đáng sống và có ý nghĩa.

Em có vài ý thế thôi.
 
Upvote 0
Bạn tạo thêm 1 cột = Cán bộ bán&" - "&Người duyệt.
Sau đó tạo Pivot Table với Row Labels là cột vừa tạo thêm.
Trong Pivot Table bạn cho Count theo mã khách hàng là được mà, file mẫu của bạn cũng đang làm như vậy.
Đối với lọc Top thì bạn Sort 1 chút là được.
Bạn thử xem file xem sao.


Ý của bác khá hay ạ, thôi thì em sẽ cắt bớt File để làm cũng được. Cảm ơn sự trợ giúp cảm bác Nhé !
 
Upvote 0
Em xin đóng sự trợ giúp Case này tại đây ạ. Cảm ơn các mọi người đã đóng góp ý kiến ! Có gì khó em lại làm phiền tiếp !
 
Upvote 0
Em xin đóng sự trợ giúp Case này tại đây ạ. Cảm ơn các mọi người đã đóng góp ý kiến ! Có gì khó em lại làm phiền tiếp !
Tuy bạn đã đóng nhưng mình vẫn mạn phép gửi file này để bạn tham khảo.
File dữ liệu ban đầu của bạn có 1 số ô trống nên kết quả chưa được ổn lắm đâu.
- Đầu tiên, mình làm gọn dữ liệu ban đầu.
- Tạo Pivot Table dựa trên dữ liệu đã được làm gọn.
- Để lọc Top 10, bạn chọn 1 ô bất kỳ ở Row Labels chọn Value filter là Top 10.
Mỗi lúc giải quyết 1 chút, vấn đề sẽ dần được tháo gỡ.
Ở diễn đàn không ai khó khăn cả, vấn đề là người hỏi biết cách hỏi, biết cách diễn đạt và thực sự cầu thị.
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Tuy bạn đã đóng nhưng mình vẫn mạn phép gửi file này để bạn tham khảo.
File dữ liệu ban đầu của bạn có 1 số ô trống nên kết quả chưa được ổn lắm đâu.
- Đầu tiên, mình làm gọn dữ liệu ban đầu.
- Tạo Pivot Table dựa trên dữ liệu đã được làm gọn.
- Để lọc Top 10, bạn chọn 1 ô bất kỳ ở Row Labels chọn Value filter là Top 10.
Mỗi lúc giải quyết 1 chút, vấn đề sẽ dần được tháo gỡ.
Ở diễn đàn không ai khó khăn cả, vấn đề là người hỏi biết cách hỏi, biết cách diễn đạt và thực sự cầu thị.

Em cảm ơn bác đã nhiệt tình nhé !
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom