Nhờ giúp code thống kê số lượng tại một thời điểm cụ thể trong tháng (1 người xem)

Liên hệ QC

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

OsamaPikachu

Thành viên mới
Tham gia
19/4/14
Bài viết
17
Được thích
0
Chào các bạn, hiện nay mình có 1 bài toàn như thế này. Giả sử Nhà máy xuất hàng liên tục và xe vào lấy hàng 24/24. Có File Excel thế này

Code ------------------Truck No.------------- Time in -----------Time out
1046852 ---------------TG 13140 -------------1/31/14 9:15 ------2/2/14 12:30
1046863 ---------------TV 0207 --------------2/27/14 11:35 -------2/28/14 14:15
1046889 ----------------VL 10098 ------------2/27/14 11:40 --------2/28/14 10:42
1046877 ----------------BT 0841 --------------2/27/14 20:00 -------2/28/14 1:50
1046906 ----------------LA 05789 -------------2/28/14 11:15 -------2/28/14 17:20
1046908 ----------------AG 19835 -------------2/28/14 11:30 -------2/28/14 17:20




Mình muốn thống kê đếm xem cụ thể ngày 27/2 lúc 18 giờ thì có bao nhiêu phương tiện tại nhà máy.

Ví dụ: Phương tiện A vào 10h 10/10 ra lúc 13h 10/10
Phương tiện B vào 12h 10/10 ra lúc 14h 10/10
===> thì lúc 10h - 1 phương tiện(pt), 11h - 1pt, 12h - 2pt (vì B vào lúc 12h), 13h - 2pt, 14h - 1pt.

Vậy đó, từng ngày với từng giờ cụ thể trong 1 tháng đó.

Thú thật thì mình mới tìm tòi VBA nên còn gà lắm-\\/.. Nhưng mình có giải pháp sau nhưng không biết triển khi như thế nào +-+-+-+. Các bạn xem thử góp ý giúp mình nhé.

Giải pháp:
Tạo drop-list chon tháng mún thống kê (12 tháng)
Tạo 1 mảng 2 chiều với tượng trung cho ngày giờ. Matrix(1 to 31, 0 to 23)
Duyệt từng tự Range Time in, time out. Chọn đơn hàng trong tháng cần thống kê. Lấy Day và Hour ra.

Giả sử ngày ngày phương tiện vào lúc 10h 10/10 ra 13h 10/10 thì

Nếu (Day.out - Day.in) = 0 thì
For a = Hour-in to Hour-out
Matrix(Day-in,a) = Matrix(Day-in,a) + 1
Next a

Nếu Nếu (Day.out - Day.in) = 1 thì
For b = Hour-in to 23
Matrix(Day-in,b) = Matrix(Day-in,b) + 1
Next b

For c = 0 to Hour-out
Matrix(Day-out,c) = Matrix(Day-out,c) + 1
Next c

Tương tự Day.Out - Day.in >1. vì dụ 2 ngày. thì cũng tương tự như trên cộng thêm 1 mỗi Matrix(Day.in+1,0) - > ( Matrix(Day.in+1,23) .......

Day.Out - Day.in <0 (Vào tháng trước ra tháng này hoặc vào tháng này ra tháng sau) thì mình so sánh tháng của 2 thằng để nhậnbi1e61t rồi cộng giờ trong tháng thôi.


Xong rồi qua Sheet kia chạy cái Mảng 2 chiều đó ra tương tự ngày 10 lúc 10h là Matrix(10,10) là xong.@$@!^%@$@!^%


Các bạn rối mù lên chưa &&&%$R @@. Sorry vì mình nghĩ sao ghi lại như vậy thôi chứ chả bít ghi sao cho dễ hiển cũng không biết tối ưu chưa hoặc viết code lun @@ -\\/..


Mong các bạn giúp đỡ mình.

P/s Đc thì các bạn code nó dễ dễ để mình còn hiểu với nhé. thanks. Mình có đính kèm file excel mẫu }}}}}
 

File đính kèm

Hình như bạn trùng họ với trùm khủng bố, nhỉ?

Bạn xem trong file & kiểm tra lại đi nha!

,,,,,,,,,,,,,,,,,,,,,
 

File đính kèm

Upvote 0
Bạn làm quá tuyệt nhưng trình mình non nên ko hiểu hết đc. Nếu đc bạn chia sẽ mình cái hướng giải quyết đc ko @$@^#-\\/.-\\/.
 
Upvote 0

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

Back
Top Bottom