Gộp số liệu và so sánh

Liên hệ QC

Phương Phương mito

Thành viên thường trực
Tham gia
1/5/19
Bài viết
275
Được thích
65
Kính gửi Anh chị và các bạn;
Em có File như kèm theo. Lấy tháng 8 làm gốc: Mã nhân viên, tên nhân viên, Giá trị hàng. Sau đó từ danh sách đó, lọc số liệu của kỳ trước để so sánh. Như vùng kết quả màu xám em làm theo sheet SO_SANH. Code như thế nào để làm bài toán này ạ.
 

File đính kèm

  • GOP VA SO SANH SO LIEU.xlsm
    35.1 KB · Đọc: 18
Lần chỉnh sửa cuối:
Liệu bài này đã phải giải ngân thêm cuốn từ điển nữa chưa anh @HieuCD ?
 
Upvote 0
Liệu bài này đã phải giải ngân thêm cuốn từ điển nữa chưa anh @HieuCD ?
Code của anh Ba Tê em thấy anh ấy dùng 1 Dic, em thấy rất hay. Với xử lý số liệu kỳ trước, nếu em đổi các biến Dim sArr(), Rws As Long, MaNV As String, dArr() thành các biến Dim sArr1(), Rws1 As Long, MaNV1 As String, dArr1() thì code vẫn chạy đúng. Em chỉ chưa hiểu lắm là các biến này khi chạy cho Tháng 8 xong thì vẫn dùng y nguyên chạy cho Kỳ trước vẫn được ạ.
 
Upvote 0
Em chỉ chưa hiểu lắm là các biến này khi chạy cho Tháng 8 xong thì vẫn dùng y nguyên chạy cho Kỳ trước vẫn được ạ.
Bạn phải xem kỹ:
Ban đầu, sArr = Sheets("THANG8").Range("A2", Sheets("THANG8").Range("A2").End(xlDown)).Resize(, 7).Value
Sau khi hoàn thành nhiệm vụ của nó ở sheets("THANG8"), thì bên dưới:
sArr = Sheets("KYTRUOC").Range("A2", Sheets("KYTRUOC").Range("A2").End(xlDown)).Resize(, 5).Value
Tôi làm biếng khai báo 2 mảng cho 2 sheets, chỉ khai báo 1 mảng sArr(), 2 lần gán dữ liệu là 2 vùng khác nhau, đâu phải "vẫn dùng y nguyên"
 
Upvote 0
Bạn phải xem kỹ:
Ban đầu, sArr = Sheets("THANG8").Range("A2", Sheets("THANG8").Range("A2").End(xlDown)).Resize(, 7).Value
Sau khi hoàn thành nhiệm vụ của nó ở sheets("THANG8"), thì bên dưới:
sArr = Sheets("KYTRUOC").Range("A2", Sheets("KYTRUOC").Range("A2").End(xlDown)).Resize(, 5).Value
Tôi làm biếng khai báo 2 mảng cho 2 sheets, chỉ khai báo 1 mảng sArr(), 2 lần gán dữ liệu là 2 vùng khác nhau, đâu phải "vẫn dùng y nguyên"
Dạ đúng rồi ạ. Tại em đọc code em thấy cùng là các biến đó mà sao lại dùng được cho hai bảng dữ liệu khác nhau. Nên em mới thay thử cho Kỳ Trước các biến mới là Dim sArr1(), Rws1 As Long, MaNV1 As String, dArr1() thì code vân chạy đúng. Nên em mới hiểu được cái ý của anh "Sau khi hoàn thành nhiệm vụ của nó ở sheets("THANG8")" tức vẫn là biến đó nhưng nó đi làm nhiệm vụ ở một chỗ khác vẫn được ạ.
 
Lần chỉnh sửa cuối:
Upvote 0
Bạn phải xem kỹ:
Ban đầu, sArr = Sheets("THANG8").Range("A2", Sheets("THANG8").Range("A2").End(xlDown)).Resize(, 7).Value
Sau khi hoàn thành nhiệm vụ của nó ở sheets("THANG8"), thì bên dưới:
sArr = Sheets("KYTRUOC").Range("A2", Sheets("KYTRUOC").Range("A2").End(xlDown)).Resize(, 5).Value
Tôi làm biếng khai báo 2 mảng cho 2 sheets, chỉ khai báo 1 mảng sArr(), 2 lần gán dữ liệu là 2 vùng khác nhau, đâu phải "vẫn dùng y nguyên"
Gửi chủ topic,
Em xin phép thay đổi chút vùng gán kết quả của Bác @Ba Tê (để so sánh 2 cách làm) .
Tôi làm lại chỉ bằng Power Query (Cảm ơn @vanthinh3101 với hàm Combine, thực tế chưa cần đến Dax)
Công việc của Query thực hiện gộp mã nhân viên của cả 2 sheet để lấy ra các mã duy nhất.
Rõ ràng là sẽ có những mã nhân viên kỳ trước có phát sinh và kỳ tháng 8 không phát sinh gì, liệu bạn có muốn các mã này lên báo cáo.
Snag_293c0399.png
Bài đã được tự động gộp:

Dạ đúng rồi ạ. Tại em đọc code em thấy cùng là các biến đó mà sao lại dùng được cho hai bảng dữ liệu khác nhau. Nên em mới thay thử cho Kỳ Trước các biến mới là Dim sArr1(), Rws1 As Long, MaNV1 As String, dArr1() thì code vân chạy đúng. Nên em mới hiểu được cái ý của anh "Sau khi hoàn thành nhiệm vụ của nó ở sheets("THANG8")" tức vẫn là biến đó nhưng nó đi làm nhiệm vụ ở một chỗ khác vẫn được ạ. Em muốn nhờ Anh thêm một điều kiện nữa với ạ. Vẫn là bài toán này nhưng thêm điều kiện là.
- Khi Lọc mã nhân viên ở Tháng 8 không lấy các dòng mà TEN_HANG là PP (Phế phẩm) vào kết quả tính toán => Chỗ này em hiểu code sẽ kiểu sArr(I, 6) <> "PP" mà em không biết thêm vào kiểu gì ạ.
- Tại Kỳ trước số liệu lấy vào sẽ loại bỏ mã KHO là HCM (vì đó là tổng kho)

Mong anh giúp đỡ nốt điều kiện này ạ ! Em cảm ơn ạ.

Nếu dùng PQ đó bạn, tích bỏ PP, rồi refresh là xong đó...

Snag_29466fb0.png
 

File đính kèm

  • GOP VA SO SANH SO LIEU.xlsm
    344.8 KB · Đọc: 17
Lần chỉnh sửa cuối:
Upvote 0
Cảm ơn anh @tranhungdao12a3
Tôi thấy việc dùng PQ đỡ nhiều công đoạn trung gian. Kể cả phần lấy mã nhân viên duy nhất từ 2 bảng cũng có thể làm được bằng merge query.
@Phương Phương mito: O2010 có addin Power pivot đó, nếu chưa upgade thì add vào. Nếu không thì đợi các chuyên gia VBA, ADO… xem sao nhé.
Anh nên dùng thử một trong ba ứng dụng sau Power Bi/Tableau/Qlik anh sẽ cảm nhận được sự khác biệt. Power Bi=Power query + Dax+ Power view+Power map, ba cái này mạnh chủ yếu về trực quan hóa.
 
Upvote 0
Anh nên dùng thử một trong ba ứng dụng sau Power Bi/Tableau/Qlik anh sẽ cảm nhận được sự khác biệt. Power Bi=Power query + Dax+ Power view+Power map, ba cái này mạnh chủ yếu về trực quan hóa.
Vâng anh, tôi có thấy a chia sẻ file covid bằng power bi rồi. Rất đẹp và kỳ công.
 
Upvote 0
Anh nên dùng thử một trong ba ứng dụng sau Power Bi/Tableau/Qlik anh sẽ cảm nhận được sự khác biệt. Power Bi=Power query + Dax+ Power view+Power map, ba cái này mạnh chủ yếu về trực quan hóa.
Em thấy bác có vẻ rất thạo trong việc sử dụng Power BI và Dax.
Bác có thời gian thì lập chủ đề và chia sẻ thêm kiến thức thực tế cho mọi người nhé!
 
Upvote 0
Em thấy bác có vẻ rất thạo trong việc sử dụng Power BI và Dax.
Bác có thời gian thì lập chủ đề và chia sẻ thêm kiến thức thực tế cho mọi người nhé!
Tôi không thạo lắm bạn. Tôi mới sử dụng nó chưa đầy 2 năm gần đây thôi. Mới chỉ biết ở mức độ cơ bản thôi. Ở đây anh excel_lv1.5 mới thạo món này bạn.
Bài đã được tự động gộp:

Vâng anh, tôi có thấy a chia sẻ file covid bằng power bi rồi. Rất đẹp và kỳ công.
File đấy tôi không làm toàn bộ mà chỉnh sửa của người khác. Cơ bản cũng không có gì đặc biệt, Đấy là mấy tính năng cơ bản của Power bi thôi, việc học cách làm báo cáo kiểu vậy tôi nghĩ chỉ học vài buổi là làm được. Học cách sử dụng Dax hay Power Query để cho ra kết quả mình mong muốn trong công việc tôi thấy mới mất nhiều thời gian hơn.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT

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

Back
Top Bottom