Miền Cát Trắng
Thành viên hoạt động



- Tham gia
- 18/5/13
- Bài viết
- 171
- Được thích
- 37







Khi nào bó tay với công thức thì xài cái nàyXin chào Thầy Cô và các bạn.
Em đang vướng mắc một vấn đề, đã nêu rõ trong file kèm.
Thầy cô cùng anh chị xem file giúp em với ạ.
Em xin cảm ơn.
Function cong(RngS As Range, RngDk As Range) As Long
Dim i, j, k, kq, tamS, tamD
tamS = RngS.Value
tamD = RngDk.Value
For i = 1 To UBound(tamS)
For j = 1 To UBound(tamD, 2)
If tamD(1, j) = tamS(i, 1) Then
kq = kq + tamS(i, 2)
End If
Next
Next
cong = kq
End Function



Khi nào bó tay với công thức thì xài cái này
PHP:Function cong(RngS As Range, RngDk As Range) As Long Dim i, j, k, kq, tamS, tamD tamS = RngS.Value tamD = RngDk.Value For i = 1 To UBound(tamS) For j = 1 To UBound(tamD, 2) If tamD(1, j) = tamS(i, 1) Then kq = kq + tamS(i, 2) End If Next Next cong = kq End Function
=cong(G4:N4)



Khi nào bó tay với công thức thì xài cái này
PHP:Function cong(RngS As Range, RngDk As Range) As Long Dim i, j, k, kq, tamS, tamD tamS = RngS.Value tamD = RngDk.Value For i = 1 To UBound(tamS) For j = 1 To UBound(tamD, 2) If tamD(1, j) = tamS(i, 1) Then kq = kq + tamS(i, 2) End If Next Next cong = kq End Function
=cong(C4:D9,G4:N4)




Code này sẽ cho tốc độ nhanh hơn rất nhiềuA,thì ra là thế này:
Em cảm ơn anh nhé!Mã:=cong(C4:D9,G4:N4)
Function cong2(RngS As Range, RngDk As Range) As Long
Dim i, j, kq, tamS, tamD
tamS = RngS.Value
tamD = RngDk.Value
With CreateObject("scripting.dictionary")
For i = 1 To UBound(tamS)
.Item(tamS(i, 1)) = tamS(i, 2)
Next
For j = 1 To UBound(tamD, 2)
If .exists(tamD(1, j)) Then
kq = kq + .Item(tamD(1, j))
End If
Next
End With
cong2 = kq
End Function






Code này sẽ cho tốc độ nhanh hơn rất nhiều
PHP:Function cong2(RngS As Range, RngDk As Range) As Long Dim i, j, kq, tamS, tamD tamS = RngS.Value tamD = RngDk.Value With CreateObject("scripting.dictionary") For i = 1 To UBound(tamS) .Item(tamS(i, 1)) = tamS(i, 2) Next For j = 1 To UBound(tamD, 2) If .exists(tamD(1, j)) Then kq = kq + .Item(tamD(1, j)) End If Next End With cong2 = kq End Function




Quét ngang và dọc khác nhau nên không ra kq đượcAnh Hải cho em hỏi thêm chút ạ,trong ô màu đỏ công thức không có gì thay đổi sao nó lại không ra kết quả vậy ạ.
Anh xem fiel đính kèm nhé!
Thử em này:Hì,một lần nữa xin cảm ơn Anh.
Em cũng áp dụng được ạ, nhưng vẫn mong muốn có thêm một trường hợp bằng công thức có sẵn để học hỏi ạ.
Em xin cảm ơn.
Mưa buồn thúi "duột"=SUMPRODUCT((C4:C9=G4:N4)*D49)



Thử em này:
ThânMã:[COLOR=#000000][I]=SUMPRODUCT((C4:C9=G4:N4)*D4:D9)[/I][/COLOR]
Có phải chỗ Chú đang mưa to và mưa lâu lâu, Chú không được đi đâu được phải không ạ?Mưa buồn thúi "duột"
Thân
Đúng "dzồi", sáng mới xách vợt ra khỏi nhà lại phải ...........chui vào giường, nên mới trả lời cho bạn được. HícDạ,cháu thử ô kê ạ! Xin cảm ơn Chú Cò nhé.
Còn dưới này là gì vậy Chú,hì cháu không hiểu nên tò mò:
Có phải chỗ Chú đang mưa to và mưa lâu lâu, Chú không được đi đâu được phải không ạ?
Hì,Cháu cảm ơn chú!


