Làm thế nào để nhập dữ liệu trong một cột của excel không trùng nhau?

  • Thread starter Thread starter phnam77
  • Ngày gửi Ngày gửi

phnam77

Sơ cấp
Chào các bạn trên diễn đàn,
Hiện tại công việc của mình đang có 1 việc phải nhập dữ liệu vào 1 cột của excel nhưng dữ liệu cột đó không được trùng nhau hoặc nếu trùng nhau thì sẽ báo là trùng với dữ liệu ô nào. Bạn nào có cách gì xin chỉ giúp.
Xin cảm ơn nhiều.
Phạm Hoài Nam
YM: pham_hoai_nam
email: pham_hoai_nam@yahoo.com
 
Để làm theo yêu cầu của bạn chúng ta có thể sử dụng các cách sau:
_Dùng format conditional.
_Dùng VBA để kiểm tra mỗi khi bạn nhập vào/Nếu trùng thì thông báo cho bạn biết trùng tại hàng nào.
Cách sau thì linh động hơn.


Lê Văn Duyệt
 
Bạn có thể dùng hàm COUNTIF(), nó đơn giản hơn, mình hay sử dụng nó mỗi khi nhập invoice
 
phnam77 nói:
Chào các bạn trên diễn đàn,
Hiện tại công việc của mình đang có 1 việc phải nhập dữ liệu vào 1 cột của excel nhưng dữ liệu cột đó không được trùng nhau hoặc nếu trùng nhau thì sẽ báo là trùng với dữ liệu ô nào. Bạn nào có cách gì xin chỉ giúp.
Xin cảm ơn nhiều.
Phạm Hoài Nam
YM: pham_hoai_nam
email: pham_hoai_nam@yahoo.com
Bạn dùng thủ tục sau để kiểm tra trùng dữ liệu trên cùng một cột.

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
On Error GoTo MyErr
' Khai bao cac bien
Dim ColSelect, RowSelect, CurValue, ColValue, Counter, BegRow, EndRow, i, j
BegRow = 1
EndRow = 65536

' Xac dinh cot, dong can so sanh.
Counter = 0

For Each Item In Selection

ColSelect = Item.Column
RowSelect = Item.Row - 1
Exit For
Next Item

' So sanh gia tri

CurValue = Cells(RowSelect, ColSelect).Value
Counter = 0

For j = BegRow To EndRow
ColValue = Cells(j, ColSelect).Value
If j <> RowSelect And CurValue = ColValue And RTrim(Trim(CurValue)) <> "" Then
Counter = Counter + 1
Exit For
End If

Next j


If Counter > 0 Then
MsgBox "There are duplicate key entries", vbInformation + vbOKOnly, "Warning .."
End If
MyErr:
Resume Next
End Sub

Thân
 

Đính kèm

Dùng ngay Validation cũng được đấy! Bài này đã có người hướng dẫn hình như khá lâu rồi. Tôi xin phép mô tả sơ lại cách làm (cho các bạn chưa rành Excel)
Giả sử bạn không muốn nhập dữ liệu trùng trong cột A, bạn chọn cột A, vào Data - Validation, trong mục Setting chọn Custome, nhập vào:
=COUNTIF(A:A;A1)<=1

Giải thích: Validation sẽ đếm giá trị trong ô hiện hành bằng hàm COUNTIF (ở đây là A1, vì công thức không cố định A1 nên sang ô khác nó sẽ là A2, A3....) trong tất cả cột A, ràng buộc điều kiện chỉ nhỏ hơn hoặc = 1. (Hoặc là nhỏ hơn 2 cũng được). Do đó, nếu bạn nhập trùng 2 giá trị thì nó sẽ báo lỗi của Validation.
Lưu ý: Nó sẽ không có tác dụng nếu bạn dùng lệnh copy - paste, cũng giống như các Validation khác.
 
Chào bạn,
Cách làm này áp dụng xét trùng khóa của tất cả các cột trong excel, có cách nào mình chỉ xét trên 1 cột nào đó thôi không ?

Cám ơn bạn

Chào bạn,
Cách làm này áp dụng xét trùng khóa của tất cả các cột trong excel, có cách nào mình chỉ xét trên 1 cột nào đó thôi không ?

Cám ơn bạn
 
Chào bạn,
Cách làm này áp dụng xét trùng khóa của tất cả các cột trong excel, có cách nào mình chỉ xét trên 1 cột nào đó thôi không ?


bạn muốn xét một cột thì chọn cột đó rùi làm giống y như vậy không có gì khác cả
 
Làm sao để xét theo hàng vậy, nhờ các bạn hướng dẫn mình với, cảm ơn

Làm sao để xét theo hàng vậy, nhờ các bạn hướng dẫn mình với, cảm ơn
 
Sửa lần cuối:
Back
Top