Hàm đổi chữ thành số để tính toán? (1 người xem)

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

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
Xin 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.
 

File đính kèm

Xin 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.
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
 
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

Em cảm ơn Anh Hải đã giúp ạ.
Hàm này cú pháp dùng thế nào vậy Anh?
Em nhập:
Mã:
=cong(G4:N4)
Không thấy ra kết quả.. hix.

Trong trường hợp này em vẫn muốn dùng công thức hơn.
Nhưng nếu không có cách nào khác thì vẫn có thể dùng hàm tự tạo để thay thế ạ.
Em xin cảm ơn.
 
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

A,thì ra là thế này:
Mã:
=cong(C4:D9,G4:N4)
Em cảm ơn anh nhé!
 
A,thì ra là thế này:
Mã:
=cong(C4:D9,G4:N4)
Em cảm ơn anh nhé!
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
 
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.
 
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

Anh 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é!
 

File đính kèm

Thử em này:
Mã:
[COLOR=#000000][I]=SUMPRODUCT((C4:C9=G4:N4)*D4:D9)[/I][/COLOR]
Thân

Dạ,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ò:
Mưa buồn thúi "duột"
Thân
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ú!
 
Dạ,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ú!
Đú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íc
Hôm nay vừa là ngày Chủ nhật lại nằm trong 4 ngày nghỉ lễ, chắc Smod & Mod đi hơi hết rồi, tha hồ mà "xì- pam". Hihi|||||||||||||||
 

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

Back
Top Bottom