Đếm ô dữ liệu trên 1 dòng trùng nhau bằng code

Liên hệ QC

thanh tong

Thành viên hoạt động
Tham gia
27/5/10
Bài viết
122
Được thích
11
Các bậc thầy cho tôi hỏi một chút
Tôi muốn dùng code đếm dữ liệu trùng nhau trên một dòng hoặc một cột với mục đích là để viết code tạo ra thông báo khi có dữ liệu thứ hai trùng với dữ liệu thứ nhất khi mà mình vừa nhập xong dữ liệu thứ 2 ( tôi đang học VBA)
Cảm ơn các thầy.
 
Lần chỉnh sửa cuối:
Bạn thử hàm sau xem có đúng không:

Mã:
Function Dupl(Rg As Range)
Dim ch, ch1, i
With WorksheetFunction
For i = 1 To Rg.Count
If Rg(i) <> "" Then
ch = ch & Rg(i).Value & ";"
If .CountIf(Range(Rg(1), Rg(i)), Rg(i).Value) = _
1 Then ch1 = ch1 & Rg(i).Value & ";"
End If
Next
End With
Dupl = UBound(Split(ch, ";")) - UBound(Split(ch1, ";"))
End Function

Đếm các ô trùng trong vùng A1:A100 ta viết =Dupl(A1:A100)
 
Upvote 0
Mình chuyển hàm dùng chuỗi sang mảng để tránh hạn chế đội dài chuỗi
Mã:
Function Dupl1(Rg As Range)
Dim mg1(), mg2(), i, m, n
With WorksheetFunction
For i = 1 To Rg.Count
If Rg(i) <> "" Then
ReDim Preserve mg1(n)
mg1(n) = Rg(i).Value
n = n + 1
If .CountIf(Range(Rg(1), _
Rg(i)), Rg(i).Value) = 1 Then
ReDim Preserve mg2(m)
mg2(m) = Rg(i).Value
m = m + 1
End If
End If
Next
End With
Dupl1 = UBound(mg1) - UBound(mg2)
End Function

Mình nghĩ lần sau bạn đừng đặt vấn đề như vậy vì mình không phải là bậc thấy nên trả lời kể cũng ngại.
 
Upvote 0
Mình chuyển hàm dùng chuỗi sang mảng để tránh hạn chế đội dài chuỗi
Mã:
Function Dupl1(Rg As Range)
Dim mg1(), mg2(), i, m, n
With WorksheetFunction
For i = 1 To Rg.Count
If Rg(i) <> "" Then
ReDim Preserve mg1(n)
mg1(n) = Rg(i).Value
n = n + 1
If .CountIf(Range(Rg(1), _
Rg(i)), Rg(i).Value) = 1 Then
ReDim Preserve mg2(m)
mg2(m) = Rg(i).Value
m = m + 1
End If
End If
Next
End With
Dupl1 = UBound(mg1) - UBound(mg2)
End Function
Mình nghĩ lần sau bạn đừng đặt vấn đề như vậy vì mình không phải là bậc thấy nên trả lời kể cũng ngại.
Em áp dụng hàm của anh vào bảng tính như sau:

untitled.JPG

Nhìn vào kết quả mà cứ suy nghĩ mãi... không hiểu số 2 ở trên mang ý nghĩa gì
???
 
Upvote 0
Mình cũng phỏng đoán thôi rằng tác giả muốn đếm có bao nhiêu ô bị trùng so với các ô đã có, tức là trong dữ liệu có 2 chữ 'a' bij trùng
 
Upvote 0
Mình cũng phỏng đoán thôi rằng tác giả muốn đếm có bao nhiêu ô bị trùng so với các ô đã có, tức là trong dữ liệu có 2 chữ 'a' bij trùng
Làm chẳng cực mà cái MÀU ĐỎ ấy quả thật khổ trăm bề! Hic...
Sau này mấy "đại ca" có vào đây hỏi gì thì cũng nên "theo sát" đề tài của mình 1 chút ---> Lý nào lại "mang con bỏ chợ" thế
(Đừng nói câu "bận quá..." nha)
 
Upvote 0
Cảm ơn Sealan Code mà bạn đưa ra chưa đúng ý của mình lỗi nay là tại mình hỏi không rõ nên bạn trả lời giúp mình nó chưa đúng, thực ra là mình muốn hỏi để mình tự làm một code cho một thông báo khi mình nhập dữ liệu thứ 2 vào một cột hoặc một dòng giống một dữ liệu đã có thì nó hiện lên một thông báo hoặc là nó tự xoá ngay sau khi mình nhập vào ( Mình đang học VBA - Mới biết được chữ A thôi)
 
Upvote 0
Cảm ơn Sealan Code mà bạn đưa ra chưa đúng ý của mình lỗi nay là tại mình hỏi không rõ nên bạn trả lời giúp mình nó chưa đúng, thực ra là mình muốn hỏi để mình tự làm một code cho một thông báo khi mình nhập dữ liệu thứ 2 vào một cột hoặc một dòng giống một dữ liệu đã có thì nó hiện lên một thông báo hoặc là nó tự xoá ngay sau khi mình nhập vào ( Mình đang học VBA - Mới biết được chữ A thôi)
Nếu là "CHỐNG NHẬP TRÙNG" thì bạn có thể dùng Validation mà làm (và thường người ta sẽ dùng hàm COUNTIF là điều kiện)
Còn như muốn dùng code thì cũng trên thuật toán đó thôi: COUNTIF
 
Upvote 0
Em cảm ơn Bác NDU96081631
Xin lỗi bác cho em hỏi số 96081631 co phải số điện thoại của bác không?
nếu phải thì em có thể gọi cho bác để hỏi bài được chứ? em cũng hay vào diễn đàn hằng ngày có lúc em biết bác cũng đang trong diễn đàn nhưng em không biết gặp bác trực tiếp thế nào?
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom