Chuyển giá trị text trong ô thành điều kiện so sánh! (1 người xem)

Liên hệ QC

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

khunglongcodon

Thành viên thường trực
Tham gia
24/11/06
Bài viết
222
Được thích
100
Nghề nghiệp
Kế toán
Chào các anh/chị,
Em muốn chuyển 1 text trong ô thành điều kiện so sánh mà chưa biết phải làm sao cả. Mong các anh chị chỉ bảo. Giống như hàm SUMIF(a1:a10,">=100",b1:b10) thì viết lệnh sao để nó hiểu là so sánh lớn hơn hoặc bằng 100.
Em xin cảm ơn
 
Chào các anh/chị,
Em muốn chuyển 1 text trong ô thành điều kiện so sánh mà chưa biết phải làm sao cả. Mong các anh chị chỉ bảo. Giống như hàm SUMIF(a1:a10,">=100",b1:b10) thì viết lệnh sao để nó hiểu là so sánh lớn hơn hoặc bằng 100.
Em xin cảm ơn
Chắc là vầy:
- Gõ số 100 vào cell H1
- Sửa công thức thành =SUMIF(A1:A10,">=" & $H$1,B1:B10)
 
Upvote 0
Em muốn đưa điều kiện vào trong VBA giống file đính kèm
 

File đính kèm

Upvote 0
Em muốn đưa điều kiện vào trong VBA giống file đính kèm

Chắc là vầy chăng:
Mã:
Function Test(ByVal a As Range, ByVal b As String) As Double
  Dim Item, tmp As Double
  On Error Resume Next
  For Each Item In a
    If Evaluate(CStr(Item & b)) Then tmp = tmp + Item
  Next
  Test = tmp
End Function
 
Upvote 0
Cảm ơn anh ndu96081631 nhiều lắm ạ
Anh cho em hỏi thêm cái, em làm vầy để khi b không chứa dấu so sánh thì em thêm dấu bằng vào thì hợp lý không ạ:
Mã:
Function Test(ByVal a As Range, ByVal b As String) As Double
  Dim Item, tmp As Double
      If Left(b, 1) <> ">" Or Left(b, 1) <> "<" Or Left(b, 1) <> ">" Then b = "=" & b
  On Error Resume Next
  For Each Item In a
    If Evaluate(CStr(Item & b)) Then tmp = tmp + Item
  Next
  Test = tmp
End Function
 
Upvote 0
Cảm ơn anh ndu96081631 nhiều lắm ạ
Anh cho em hỏi thêm cái, em làm vầy để khi b không chứa dấu so sánh thì em thêm dấu bằng vào thì hợp lý không ạ:
Mã:
Function Test(ByVal a As Range, ByVal b As String) As Double
  Dim Item, tmp As Double
      If Left(b, 1) <> ">" Or Left(b, 1) <> "<" Or Left(b, 1) <> ">" Then b = "=" & b
  On Error Resume Next
  For Each Item In a
    If Evaluate(CStr(Item & b)) Then tmp = tmp + Item
  Next
  Test = tmp
End Function

Sửa đi sửa lại mất công lắm! Thôi thì bạn nói cho mọi người biết mục đích cuối cùng của bạn là cái gì đi! SUMIF à? Nhưng nếu thật sự là SUMIF thì thà dùng luôn cái có sẵn cho rồi. Bạn nghĩ hàm tự tạo do ta viết có "thắng" nỗi hàm SUMIF do MS viết không?
Nói chung: Chúng ta chỉ viết cái gì chưa có mà thôi
 
Upvote 0
Em chỉ tập tành thử để biết cách đưa các trường hợp vào trong hàm thôi ạ. giả sử em muốn viết một hàm có điều kiện thì để điều kiện nhiều cách như hàm sumif cho nó hay thôi ạ.
 
Upvote 0
Em chỉ tập tành thử để biết cách đưa các trường hợp vào trong hàm thôi ạ. giả sử em muốn viết một hàm có điều kiện thì để điều kiện nhiều cách như hàm sumif cho nó hay thôi ạ.

Thế thì tham khảo cách viết code trong hàm Filter2DArray nhé:
http://www.giaiphapexcel.com/forum/...mắc-góp-ý-hoàn-thiện-về-hàm-UDF-Filter2DArray
Giống cách so sánh của SUMIF đấy
 
Upvote 0
Web KT

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

Back
Top Bottom