Nhờ tư vấn - Nhờ các bạn tạo giúp file excel có chức năng kiểm tra trùng lặp dữ liệu | VN-Zoom | Cộng đồng Chia Sẻ Kiến Thức Công Nghệ và Phần Mềm Máy Tính

Adblocker detected! Please consider reading this notice.

We've detected that you are using AdBlock Plus or some other adblocking software which is preventing the page from fully loading.

We need money to operate the site, and almost all of it comes from our online advertising.

Please add vn-z.vn to your ad blocking whitelist or disable your adblocking software. 

All the knowledge we share is completely free. If you are willing, please support us here.

×

Nhờ tư vấn Nhờ các bạn tạo giúp file excel có chức năng kiểm tra trùng lặp dữ liệu

rodo1210

Rìu Sắt Đôi
File excel có 2 sheet
Trang thứ 2 tên là data, yêu cầu cột A dữ liệu trên cột không được trùng lặp
Trang thứ 1 tên là ghi_chu, các ô định dạng text, cột B lấy dữ liệu (select) từ cột A trang thứ 2, không cho phép nhập khác.
Trang thứ 1 cột D là đơn vị tự động điền theo, giống như bên trang thứ 2
Hình ảnh ví dụ:
0017.jpg


0018.jpg


cảm ơn sự giúp đỡ của các bạn :)
 

Hacker Is Real

Hãy like thay vì post thanks ❤❤❤!
Chào bạn, Yêu cầu bài toán bạn đưa ra đọc hơi khó hiểu nên tôi tóm tắn lại bài toán của bạn như sau, nếu đúng thì bạn cứ theo đó mà làm:
Bạn có 1 file Excel bao gồm 2 sheet lần lượt có tên là "Ghi chu "(Sheet 1), "Data" (Sheet 2).
Dữ liệu hiện tại trên cột A có thể đang bị trùng lắp, bây giờ xây dựng Code để cập nhật dữ liệu cho cột B của Sheet Data biết rằng dữ liệu lấy về:
- Nguồn là cột A của Sheet Ghi Chu (Sheet 1)
- Đảm bảo không trùng.
- Gán giá trị cột D của Sheet 1 = Giá trị cột D Sheet 2
------------------Hướng Giải quyết--------------
Tôi sẽ xây dựng 1 Macro viết bằng VBA code để xử lý yêu cầu của bạn. Công việc của Macro sẽ là:
  1. Xóa các giá trị trùng lặp trong cột A của Sheet "Ghi chu".
  2. Update data duy nhất từ cột A của Sheet "Ghi chu" vào cột B của Sheet "Data".
  3. Gán giá trị cột B của Sheet "Ghi chu" bằng giá trị tương ứng từ cột D của Sheet "Data".
Sub UpdateColumnBInGhiChu()
Dim wsGhiChu As Worksheet, wsData As Worksheet
Dim lastRowGhiChu As Long, lastRowData As Long
Dim matchRow As Variant
Dim cell As Range

' Gán sheet
Set wsGhiChu = ThisWorkbook.Sheets("Ghi chu ")
Set wsData = ThisWorkbook.Sheets("Data")

' Xác định dòng cuối của cả hai sheet
lastRowGhiChu = wsGhiChu.Cells(wsGhiChu.Rows.Count, "A").End(xlUp).Row
lastRowData = wsData.Cells(wsData.Rows.Count, "B").End(xlUp).Row

' Duyệt qua từng ô trong cột A của Sheet "Ghi chu"
For Each cell In wsGhiChu.Range("A2:A" & lastRowGhiChu)
If Not IsEmpty(cell.Value) Then
' Tìm hàng khớp trong cột B của Sheet "Data"
matchRow = Application.Match(cell.Value, wsData.Columns("B"), 0)
If Not IsError(matchRow) Then
' Gán giá trị cột D từ Sheet "Data" vào cột B của Sheet "Ghi chu"
wsGhiChu.Cells(cell.Row, "B").Value = wsData.Cells(matchRow, "D").Value
Else
' Nếu không tìm thấy, gán giá trị rỗng
wsGhiChu.Cells(cell.Row, "B").Value = ""
End If
End If
Next cell

MsgBox "Cập nhật cột B của Sheet 'Ghi chu' thành công!", vbInformation
End Sub
 

malemkhoang

Rìu Chiến
Trong Sheet "data", cột "Tên SP", đặt "Conditional Formating" cho khoảng 1000 hoặc 10000 ô là "Highlight...", "Duplicate..."; như thế khi nhập trùng sẽ phát hiện được ngay.
_____________
@Hacker Is Real
Phức tạp thế...​
 

rodo1210

Rìu Sắt Đôi
1-Xóa các giá trị trùng lặp trong cột A của Sheet "Ghi chu".
2-Update data duy nhất từ cột A của Sheet "Ghi chu" vào cột B của Sheet "Data".
3-Gán giá trị cột D của Sheet "Ghi chu" bằng giá trị tương ứng từ cột D của Sheet "Data".
======
Xin lỗi bạn vì yêu cầu của mình chưa rõ ràng, 1-2 là sai, 3 đúng
Mình xin mô tả lại như sau ạ
======
Sheet data: là danh sách sản phẩm, mình sẽ tự nhập thủ công, yêu cầu tên SP không được trùng lặp, vì vậy:
- cách giải quyết 1 là: lúc nhập dữ liệu xong sẽ có thông báo nếu bị trùng lặp, auto xoá ô vừa nhập đi. Nhập đúng thì ok bỏ qua
- cách giải quyết 2 là: cho mình 1 button kiểm tra, nếu click sẽ nhảy tới ô tên SP bị trùng. ( hoặc thông báo dòng X giống dòng Y)
-----------
sheet ghi chú: trên cột tên SP sẽ chọn sản phẩm phía data, không thể chỉnh sửa tên SP, đảm bảo tên trùng với bên data, cho phép nhiều dòng trùng lặp (đây giống như là đơn hàng vậy, ngày nào bán được sẽ ghi chú thêm vào đây). (mở rộng: nếu tên bên data thay đổi thì bên ghi chú đổi theo hết là tốt nhất, khó quá bỏ qua cái này)
-----------
rất mong sự giúp đỡ của bạn
 

malemkhoang

Rìu Chiến
@rodo1210
1. Sheet "ghi_chu", cột "Thời gian", đã nhập thì dùng "Data Tools", "Remove Duplicate"; thường xuyên dùng "Conditional Formating".
2. Có nhẽ đâu thế.
3. ... gán giá trị địa chỉ ô giữa các Sheet.
 

rodo1210

Rìu Sắt Đôi
- lập trình excel mình "mù tịt" bạn ạ
- đứng về phía người dùng: yêu cầu lúc nhập tên SP bên data có cách nào đó, lúc thêm SP mới đảm bảo không bị trùng lặp với hàng trên.
- bên GhiChu đảm bảo tên SP không thể chỉnh sửa, chỉ được phép chọn tên bên kia (sheet data), và đơn vị phải ăn theo bên data.
- tất cả các ô khác thời gian v.v... để text mình tự nhập ạ
- như vậy với mình là đủ, hjhj mong bạn lập trình giúp mình file như vậy ạ
 

malemkhoang

Rìu Chiến
- lập trình excel mình "mù tịt" bạn ạ: dùng thiết lập thao tác dữ liệu và các hàm chức năng.
- ... thêm SP mới đảm bảo không bị trùng lặp với hàng trên: thiết lập "Conditional Formating" (xem #3)
- ... không thể chỉnh sửa, chỉ được phép chọn: thiết lập danh sách thả xuống tự động kiểm tra, ngăn chặn nhập sai và hướng dẫn nhập liệu; ... đơn vị phải ăn theo bên data: hàm vlookup().
 

Fusin

Rìu Sắt
Lập trình thì gọn, nhưng sau thay đổi/ thêm/ loại trừ thì phức tạp lại phải lên đây nhờ. Vậy phương án hữu hiệu nhất vẫn là tự thiết lập Hàm và xử lý trên nền tảng các hàm Excel cung cấp. Hướng giải quyết thiết lập đã được các Bác trên đây bày ra, cứ theo mà làm, tập dần sẽ quen (không thông bê lên đây hỏi tiếp). Nếu vẫn không biết/hiểu sử dụng luôn các hàm trên thì ...ôi excel tại sao tôi biết Bạn mà Bạn không giúp tôi. Hãy tìm Thầy bổ sung kiến thức một khóa nâng cao.
 
Tạo 1 cột hỗ trợ ngay bên cạnh, dùng countifs() để đếm số giá trị, rồi dùng VLookup để tìm giá trị khác 1 sử dụng cột hỗ trợ đấy ra cột thông báo, kết hợp các function khác từ condition formatting/ row() để định vị chỗ sai.
 

rodo1210

Rìu Sắt Đôi
- lập trình excel mình "mù tịt" bạn ạ: dùng thiết lập thao tác dữ liệu và các hàm chức năng.
- ... thêm SP mới đảm bảo không bị trùng lặp với hàng trên: thiết lập "Conditional Formating" (xem #3)
- ... không thể chỉnh sửa, chỉ được phép chọn: thiết lập danh sách thả xuống tự động kiểm tra, ngăn chặn nhập sai và hướng dẫn nhập liệu; ... đơn vị phải ăn theo bên data: hàm vlookup().
cảm ơn bạn, sau khi đọc hướng dẫn của bạn kết hợp google mình đã làm được theo yêu cầu của mình rồi, không phải lập trình gì cả ^.^
 

dammage

Rìu Chiến
======
Sheet data: là danh sách sản phẩm, mình sẽ tự nhập thủ công, yêu cầu tên SP không được trùng lặp, vì vậy:
- cách giải quyết 1 là: lúc nhập dữ liệu xong sẽ có thông báo nếu bị trùng lặp, auto xoá ô vừa nhập đi. Nhập đúng thì ok bỏ qua
- cách giải quyết 2 là: cho mình 1 button kiểm tra, nếu click sẽ nhảy tới ô tên SP bị trùng. ( hoặc thông báo dòng X giống dòng Y)
cách giải quyết 1: tui có ý tưởng đó là viết 1 hàm để nhận dữ liệu, thay vì gõ dữ liệu trực tiếp vô ô sản phẩm thì bạn sẽ đưa thông qua hàm lọc này, giả sử tên sản phẩm là "rolls royce ghost prism", thay vì gõ trực tiếp vô ô A1 như vầy
Untitled.jpg


thì bạn gõ thêm 1 hàm như vầy
Untitled.jpg

hàm này sẽ kiểm tra trùng, nếu tên sản phẩm chưa có thì nó sẽ điền "rolls royce ghost prism" vô A1, ngược lại thì nó điền "", cài đặt cụ thể cho hàm này thì có thể nhờ bạn gì đó ở trên

cách giải quyết 2 thì có thể xài filter hoặc hightlight duplicate values, theo tui thì filter sẽ tốt hơn là hightlight

sheet ghi chú: trên cột tên SP sẽ chọn sản phẩm phía data, không thể chỉnh sửa tên SP, đảm bảo tên trùng với bên data, cho phép nhiều dòng trùng lặp (đây giống như là đơn hàng vậy, ngày nào bán được sẽ ghi chú thêm vào đây). (mở rộng: nếu tên bên data thay đổi thì bên ghi chú đổi theo hết là tốt nhất, khó quá bỏ qua cái này)
-----------
rất mong sự giúp đỡ của bạn
cái này theo tui có thể dùng chức năng link data
1/bạn qua sheet sản phẩm copy 1 ô tên sản phẩm nào đó chẳng hạn A3
2/qua sheet ghi chú, bạn click phải chuột vô 1 ô chẳng hạn B4 rồi chọn paste link
Untitled.jpg

giá trị hiển thị trong sheet ghi chú ô B4 lúc này là tham chiếu từ sheet sản phẩm ô A3, bởi vậy
1/ bạn không thể thay đổi tên sản phẩm từ bên ghi chú được vì nó không chứa data mà chỉ chứa 1 tham chiếu tới bên sản phẩm mà thôi
2/khi bạn thay đổi nội dung trong sheet sản phẩm ô A3 thì nội dung trong tất cả các ô tham chiếu tới nó cũng sẽ thay đổi theo

cuối cùng, muốn ngăn không cho thay đổi tên sản phẩm bên sheet sản phẩm thì bạn có thể tìm hiểu chức năng protect sheet bên tab review
Untitled.jpg
 


Top