Cách Lấy Giá Trị Độc Nhất (unique Values) Trong Cột Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao

Mở Đầu

Trong công việc hàng ngày, việc xử lý dữ liệu trên Excel là một kỹ năng không thể thiếu đối với nhiều ngành nghề: kế toán, marketing, nghiên cứu thị trường, quản lý dự án, v.v. Một trong những nhu cầu phổ biến nhất là lấy các giá trị độc nhất (unique values) trong một cột – tức là loại bỏ các bản sao để chỉ còn lại danh sách các mục duy nhất. Điều này giúp bạn:

  • Tóm tắt nhanh số lượng khách hàng, sản phẩm, hay mã số khác nhau.
  • Kiểm tra dữ liệu xem có sự trùng lặp nào không mong muốn.
  • Xây dựng danh sách cho các công cụ phân tích, như pivot table, biểu đồ, hoặc công cụ BI.

Bài viết này sẽ cung cấp hướng dẫn chi tiết, đầy đủ về cách lấy giá trị độc nhất trong cột Excel, từ các phương pháp cơ bản (sử dụng tính năng Remove Duplicates, Advanced Filter) đến công thức (SUMPRODUCT, FREQUENCY, COUNTIF, UNIQUE) và công cụ mạnh mẽ như Power Query và VBA. Bạn sẽ hiểu rõ khi nào nên dùng phương pháp nào, cách tối ưu hiệu suất, và cách tránh những lỗi thường gặp.

1. Hiểu Rõ Khái Niệm “Unique Values”

1.1 Định Nghĩa

  • Unique values: Các giá trị xuất hiện chỉ một lần trong một tập hợp dữ liệu. Khi nói “lấy unique values trong một cột”, chúng ta muốn loại bỏ các bản sao và giữ lại mỗi giá trị duy nhất một lần.
  • Distinct values: Thuật ngữ thường dùng trong SQL, tương tự như unique values, nhưng trong Excel đôi khi “distinct” được dùng để chỉ các giá trị khác nhau (có thể xuất hiện nhiều lần) – ví dụ khi dùng hàm UNIQUE trong Office 365, chúng ta có thể lấy danh sách các giá trị khác nhau mà không quan tâm tới tần suất.

1.2 Khi Nào Cần Lấy Unique Values?

Tình huốngLý do
Kiểm tra danh sách khách hàngĐảm bảo không có khách hàng trùng lặp trong CRM.
Tổng hợp danh mục sản phẩmLấy danh sách các mã sản phẩm duy nhất để tạo bảng giá.
Phân tích dữ liệuLoại bỏ trùng lặp để tính trung bình, tổng, hoặc tần suất chính xác.
Chuẩn bị dữ liệu cho Power BIĐảm bảo mô hình dữ liệu không chứa bản sao gây lỗi quan hệ.

2. Các Phương Pháp Cơ Bản (Không Cần Công Thức)

2.1 Sử Dụng Tính Năng “Remove Duplicates”

  1. Chọn cột hoặc vùng dữ liệu cần xử lý.
  2. Vào Data → Remove Duplicates.
  3. Đánh dấu cột cần kiểm tra (nếu có nhiều cột) và nhấn OK.
  4. Excel sẽ thông báo số bản sao đã bị xóa và số giá trị duy nhất còn lại.

Ưu điểm: Nhanh, trực quan, không cần công thức.
Nhược điểm: Thay đổi dữ liệu gốc (không giữ lại bản sao); không thể trả về danh sách trong một vị trí khác mà không sao chép.

2.2 Advanced Filter

  1. Chọn cột chứa dữ liệu.
  2. Vào Data → Advanced.
  3. Chọn Copy to another location, chỉ định ô đích (ví dụ E1).
  4. Đánh dấu Unique records only và OK.

Ưu điểm: Giữ nguyên dữ liệu gốc; có thể sao chép danh sách độc nhất sang vị trí mới.
Nhược điểm: Cần thao tác thủ công; không tự động cập nhật khi dữ liệu thay đổi.

3. Sử Dụng Hàm Excel Để Lấy Unique Values

3.1 Hàm UNIQUE (Excel 365 / Excel 2026)

Cú pháp: UNIQUE(array, by_col, exactly_once)

  • array: Dải ô cần xử lý.
  • by_col (tùy chọn): FALSE (mặc định) – duyệt theo hàng; TRUE – duyệt theo cột.
  • exactly_once (tùy chọn): FALSE (mặc định) – trả về các giá trị duy nhất (distinct); TRUE – trả về chỉ các giá trị xuất hiện một lần.

Ví dụ: Giả sử cột A chứa danh sách tên:

A
Anh
Bình
Anh
Cường
Bình
Dũng
  • Lấy danh sách các giá trị khác nhau (distinct):
    =UNIQUE(A2:A7) → trả về {Anh; Bình; Cường; Dũng}
  • Lấy chỉ các giá trị xuất hiện một lần:
    =UNIQUE(A2:A7, FALSE, TRUE) → trả về {Cường; Dũng}

Lưu ý: Hàm UNIQUE trả về một mảng động (dynamic array), tự động mở rộng khi thêm dữ liệu.

3.2 Kết Hợp UNIQUE Với SORT Và FILTER

  • Sắp xếp danh sách độc nhất: =SORT(UNIQUE(A2:A100))
  • Lọc theo điều kiện: =FILTER(UNIQUE(A2:A100), UNIQUE(A2:A100) <> "") (loại bỏ ô trống).

3.3 Hàm COUNTIF + IF (Dành Cho Phiên Bản Cũ)

Nếu bạn đang dùng Excel 2026, 2026, 2026, không có hàm UNIQUE, bạn có thể dùng công thức mảng:

  1. Bước 1: Tạo danh sách phụ (cột B) để đánh dấu lần xuất hiện đầu tiên.

=IF(COUNTIF($A$2:A2, A2)=1, A2, "")

Sao chép công thức xuống hết danh sách. Kết quả: chỉ lần xuất hiện đầu tiên của mỗi giá trị được giữ lại, các bản sao trả về chuỗi rỗng.

  1. Bước 2: Lọc bỏ các ô rỗng (có thể dùng Advanced Filter hoặc công thức mảng IF + SMALL).

  2. Công thức mảng để tạo danh sách không rỗng (công thức này nhập bằng Ctrl+Shift+Enter trong các phiên bản cũ):

    =IFERROR(INDEX($B$2:$B$100, SMALL(IF($B$2:$B$100<>"", ROW($B$2:$B$100)-ROW($B$2)+1), ROW(1:1))), "")

  3. Kéo công thức xuống; mỗi hàng sẽ trả về một giá trị độc nhất.

3.4 Hàm SUMPRODUCT + FREQUENCY

Đây là cách “thủ công” hơn, thường dùng khi muốn đếm số lần xuất hiện duy nhất:

=SUMPRODUCT(--(FREQUENCY(MATCH(A2:A100, A2:A100, 0), ROW(A2:A100)-ROW(A2)+1)=1))

Công thức trên trả về số lượng giá trị xuất hiện chỉ một lần. Để liệt kê chúng, bạn cần kết hợp với INDEX và SMALL như trong mục 3.2.

3.5 Hàm AGGREGATE (Excel 2026+)

AGGREGATE có thể bỏ qua lỗi và trả về giá trị thứ n trong danh sách không trùng lặp:

=IFERROR(AGGREGATE(15, 6, 1/(COUNTIF($A$2:$A$100, $A$2:$A$100)=1) $A$2:$A$100, ROW(1:1)), "")
  • 15 là hàm SMALL.
  • 6 bỏ qua lỗi (#DIV/0! khi chia cho 0).
  • Công thức này trả về giá trị duy nhất (xuất hiện một lần) theo thứ tự tăng dần.

4. Power Query – Công Cụ Mạnh Mẽ Để Lấy Unique Values

Power Query (hay Get & Transform) là công cụ ETL tích hợp trong Excel 2026 trở lên, cho phép xử lý dữ liệu lớn mà không làm chậm bảng tính.

4.1 Các Bước Cơ Bản

Excel Unique Values In Column
Excel Unique Values In Column
  1. Chọn dữ liệu → Data → From Table/Range (hoặc Get Data → From Table/Range).
  2. Power Query Editor mở ra. Chọn cột muốn lọc.
  3. Vào Home → Remove Rows → Remove Duplicates.
  4. Nhấn Close & Load → Dữ liệu độc nhất được tải về một sheet mới hoặc một bảng pivot.

4.2 Lấy Các Giá Trị Xuất Hiện Chỉ Một Lần (Exactly Once)

Trong Power Query, bạn có thể:

  • Nhóm (Group By) cột đó, chọn Count Rows.
  • Lọc các hàng có Count = 1.

Chi tiết:

  1. Home → Group By.
  2. Group By: Chọn cột cần, đặt New column name = “Count”, Operation = “Count Rows”.
  3. Sau khi tạo bảng Value | Count, Filter cột Count = 1.
  4. Kết quả là danh sách các giá trị xuất hiện một lần duy nhất.

4.3 Tự Động Hóa Với Nhiều Bước

Power Query cho phép lưu query và refresh khi dữ liệu gốc thay đổi, rất tiện cho báo cáo định kỳ.

5. VBA – Tự Động Hóa Lấy Unique Values

Khi làm việc với các workbook lớn, thủ công hoặc dùng công thức mảng có thể chậm. VBA cho phép viết macro nhanh chóng.

5.1 Macro Cơ Bản: Sao Chép Các Giá Trị Độc Nhất Sang Cột Khác

Sub CopyUniqueValues() Dim srcRng As Range, destRng As Range Dim dict As Object Set dict = CreateObject("Scripting.Dictionary") ' Định nghĩa nguồn và đích Set srcRng = ThisWorkbook.Sheets("Sheet1").Range("A2:A1000") Set destRng = ThisWorkbook.Sheets("Sheet1").Range("C2") Dim cell As Range For Each cell In srcRng If Not dict.Exists(cell.Value) And Trim(cell.Value) <> "" Then dict.Add cell.Value, Nothing End If Next cell ' Ghi ra cột đích destRng.Resize(dict.Count, 1).Value = Application.Transpose(dict.Keys)
End Sub
  • Sử dụng Scripting.Dictionary để lưu các khóa duy nhất.
  • Application.Transpose chuyển mảng 1‑dimensional thành cột.

5.2 Lấy Các Giá Trị Xuất Hiện Chỉ Một Lần

Sub UniqueOnce() Dim srcRng As Range, destRng As Range Dim dict As Object, cnt As Object Set dict = CreateObject("Scripting.Dictionary") Set cnt = CreateObject("Scripting.Dictionary") Set srcRng = ThisWorkbook.Sheets("Sheet1").Range("A2:A1000") Set destRng = ThisWorkbook.Sheets("Sheet1").Range("E2") Dim v As Variant For Each v In srcRng.Value If Trim(v) <> "" Then If dict.Exists(v) Then cnt(v) = cnt(v) + 1 Else dict.Add v, Nothing cnt.Add v, 1 End If End If Next v Dim outArr() As Variant ReDim outArr(1 To dict.Count, 1 To 1) Dim i As Long: i = 1 Dim key As Variant For Each key In dict.Keys If cnt(key) = 1 Then outArr(i, 1) = key i = i + 1 End If Next key If i > 1 Then destRng.Resize(i - 1, 1).Value = outArr End If
End Sub
  • Hai dictionary: dict lưu tất cả các giá trị, cnt đếm số lần xuất hiện.
  • Cuối cùng chỉ ghi các giá trị có cnt = 1.

5.3 Khi Nào Dùng VBA?

Trường hợpLý do
Dữ liệu > 10.000 dòngCông thức mảng có thể chậm, VBA nhanh hơn.
Cần tự động hóa (nhiều workbook, báo cáo định kỳ)Ghi macro và chạy “Refresh All”.
Kết hợp nhiều bước (lọc, tính toán, xuất file)VBA cho phép chuỗi các thao tác phức tạp.

6. So Sánh Các Phương Pháp

Phương phápƯu điểmNhược điểmThích hợp cho
Remove DuplicatesNhanh, đơn giảnThay đổi dữ liệu gốc, không tự động cập nhậtDữ liệu tạm, thao tác một lần
Advanced FilterGiữ nguyên dữ liệu, sao chép sang vị trí mớiCần thao tác thủ côngKhi muốn tạo danh sách phụ trên sheet
UNIQUE (Office 365)Động, tự cập nhật, có thể kết hợp SORT, FILTERChỉ có trong Office 365/2026Người dùng mới, báo cáo động
COUNTIF + IF (cũ)Hoạt động mọi phiên bảnCông thức phức tạp, cần nhập mảngKhi không có UNIQUE
Power QueryXử lý lượng lớn, lưu query, tự động refreshCần học cách dùng Power QueryDữ liệu lớn, quy trình ETL
VBATự động hoá, tốc độ cao, linh hoạtCần viết code, bảo trì macroBáo cáo định kỳ, xử lý hàng nghìn dòng

7. Thực Hành: 5 Bài Tập Thực Tế

Bài 1: Lấy danh sách khách hàng duy nhất từ cột A và sắp xếp alphabet

=SORT(UNIQUE(A2:A500))

Bài 2: Lấy các sản phẩm chỉ xuất hiện một lần trong danh sách (cột B)

=FILTER(UNIQUE(B2:B1000), COUNTIF(B2:B1000, UNIQUE(B2:B1000))=1)

Bài 3: Sử dụng Power Query để tạo bảng “Khách hàng đã mua > 3 lần”

  1. Load dữ liệu vào Power Query.
  2. Group By cột “CustomerID”, tính Count Rows.
  3. Filter Count Rows > 3.
  4. Load kết quả về sheet.

Bài 4: VBA sao chép danh sách email duy nhất sang cột D

Sub CopyEmails() Dim rng As Range, dest As Range, dict As Object Set dict = CreateObject("Scripting.Dictionary") Set rng = Range("C2:C2000") ' cột email Set dest = Range("D2") Dim v For Each v In rng.Value If Trim(v) <> "" Then dict(v) = 1 Next v dest.Resize(dict.Count, 1).Value = Application.Transpose(dict.Keys)
End Sub

Bài 5: Kiểm tra nhanh có bao nhiêu giá trị trùng lặp trong cột D?

=ROWS(D2:D1000)-COUNTA(UNIQUE(D2:D1000))

Kết quả trả về số bản sao (tổng số hàng trừ số giá trị duy nhất).

8. Các Lưu Ý Khi Làm Việc Với Unique Values

  1. Xử lý giá trị trống
  2. UNIQUE và Advanced Filter đều bảo lưu các ô trống như một giá trị duy nhất. Nếu không muốn, hãy dùng FILTER(..., <> "") hoặc IF(A2:A100<>"", ...).

  3. Phân biệt chữ hoa/chữ thường

  4. Excel mặc định không phân biệt (case‑insensitive). Nếu cần phân biệt, dùng hàm EXACT trong công thức mảng, hoặc tạo cột phụ =UPPER(A2) rồi lấy unique.

  5. Dữ liệu dạng số và văn bản

  6. Khi dữ liệu chứa cả số và chuỗi, Excel có thể tự động chuyển đổi. Đảm bảo định dạng Text nếu muốn giữ nguyên.

  7. Hiệu suất

  8. Với > 50.000 dòng, các công thức mảng (COUNTIF + IF) có thể chậm. Hãy ưu tiên Power Query hoặc VBA.

  9. Đối với bảng động (Table)

  10. Khi dữ liệu được định dạng thành Table (Ctrl+T), các hàm như UNIQUE sẽ tự động mở rộng khi thêm hàng mới, rất tiện cho báo cáo tự động.

9. Kết Luận

Việc lấy giá trị độc nhất trong một cột Excel không chỉ là một thao tác đơn giản mà còn là nền tảng cho nhiều quy trình phân tích dữ liệu. Từ các công cụ cơ bản như Remove Duplicates, Advanced Filter, đến công thức hiện đại (UNIQUE, FILTER, SORT) và công cụ mạnh mẽ như Power Query và VBA, bạn có thể chọn giải pháp phù hợp với:

  • Kích thước dữ liệu (hàng chục, trăm, nghìn, hay hàng triệu).
  • Phiên bản Excel (Office 365, 2026, 2026, 2026, 2026…).
  • Mức độ tự động hoá cần thiết (một lần thực hiện hay báo cáo định kỳ).

Hãy thử áp dụng các phương pháp trên vào công việc thực tế của bạn, và đừng quên luôn sao lưu dữ liệu trước khi thực hiện các thao tác loại bỏ bản sao. Khi đã nắm vững các kỹ thuật này, bạn sẽ tiết kiệm thời gian, giảm lỗi nhập liệu và nâng cao chất lượng phân tích dữ liệu trong Excel.

Chúc bạn thành công!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận