hàm sumproduct tính tổng nhiều điều kiện

Liên hệ QC

hoc341992

Thành viên chính thức
Tham gia
27/7/17
Bài viết
77
Được thích
5
Giới tính
Nam
em có một hàm như thế này : =SUMPRODUCT(--(Sheet2!H9:H5000>=D7),--(Sheet2!H9:H5000<=D8),--(Sheet2!Q9:Q5000=B10),--(Sheet2!N9:N5000="Sửa chữa"),--(Sheet2!P9:p5000))

H9:H5000 là thời gian nhập vào từ Form txtThoiGian, Nhập vào từ form như vậy thì sumproduct nó tính không được. Mình phải vào sheet để chuột vào ô thời vừa nhập xong enter một cái thì sumproduct nó mới chấp nhận tính, mong mọi người cho em giải pháp
 
Trước khi nhập giá trị từ txtThoigian, bạn cần chuyển đổi giá trị của txtThoigian về dạng số, nếu không excel sẽ nhận 1 giá trị text nên không tính toán được.
 
Trước khi nhập giá trị từ txtThoigian, bạn cần chuyển đổi giá trị của txtThoigian về dạng số, nếu không excel sẽ nhận 1 giá trị text nên không tính toán được.
dạ dược rồi anh, sẵn cho em hỏi hàm =COUNTIFS(Sheet2!Q9:Q5000,"B10",Sheet2!N9:N5000,"Hoàn thành") mình muốn nó đếm thỏa 2 điều kiện B10 và " Hoàn thành" ( B10 là cell nhập tên ví dụ Học, Quý, Hương,...)
 
Bỏ cặp dấu nháy đơn : B10 thay cho "B10".
 
hi được rồi, em muốn cho nó đếm từ ngày mình chọn cho đến ngày kết thúc mình thì được không anh
Được, thêm điều kiện thôi chứ có gì đâu. So sánh điều kiện ngày tháng lớn hơn hoặc bằng ngày bắt đầu, nhỏ hơn hoặc bằng ngày kết thúc.
 
Được, thêm điều kiện thôi chứ có gì đâu. So sánh điều kiện ngày tháng lớn hơn hoặc bằng ngày bắt đầu, nhỏ hơn hoặc bằng ngày kết thúc.
=COUNTIFS(Sheet2!H9:H5000,>=D7,Sheet2!H9:H5000,<=D8,Sheet2!Q9:Q5000,B10,Sheet2!N9:N5000,"Hoàn thành")
chỉnh lại giúp em với, hi
 
Trước khi nhập giá trị từ txtThoigian, bạn cần chuyển đổi giá trị của txtThoigian về dạng số, nếu không excel sẽ nhận 1 giá trị text nên không tính toán được.
sr a, e bị nhầm rồi. Vấn đề này vẫn chưa được. em làm như thế này a xem lại thử :
Me.txtThoiGian = Format(Date)
Private Sub txtThoiGian_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'sub chi cho nhap 123456789, vao textbox
If InStr("1234567890" + Chr$(vbKeyBack), Chr$(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub
 
sr a, e bị nhầm rồi. Vấn đề này vẫn chưa được. em làm như thế này a xem lại thử :
Me.txtThoiGian = Format(Date)
Private Sub txtThoiGian_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'sub chi cho nhap 123456789, vao textbox
If InStr("1234567890" + Chr$(vbKeyBack), Chr$(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub
Ý tôi là đoạn code gán giá trị từ txtThoigian vào e cell.
 
Trước khi nhập giá trị từ txtThoigian, bạn cần chuyển đổi giá trị của txtThoigian về dạng số, nếu không excel sẽ nhận 1 giá trị text nên không tính toán được.
Private Sub txtThoiGian_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) 'sub chi cho nhap 123456789, vao textbox
If InStr("1234567890" + Chr$(vbKeyBack), Chr$(KeyAscii)) = 0 Then
KeyAscii = 0
End If
End Sub
Ý tôi là đoạn code gán giá trị từ txtThoigian vào e cell.
.Range("h" & dong_cuoi) = txtThoiGian.Text

ý anh là như này hả
 
.Range("h" & dong_cuoi) = value(txtThoiGian.Text), tại Range("h" & dong_cuoi) định dạng là thời gian. Nếu thời gian của bạn là dạng ngày tháng thì thử thêm cái này nữa: .Range("h" & dong_cuoi) = CDate(txtThoiGian.Text). Được cách nào dùng cách đó.
 
.Range("h" & dong_cuoi) = value(txtThoiGian.Text), tại Range("h" & dong_cuoi) định dạng là thời gian. Nếu thời gian của bạn là dạng ngày tháng thì thử thêm cái này nữa: .Range("h" & dong_cuoi) = CDate(txtThoiGian.Text). Được cách nào dùng cách đó.
CDate(txtThoiGian.Text) nhập vào là nó tự tính được rồi anh. tks a

Khi em nhập 1 máy vào sẽ trong tình trạng sửa chữa, và khi nào máy làm xong thì em sẽ vào excel để sửa nó thành trạng thái Hoàn thành, Khi bấm Cập Nhật thì thời gian nó lại không tính được anh.

Private Sub btnCapNhat_Click()

Dim iRow As Long, I As Long, arr(1 To 11), lr As Long, r As Long, kq

lr = Sheets("Sheet2").Range("G" & Rows.Count).End(xlUp).Row
For r = 9 To lr
If Me.txtSTT.Value = Sheet2.Range("G" & r).Text Then
arr(1) = Me.txtSTT: arr(2) = Me.txtThoiGian: arr(3) = TxtPhoneName: arr(4) = TxtImei: arr(5) = TxtNote: arr(6) = TxtPhone: arr(7) = TxtReceiver: arr(8) = CbxSst: arr(9) = TxtUserName: arr(10) = TxtPrice: arr(11) = txtNguoiSua
Sheets("Sheet2").Range("G" & r).Resize(1, 11) = arr
MsgBox "Cap nhat so lieu thanh cong!", vbInformation
Unload Me 'thoat FORM

End If
Next

End Sub
 
Thử cái đoạn này arr(2) = CDate(Me.txtThoiGian.value)

Xem lại đoạn If Me.txtSTT.Value = Sheet2.Range("G" & r).Text Then, thử sửa thành If value(Me.txtSTT.Value) = Sheet2.Range("G" & r).Value Then
 
Web KT
Back
Top Bottom