Macro lọc dữ liệu và tính tổng!

Liên hệ QC

tranviethung

Thành viên mới
Tham gia
26/8/08
Bài viết
37
Được thích
3
File gồm các cột: A,B,C,D,E.
Cần lọc ra các giá trị của 1 giờ (ở cột C)của tất cả các ngày rồi tính tổng giá trị tương ứng của giờ đó( ở cột D). Các bạn để ý là các giá trị giờ hơn nhau 30 phút. Vậy trong 1 ngay sẽ có 48 thời điểm. Như vậy cần lọc và tính tổng của 48 thơì điểm với các giá trị tương ứng của chúng. Ví dụ thời điểm 11h30 cúa tất cả các ngày có trong cột C thì tổng giá trị của chúng là bao nhiêu? Yêu cầu kết quả chứa trong cột G: từ hàng 1 đến hàng 48 tương ứng với 48 thời điểm: giá trị tổng của một thời điêm trong tất cả các ngày.
File đính kèm mô tả đây các bạn nhé!
View attachment F1.xls
 
Bạn có thể thêm 1 cột như cột màu xanh rồi dùng hàm chuyển đổi ngày thành giờ. Sau đó dùng hàm sumif() cộng lại.
Nếu dung VBA thì cột màu đỏ là kết quả của hàm dưới đây (Khong can cot mau xanh)

PHP:
Option Explicit
Function SumDK(Ng As Range, tg As Date, Ct As Integer)
Dim Cl As Range
For Each Cl In Ng.Cells
If TimeSerial(Hour(Cl.Value), Minute(Cl.Value), 0) = tg Then
SumDK = SumDK + Cl.Offset(, Ct)
End If
Next
End Function
Cú pháp = SumDK(Vung ngay gio, Gio tinh ,Cong o cot thu may ben phai tu cot ngay)

Ví dụ: =sumdk($C$1:$C$400,F1,1)
 

File đính kèm

  • Copy of F1.rar
    26.7 KB · Đọc: 276
Lần chỉnh sửa cuối:
Thanks Sealand, nhưng Vấn đề là mình có khoảng 300 file kiểu như vậy, nên muốn viết 1 macro để nó chạy tự động khi mở file đó ra là cho kết quả trong 2 cột: F và G, F chứa mốc thời gian, G chứa tổng giá trị ứng với mỗi mốc thời gian ấy!
 
Bạn chép hàm này vào 1 file trắng cho nhẹ roi lưu lại với tên Sumdk.xla (Lưu dạng add-In).Sau đó bạn bổ xung vào Add-In. Như vậy không riêng 300 file mà tất cả các file mở ở máy của bạn đều sử dụng được hàm SumDK()
 
File gồm các cột: A,B,C,D,E.
Cần lọc ra các giá trị của 1 giờ (ở cột C)của tất cả các ngày rồi tính tổng giá trị tương ứng của giờ đó( ở cột D). Các bạn để ý là các giá trị giờ hơn nhau 30 phút. Vậy trong 1 ngay sẽ có 48 thời điểm. Như vậy cần lọc và tính tổng của 48 thơì điểm với các giá trị tương ứng của chúng. Ví dụ thời điểm 11h30 cúa tất cả các ngày có trong cột C thì tổng giá trị của chúng là bao nhiêu? Yêu cầu kết quả chứa trong cột G: từ hàng 1 đến hàng 48 tương ứng với 48 thời điểm: giá trị tổng của một thời điêm trong tất cả các ngày.
File đính kèm mô tả đây các bạn nhé!
View attachment 42868

Bạn thử code này xem (nhấn tổ hợp phím Ctrl + Shift + R để chạy code)
Để cộng các file khác bạn chép Module này sang để chạy hoặc chuyển Sheet muốn cộng vào file này và chạy code.
 

File đính kèm

  • Sum_Time.xls
    97 KB · Đọc: 202
Cảm ơn các thành viên của diễn đàn đã chia sẻ những kiến thức bổ ích, mình đang muốn học về các lệnh macro, các bạn có thể hướng dẫn và gửi tài liệu cho mình được không? Chân thành cảm ơn các bạn.
Các bạn có thể gửi tài liệu như các câu lệnh và ý nghĩa theo địa chỉ: dotruonggiang18@gmail.com
 
Hi mọi người
Mình là người mới và đã lâu không sử dụng Excel nên giờ thành mù tịt.Mong mọi người giúp đỡ
Vừa qua mình có 1 bài tập về Chương trình thưởng doanh số: vd cho mốc thời gian 20/6/2011 - 30/10/2011 (thời điểm xét thưởng đợt 1: 30/7/2011, xét thưởng đợt 2: 30//10/2011
áy 1: 50$/máy, máy 2: 30$/máy, máy 3: 30$/máy
nếu khách muốn được thưởng tiền mặt thì phải đạt được số lượng tối thiểu lần xét đợt 1 là 50 máy, đợt 2 là 100 máy(các loại). Chỉ được nhận thưởng 1 lần sau 2 đợt
Mình dùng hàm sumif nhưng kết quả ra không đúng. Có cách nào tối ưu không, mong mọi người giúp đỡ.
 
Web KT
Back
Top Bottom