Trợ giúp làm code VBA

Liên hệ QC

all4one86

Thành viên mới
Tham gia
21/3/08
Bài viết
1
Được thích
0
Mình có 1 file excel về kế toán, có 2 sheet là GL và TB.

Sheet GL lưu trữ dữ liệu giao dịch
Sheet TB tổng hợp là tính toán dự trên sheet GL

Trên sheet TB mình muốn tính theo period từng tháng, hoặc từ tháng này đến tháng khác.

Column B.Balance là số dư đầu kỳ. Ví dụ: nếu period là từ tháng 01 đến tháng 01 thì ko có số dư đầu kỳ (B.Balance), từ tháng 02-03 thì số dư đầu kỳ là tháng 01, từ tháng 03 đến tháng 06 thì số dư đầu kỳ sẽ là tháng 01 + 02.

Column Debit và Credit thì tính cộng dồn dự trên data bên sheet GL, ví dụ: nếu period từ tháng 04-06, số dư đầu kỳ sẽ là tháng 01+02+03, dữ liệu Debit hay Credit thì tùy thuộc vào sheet GL và công thức là tháng 04+05+06.

Các bạn chuyên về VBA có thể giúp mình tạo lập code để xử lý nhanh vấn đề này được ko?

Cảm ơn các bạn nhiều
 

File đính kèm

Hình như bạn chỉ gửi 1 phần dữ liệu tham khảo chứ không gửi hết 1 file hoàn chỉnh do vậy thiếu thông tin tham khảo.

Dựa vào những gì bạn đã gửi thì mình xin đưa ra ý kiến như sau. Bạn hoàn toàn có thể chỉ dùng công thức để làm việc. Với việc căn cứ vào period để tính thì cũng không khó đâu. Gợi ý bạn 1 công thức chung chung thế này nhé: Tổng = if(month(period)>4, giá trị của tháng 4,0) +if(month(period)>3, giá trị của tháng 3,0) +if(month(period)>2, giá trị của tháng 2,0) +if(month(period)>1, giá trị của tháng 1,0).

Nếu đòi hỏi phức tạp hơn thì khéo léo 1 chút bạn cũng sẽ tìm ra cách viết công thức. Bạn có thể dùng thêm 1 vài cột ẩn (hide) làm tính toán trung gian.

Hy vọng bạn sẽ hiểu ý mình và thực hiện được!
 
Upvote 0
progamer đã viết:
Tổng = if(month(period)>4, giá trị của tháng 4,0) +if(month(period)>3, giá trị của tháng 3,0) +if(month(period)>2, giá trị của tháng 2,0) +if(month(period)>1, giá trị của tháng 1,0).
Chào bạn Game thủ chuyên nghiệp (ProGamer),
Bạn có thấy công thức của bạn nếu dùng cho period có giá trị lớn (từ 6 đến 12) là quá dài dòng không?
 
Upvote 0
Nếu ptm0412 có phương án nào đơn giản hơn thì mình rất muốn được học hỏi.

Có những công thức có vẻ dài nhưng thực sự thao tác lập cộng thức đó chỉ bằng 1/n (1...) độ dài công thức đó thui. Cái khéo là biết copy/replace....
 
Upvote 0
Tôi không biết thui đốt gì cả, nhưng dùng SumProduct hoàn toàn giải quyết vấn đề số dư đầu kỳ, và giải quyết phát sinh trong kỳ.
Và khi dùng hàm này, dù 1 tháng hay 12 tháng, công thức dài bằng nhau.
Thậm chí 1 công thức dùng cho mọi trường hợp báo cáo cho 2 tháng đầu, 3 tháng giữa, 4 tháng cuối ...

Nói thêm: Làm được như vậy mới xét đến chuyện khéo hay không khéo, nghĩa là nấu 1 món khéo thì thực khách chỉ việc ăn, chứ không bận tâm đến chuyện phải ăn 1 cách khéo để khỏi mắc nghẹn.
 
Lần chỉnh sửa cuối:
Upvote 0
Sư phụ,
Xem em làm zầy có khéo hong nhoa!

Phải lập bảng số dư đầu năm nà
Dùng vlookup lấy số dư đầu năm nà
Dùng SumProduct lấy phát sinh trước ngày bắt đầu period nà
Tính số dư ngày bắt đầu period nà
Dùng SumProduct tiếp, lấy số phát sinh Debit/ Credit trong khoảng thời gian period nà
Cộng trừ ra số dư cuối period nà

Đó là công thức, còn VBA thì chờ mấy vị sư phụ sư thúc sư huynh nhoa!
 

File đính kèm

Upvote 0
Web KT

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

Back
Top Bottom