Bỏ qua nội dung chính

Làm cách nào để trích xuất các giá trị duy nhất từ ​​nhiều cột trong Excel?

Giả sử bạn có một số cột với nhiều giá trị, một số giá trị được lặp lại trong cùng một cột hoặc cột khác nhau. Và bây giờ bạn muốn tìm các giá trị chỉ xuất hiện trong một trong hai cột một lần. Có thủ thuật nhanh nào để bạn trích xuất các giá trị duy nhất từ ​​nhiều cột trong Excel không?


Trích xuất các giá trị duy nhất từ ​​nhiều cột bằng công thức mảng

Đây là một công thức mảng cũng có thể giúp bạn trích xuất các giá trị duy nhất từ ​​nhiều cột.

1. Giả sử các giá trị của bạn trong phạm vi A2:C9, vui lòng nhập công thức sau vào ô E2:

=INDIRECT(TEXT(MIN(IF(($A$2:$C$9<>"")*(COUNTIF($E$1:E1,$A$2:$C$9)=0),ROW($2:$9)*100+COLUMN($A:$C),7^8)),"R0C00"),)&""

Chú thích: Trong công thức trên, A2: C9 cho biết phạm vi ô mà bạn muốn trích xuất các giá trị duy nhất, E1: E1 là ô đầu tiên của cột bạn muốn đặt kết quả, $ 2: $ 9 đứng đằng sau các hàng chứa các ô bạn muốn sử dụng và $ A: $ C cho biết các cột chứa các ô bạn muốn sử dụng. Vui lòng thay đổi chúng thành của riêng bạn.

2. Sau đó nhấn Shift + Ctrl + Nhập các phím với nhau, rồi kéo chốt điền để trích xuất các giá trị duy nhất cho đến khi các ô trống xuất hiện. Xem ảnh chụp màn hình:


Trích xuất các giá trị duy nhất từ ​​nhiều cột với Pivot Table

Nếu bạn đã quen thuộc với bảng tổng hợp, bạn có thể dễ dàng trích xuất các giá trị duy nhất tạo thành nhiều cột bằng các bước sau:

1. Lúc đầu, hãy chèn một cột trống mới ở bên trái dữ liệu của bạn, trong ví dụ này, tôi sẽ chèn cột A bên cạnh dữ liệu ban đầu.

2. Nhấp vào một ô trong dữ liệu của bạn và nhấn Alt + D các phím, sau đó nhấn P chìa khóa ngay lập tức để mở PivotTable và PivotChart Wizard, chọn Nhiều phạm vi hợp nhất trong wizard step1, xem ảnh chụp màn hình:

3. Sau đó nhấn vào Sau nút, kiểm tra Tạo một trường trang duy nhất cho tôi tùy chọn trong wizard step2, xem ảnh chụp màn hình:

4. Tiếp tục nhấp Sau , nhấp để chọn phạm vi dữ liệu bao gồm cột ô mới bên trái, sau đó nhấp Thêm để thêm dải dữ liệu vào Tất cả các phạm vi hộp danh sách, xem ảnh chụp màn hình:

5. Sau khi chọn phạm vi dữ liệu, hãy tiếp tục nhấp vào Sau, trong bước 3 của trình hướng dẫn, hãy chọn nơi bạn muốn đặt báo cáo PivotTable theo ý muốn.

6. Cuối cùng, hãy nhấp vào Kết thúc để hoàn thành trình hướng dẫn và bảng tổng hợp đã được tạo trong trang tính hiện tại, sau đó bỏ chọn tất cả các trường khỏi Chọn các trường để thêm vào báo cáo , xem ảnh chụp màn hình:

7. Sau đó kiểm tra trường Giá trị hoặc kéo Giá trị vào Hàng nhãn, bây giờ bạn sẽ nhận được các giá trị duy nhất từ ​​nhiều cột như sau:


Trích xuất các giá trị duy nhất từ ​​nhiều cột bằng mã VBA

Với mã VBA sau, bạn cũng có thể trích xuất các giá trị duy nhất từ ​​nhiều cột.

1. Giữ ALT + F11 chìa khóa và nó mở Cửa sổ Microsoft Visual Basic for Applications.

2. Nhấp chuột Chèn > Mô-đunvà dán mã sau vào Cửa sổ mô-đun.

VBA: Trích xuất các giá trị duy nhất từ ​​nhiều cột

Sub Uniquedata()
'Updateby Extendoffice
Dim rng As Range
Dim InputRng As Range, OutRng As Range
Set dt = CreateObject("Scripting.Dictionary")
xTitleId = "KutoolsforExcel"
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
Set OutRng = Application.InputBox("Out put to (single cell):", xTitleId, Type:=8)
For Each rng In InputRng
    If rng.Value <> "" Then
        dt(rng.Value) = ""
    End If
Next
OutRng.Range("A1").Resize(dt.Count) = Application.WorksheetFunction.Transpose(dt.Keys)
End Sub

3. Sau đó nhấn F5 để chạy mã này và một hộp nhắc sẽ bật ra để nhắc bạn chọn phạm vi dữ liệu mà bạn muốn sử dụng. Xem ảnh chụp màn hình:

4. Và sau đó nhấp vào OK, một hộp nhắc nhở khác sẽ xuất hiện để bạn chọn nơi đặt kết quả, xem ảnh chụp màn hình:

5. Nhấp chuột OK để đóng hộp thoại này và tất cả các giá trị duy nhất đã được trích xuất cùng một lúc.


Trích xuất các giá trị duy nhất từ ​​một cột duy nhất với một tính năng tuyệt vời

Đôi khi, bạn cần trích xuất các giá trị duy nhất từ ​​một cột duy nhất, các phương pháp trên sẽ không giúp bạn, ở đây, tôi có thể giới thiệu một công cụ hữu ích-Kutools cho Excel, Với khả Trích xuất các ô có giá trị duy nhất (bao gồm bản sao đầu tiên) tiện ích, bạn có thể nhanh chóng trích xuất các giá trị duy nhất.

Lưu ý:Để áp dụng điều này Trích xuất các ô có giá trị duy nhất (bao gồm bản sao đầu tiên), trước tiên, bạn nên tải xuống Kutools cho Excel, và sau đó áp dụng tính năng một cách nhanh chóng và dễ dàng.

Sau khi cài đặt Kutools cho Excel, hãy làm như sau:

1. Bấm vào ô mà bạn muốn xuất kết quả. (Chú thích: Không bấm vào ô ở hàng đầu tiên.)

2. Sau đó nhấn vào Kutools > Công thức trợ giúp > Công thức trợ giúp, xem ảnh chụp màn hình:

3. Trong Trình trợ giúp công thức hộp thoại, vui lòng thực hiện các thao tác sau:

  • Chọn bản văn tùy chọn từ Công thức Kiểu danh sách thả xuống;
  • Sau đó chọn Trích xuất các ô có giá trị duy nhất (bao gồm bản sao đầu tiên) từ Chọn một fromula hộp danh sách;
  • Ở bên phải Đầu vào đối số , chọn danh sách các ô mà bạn muốn trích xuất các giá trị duy nhất.

4. Sau đó nhấn vào Ok và kéo chốt điền vào các ô mà bạn muốn liệt kê tất cả các giá trị duy nhất cho đến khi các ô trống được hiển thị, xem ảnh chụp màn hình:

Tải xuống miễn phí Kutools cho Excel ngay!


Các bài viết tương đối hơn:

  • Đếm số lượng giá trị duy nhất và khác biệt từ một danh sách
  • Giả sử, bạn có một danh sách dài các giá trị với một số mục trùng lặp, bây giờ, bạn muốn đếm số lượng giá trị duy nhất (các giá trị chỉ xuất hiện trong danh sách một lần) hoặc các giá trị riêng biệt (tất cả các giá trị khác nhau trong danh sách, nó có nghĩa là duy nhất giá trị + giá trị trùng lặp đầu tiên) trong một cột như ảnh chụp màn hình bên trái. Bài viết này, tôi sẽ nói về cách giải quyết công việc này trong Excel.
  • Trích xuất các giá trị duy nhất dựa trên tiêu chí trong Excel
  • Giả sử, bạn có dải dữ liệu sau mà bạn chỉ muốn liệt kê các tên duy nhất của cột B dựa trên một tiêu chí cụ thể của cột A để nhận được kết quả như ảnh chụp màn hình bên dưới. Làm cách nào bạn có thể giải quyết công việc này trong Excel một cách nhanh chóng và dễ dàng?
  • Chỉ cho phép các giá trị duy nhất trong Excel
  • Nếu bạn chỉ muốn giữ lại các giá trị duy nhất nhập vào một cột của trang tính và ngăn các bản sao, bài viết này sẽ giới thiệu một số thủ thuật nhanh để bạn giải quyết công việc này.
  • Tổng giá trị duy nhất dựa trên tiêu chí trong Excel
  • Ví dụ: tôi có một dải dữ liệu chứa các cột Tên và Thứ tự, bây giờ, chỉ tính tổng các giá trị duy nhất trong cột Thứ tự dựa trên cột Tên như ảnh chụp màn hình sau. Làm thế nào để giải quyết công việc này một cách nhanh chóng và dễ dàng trong Excel?

Công cụ năng suất văn phòng tốt nhất

Các tính năng phổ biến: Tìm, đánh dấu hoặc xác định các bản sao   |  Xóa hàng trống   |  Kết hợp các cột hoặc ô mà không làm mất dữ liệu   |   Vòng không có công thức hữu ích. Cảm ơn !
Siêu tra cứu: Nhiều tiêu chí VLookup    VLookup Nhiều Giá Trị  |   VLookup trên nhiều trang tính   |   Tra cứu mờ ....
Danh sách thả xuống nâng cao: Tạo nhanh danh sách thả xuống   |  Danh sách thả xuống phụ thuộc   |  Danh sách thả xuống nhiều lựa chọn ....
Trình quản lý cột: Thêm một số cột cụ thể  |  Di chuyển cột  |  Chuyển đổi trạng thái hiển thị của các cột ẩn  |  So sánh dãy và cột hữu ích. Cảm ơn !
Các tính năng nổi bật: Tiêu điểm lưới   |  Chế độ xem thiết kế   |   Thanh công thức lớn    Trình quản lý sổ làm việc & trang tính   |  Thư viện tài nguyên (Văn bản tự động)   |  Bảng chọn ngày   |  Kết hợp các bảng tính   |  Mã hóa/Giải mã ô    Gửi email theo danh sách   |  Siêu lọc   |   Bộ lọc đặc biệt (lọc in đậm/nghiêng/gạch ngang...) ...
15 bộ công cụ hàng đầu12 bản văn CÔNG CỤ (thêm văn bản, Xóa ký tự,...)   |   50 + Biểu đồ Các loại (Biểu đồ Gantt,...)   |   40+ Thực tế Công thức (Tính tuổi dựa trên ngày sinh,...)   |   19 chèn CÔNG CỤ (Chèn mã QR, Chèn ảnh từ đường dẫn,...)   |   12 Chuyển đổi CÔNG CỤ (Số thành từ, Chuyển đổi tiền tệ,...)   |   7 Hợp nhất & Tách CÔNG CỤ (Các hàng kết hợp nâng cao, Chia ô,...)   |   ... và nhiều hơn nữa

Nâng cao kỹ năng Excel của bạn với Kutools for Excel và trải nghiệm hiệu quả hơn bao giờ hết. Kutools for Excel cung cấp hơn 300 tính năng nâng cao để tăng năng suất và tiết kiệm thời gian.  Bấm vào đây để có được tính năng bạn cần nhất...

tab kte 201905


Tab Office mang lại giao diện Tab cho Office và giúp công việc của bạn trở nên dễ dàng hơn nhiều

  • Cho phép chỉnh sửa và đọc theo thẻ trong Word, Excel, PowerPoint, Publisher, Access, Visio và Project.
  • Mở và tạo nhiều tài liệu trong các tab mới của cùng một cửa sổ, thay vì trong các cửa sổ mới.
  • Tăng 50% năng suất của bạn và giảm hàng trăm cú nhấp chuột cho bạn mỗi ngày!
Comments (31)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Thank you for this solution, however what if the columns are in separate excel sheet? or is in separate columns instead of a table?
This comment was minimized by the moderator on the site
Hello, Jon,
The methods in this article ar only works well for a range of data, if your data in separate columns, you should copy and paste them into one range first, and then apply the formula or VBA code.
Thank you!
This comment was minimized by the moderator on the site
Thank you for this great article.

For people who are using the array formular in non-English Excel there must be taken special care of the text format string: in your example: "R0C00".
For German this would translate to "Z0S00". However, "S" is a special character refering to seconds for time formating. This character needs to be escaped and therefore the correct format string for German Excel is "Z0\S00".

I hope this helps someone in the future :-)
This comment was minimized by the moderator on the site
Hello, Michael H.
Thanks for your kindly explanation.
Hope this can help others in the future.😄
This comment was minimized by the moderator on the site
Thank you for this great article.

For people who are using the array formular in non-English Excel there must be taken special care of the text format string: in your example: "R0C00".
For German this would translate to "Z0S00". However, "S" is a special character refering to seconds for time formating. This character needs to be escaped and therefore the correct format string for German Excel is "Z0\S00".

I hope this helps someone in the future :-)
This comment was minimized by the moderator on the site
Hello Sir! The VBA worked wonders, thank you very much for that! I was wondering, If I change the original data, is it possible to refresh the column with the unique values automatically?
Rated 5 out of 5
This comment was minimized by the moderator on the site
Hello Ioannis,

Glad to help. After you change the original data, the VBA can not refresh the result automatically. And the easiest way I can think of is to press Ctrl + Alt + F9 to refresh all results in worksheets in all open workbooks. Have a nice day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
The array formula at the top is working great when used with data in the same sheet, however when I try to use it to reference the same exact data from another sheet the formula returns nothing. I'm unable to figure out why. Is there a limitation with array functions that prevents you from referencing ranges in a different sheet?

Thanks for any insight you can provide.
This comment was minimized by the moderator on the site
Hello Erin,

Glad to help. The INDIRECT function in this formula is more complicated to use when referencing data in other worksheets. It is not recommended to use this feature when referencing ranges in different worksheets.

For example: Now the data is in Sheet1, I want to reference the content of cell C2 of Sheet1 in Sheet2. First, in any two cells in Sheet2, such as D1 and D2, enter Sheet1 and C2, respectively. At this point, enter the formula in the empty cell of Sheet2:
=INDIRECT("'"&D1&"'!"&D2), then the content of cell C2 in Sheet1 can be returned.

As you can see, it make things way more complex. Hope my explanation can help. Have a nice day.

Sincerely,
Mandy
This comment was minimized by the moderator on the site
Czy to żart?
This comment was minimized by the moderator on the site
can we create uniqdata function instead of macro?
This comment was minimized by the moderator on the site
Hi, İlhan,If you like a User Defined Function to create a formula for solving this problem, the below code may help you:After inserting the code, select a list of cells where you want to put the results. Then type this formula:=Uniques(A1:C4)  in the formula bar.Press Ctrl+Shift+Enter keys together. 


Function Uniques(ByVal inputRange As Range)
Dim inputArray As Variant
Dim myColl As New Collection
Dim xVal As Variant
Dim outArray() As Variant
On Error Resume Next
With inputRange
inputArray = Application.Intersect(.Cells, .Parent.UsedRange).Value
End With
On Error GoTo 0
On Error Resume Next
For Each xVal In inputArray
myColl.*** Item:=xVal, Key:=(CStr(xVal) & TypeName(xVal))
Next xVal
myColl.Remove "String"
On Error GoTo 0
ReDim outArray(1 To Application.Max(myColl.Count, Application.Caller.Cells.Count))
For xVal = 1 To UBound(outArray)
outArray(xVal) = vbNullString
Next xVal
For xVal = 1 To Application.Min(myColl.Count, Application.Caller.Cells.Count)
outArray(xVal) = myColl(xVal)
Next xVal
If Application.Caller.Columns.Count = 1 Then
Uniques = Application.Transpose(outArray)
Else
Uniques = outArray
End If
End Function
This comment was minimized by the moderator on the site
Thanks for the code. I'm using the VBA code of this page. Is there a way to add a sorting code after the unique values are extracted so it sorts it automatically?
This comment was minimized by the moderator on the site
Regarding the formula version, could you explain in more detail what this portion is doing? *100+COLUMN($A:$C),7^8)),"R0C00") Specifically, what are the *100, 7^8, and "R0C000" doing? I'm understanding everything else, but I can't figure out what these are for.
This comment was minimized by the moderator on the site
Little late for my response here but...
ROW($2:$9)*100 - this is multiplying the row number *100, so if it's in row 5, now the number is 500
COLUMN($A:$C) - this gets added to the row*100 number, so if it's row 5 col 2, then the number is 502.
7^8)), - this (I think) is to have a max value for the min statement from earlier.
"R0C00") - this formats the text based on the number. In the example, we had 502 so this gives R5C02 (row 5, col 02).

If you have a lot of columns but not many rows, then you could change it to ROW($2:$9)*1000+COLUMN($A:$C),7^8)),"R0C000")
This comment was minimized by the moderator on the site
i've adjusted to my sheet but am only returning the first value in the defined array... what am i missing?
This comment was minimized by the moderator on the site
Hello, Cody,
The above formula works well in my worksheet, could you give a screenshot of your data problem here?
Thank you!
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations