Tính toán công nợ bán hàng

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ị,
Em có sheet Doanh_thu và Cong_no theo dõi theo KH và mã hợp đồng kinh tế. Em có làm một bảng tính toán và phân loại công nợ tại sheet Tinh_toan. Nhờ anh chị hỗ trợ làm theo code VBA để tiện cho theo dõi và tính toán định kỳ ạ.
 

File đính kèm

  • Thong ke cong no.xlsm
    361.7 KB · Đọc: 18
Mình giúp bạn được chút xíu rồi nè, bạn xem thử đi rồi mọi người sẽ đóng góp thêm cho bạn nhé.
 

File đính kèm

  • Thong ke cong no.xlsm
    683 KB · Đọc: 8
Upvote 0
Mình giúp bạn được chút xíu rồi nè, bạn xem thử đi rồi mọi người sẽ đóng góp thêm cho bạn nhé.
Dạ, em cảm ơn anh ạ. Còn 3 cột là đếm 2 phân kỳ trả nợ và chỗ nhận xét kỳ trả nợ anh nhỉ. Cái chỗ đó hay mình làm công thức rồi Fill nó xuống a nhỉ. Nửa code nửa công thức trong code.he
 
Upvote 0
Dạ, em cảm ơn anh ạ. Còn 3 cột là đếm 2 phân kỳ trả nợ và chỗ nhận xét kỳ trả nợ anh nhỉ. Cái chỗ đó hay mình làm công thức rồi Fill nó xuống a nhỉ. Nửa code nửa công thức trong code.he
Để vài hôm nữa người nào biết sẽ giúp cho bạn, cái phần đó khó hơn, mà cũng không khó lắm. mình chưa làm được.
 
Upvote 0
Bạn có thể dùng Power Pivot:
Dữ liệu có vẻ chưa hợp lý lắm, một số khoản thu nhưng hợp đồng không có số tiền
1630804412477.png
 

File đính kèm

  • Thong ke cong no.xlsm
    3.2 MB · Đọc: 6
Upvote 0
Bạn có thể dùng Power Pivot:
Dữ liệu có vẻ chưa hợp lý lắm, một số khoản thu nhưng hợp đồng không có số tiền
View attachment 265458
Em cảm ơn anh ạ !
Bài đã được tự động gộp:

Cảm ơn anh nhiều ạ !
 
Upvote 0
File nay chạy tốt nè bạn nhưng số liệu so sánh giữa 2 kết quả thì thấy chưa đúng lắm. Bạn xem thử nhé.
 

File đính kèm

  • Thong ke cong no- ban moi.xlsm
    628.4 KB · Đọc: 9
Upvote 0
Kính gửi Anh chị,
Em có sheet Doanh_thu và Cong_no theo dõi theo KH và mã hợp đồng kinh tế. Em có làm một bảng tính toán và phân loại công nợ tại sheet Tinh_toan. Nhờ anh chị hỗ trợ làm theo code VBA để tiện cho theo dõi và tính toán định kỳ ạ.
Bạn chạy code rồi kiểm tra tại sheet KQ thử xem (tôi chưa sắp xếp theo cột nào cả)
 

File đính kèm

  • Thong ke cong no_Phương Phương mito.xlsm
    349.7 KB · Đọc: 18
Upvote 0
Upvote 0
Tôi dùng dictionary cơ bản thôi mà. Bạn chưa hiểu từ chỗ nào?
2 đoạn này Anh!

PHP:
 arrKQ(Dic.Item(dKey), 3) = arrKQ(Dic.Item(dKey), 3) + arrDT(i, 6)
        arrKQ(Dic.Item(dKey), 4) = arrKQ(Dic.Item(dKey), 4)

PHP:
If Left(arrKQ(Dic.Item(dKey), 9), 2) = "Ng" Then
            arrKQ(Dic.Item(dKey), 9) = arrCN(i, 5)
 
Upvote 0
2 đoạn này Anh!

PHP:
 arrKQ(Dic.Item(dKey), 3) = arrKQ(Dic.Item(dKey), 3) + arrDT(i, 6)
        arrKQ(Dic.Item(dKey), 4) = arrKQ(Dic.Item(dKey), 4)

PHP:
If Left(arrKQ(Dic.Item(dKey), 9), 2) = "Ng" Then
            arrKQ(Dic.Item(dKey), 9) = arrCN(i, 5)
arrKQ(Dic.Item(dKey), 3) = arrKQ(Dic.Item(dKey), 3) + arrDT(i, 6) là cộng doanh thu vào cái dòng Khách hàng&Hợp đồng nào đó đã được lưu trong mảng kết quả tại dòng Dic.Item(dKey), được xác định bằng biến k khi thêm vào Dic. Vì dụ: Dic.Item(dKey) = 5 thì tìm arrKQ(dòng 5, cột 3) cộng doanh thu arrDT(i, 6) vào đó.

arrKQ(Dic.Item(dKey), 4) = arrKQ(Dic.Item(dKey), 4) + 1 là cộng 1 vào mảng kết quả của số lần xuất hiện của cặp Khách hàng&Hợpđồng nào đó có dòng là Dic.Item(dKey) như giải thích ở trên và cột là 4.

If Left(arrKQ(Dic.Item(dKey), 9), 2) = "Ng" Là do trước đó tôi lưu chuỗi "Người mua chưa thanh toán"ở các cột 5, 7, 8, 9 ở mảng kết quả nên chừ nếu thấy chuỗi đó (tức 2 chữ đầu = Ng đó mà), thì ghi cái ngày trả nợ vào đấy. Nếu không thấy chuỗi đó thì so sánh WorksheetFunction.Max(arrCN(i, 5), arrKQ(Dic.Item(dKey), 9)) để lấy cái ngày lớn để nhất ghi vào.
Nếu ở trên mà so sánh ngày tháng với chuỗi kia thì sẽ gây lỗi nên buộc phải dùng điều kiện If ... Else này
 
Upvote 0
arrKQ(Dic.Item(dKey), 3) = arrKQ(Dic.Item(dKey), 3) + arrDT(i, 6) là cộng doanh thu vào cái dòng Khách hàng&Hợp đồng nào đó đã được lưu trong mảng kết quả tại dòng Dic.Item(dKey), được xác định bằng biến k khi thêm vào Dic. Vì dụ: Dic.Item(dKey) = 5 thì tìm arrKQ(dòng 5, cột 3) cộng doanh thu arrDT(i, 6) vào đó.

arrKQ(Dic.Item(dKey), 4) = arrKQ(Dic.Item(dKey), 4) + 1 là cộng 1 vào mảng kết quả của số lần xuất hiện của cặp Khách hàng&Hợpđồng nào đó có dòng là Dic.Item(dKey) như giải thích ở trên và cột là 4.

If Left(arrKQ(Dic.Item(dKey), 9), 2) = "Ng" Là do trước đó tôi lưu chuỗi "Người mua chưa thanh toán"ở các cột 5, 7, 8, 9 ở mảng kết quả nên chừ nếu thấy chuỗi đó (tức 2 chữ đầu = Ng đó mà), thì ghi cái ngày trả nợ vào đấy. Nếu không thấy chuỗi đó thì so sánh WorksheetFunction.Max(arrCN(i, 5), arrKQ(Dic.Item(dKey), 9)) để lấy cái ngày lớn để nhất ghi vào.
Nếu ở trên mà so sánh ngày tháng với chuỗi kia thì sẽ gây lỗi nên buộc phải dùng điều kiện If ... Else này
Code chạy đúng ạ, Em cảm ơn anh đã giúp đỡ ạ !
 
Upvote 0
Upvote 0
Tôi là kế toán nên tôi tham gia thêm 1 chút. Tôi thấy dữ liệu và sử lý dữ liệu có vấn đề là hàng loạt khách hàng hay HĐ trong congno không có trong DoanhThu. Như vậy thì số số tiền công nợ này như thế nào? Về nguyên tắc Doanh thu phải thể hiện toàn bộ khách hàng và hợp đồng, kể cả mới ký và ứng trước chưa thực hiện (Doanh thu=0 và công nợ bằng tiền ứng). Trong các cột tính toán sau này chỗ thì Number, chỗ thì Text thật lộn xộn.
Vậy dù đã cám ơn thì cũng nên xem lại thì niềm vui mới trọn vẹn.
 
Upvote 0
Web KT
Back
Top Bottom