Note: The other languages of the website are Google-translated. Back to English
English English

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ác công cụ năng suất văn phòng tốt nhất

Kutools cho Excel giải quyết hầu hết các vấn đề của bạn và tăng 80% năng suất của bạn

  • Tái sử dụng: Chèn nhanh công thức phức tạp, biểu đồ và bất cứ thứ gì bạn đã sử dụng trước đây; Mã hóa ô với mật khẩu; Tạo danh sách gửi thư và gửi email ...
  • Thanh siêu công thức (dễ dàng chỉnh sửa nhiều dòng văn bản và công thức); Bố cục đọc (dễ dàng đọc và chỉnh sửa số lượng ô lớn); Dán vào Dải ô đã Lọchữu ích. Cảm ơn !
  • Hợp nhất các ô / hàng / cột mà không làm mất dữ liệu; Nội dung phân chia ô; Kết hợp các hàng / cột trùng lặp... Ngăn chặn các ô trùng lặp; So sánh các dãyhữu ích. Cảm ơn !
  • Chọn trùng lặp hoặc duy nhất Hàng; Chọn hàng trống (tất cả các ô đều trống); Tìm siêu và Tìm mờ trong Nhiều Sổ làm việc; Chọn ngẫu nhiên ...
  • Bản sao chính xác Nhiều ô mà không thay đổi tham chiếu công thức; Tự động tạo tài liệu tham khảo sang Nhiều Trang tính; Chèn Bullets, Hộp kiểm và hơn thế nữa ...
  • Trích xuất văn bản, Thêm Văn bản, Xóa theo Vị trí, Xóa không gian; Tạo và In Tổng số phân trang; Chuyển đổi giữa nội dung ô và nhận xéthữu ích. Cảm ơn !
  • Siêu lọc (lưu và áp dụng các lược đồ lọc cho các trang tính khác); Sắp xếp nâng cao theo tháng / tuần / ngày, tần suất và hơn thế nữa; Bộ lọc đặc biệt bằng cách in đậm, in nghiêng ...
  • Kết hợp Workbook và WorkSheets; Hợp nhất các bảng dựa trên các cột chính; Chia dữ liệu thành nhiều trang tính; Chuyển đổi hàng loạt xls, xlsx và PDFhữu ích. Cảm ơn !
  • Hơn 300 tính năng mạnh mẽ. Hỗ trợ Office / Excel 2007-2019 và 365. Hỗ trợ tất cả các ngôn ngữ. Dễ dàng triển khai trong doanh nghiệp hoặc tổ chức của bạn. Đầy đủ các tính năng dùng thử miễn phí 30 ngày. Đảm bảo hoàn tiền trong 60 ngày.
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!
officetab dưới cùng
Nhận xét (31)
Xếp hạng 5 trong 5 · xếp hạng 1
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Is this formula complete? =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"),)&"",
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cái này vẫn chưa sửa được: sad:
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
thật lãng phí thời gian ..... công thức KHÔNG hoạt động
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn!!! Tôi đã dành hàng giờ để cố gắng thực hiện việc này và để tìm hiểu điều gì đã xảy ra với Trình hướng dẫn Pivot (bài viết khác).
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Tôi đang sử dụng mã VBA của bạn, nhưng không muốn hộp bật lên. Thay vào đó, tôi muốn xác định chính xác phạm vi ô để sử dụng mọi lúc và chính xác ô nào để đặt đầu ra vào. Phạm vi đầu vào và đầu ra sẽ nằm trên hai trang tính khác nhau. làm cách nào để cập nhật VBA để làm như vậy? Cảm ơn bạn!!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Chào! Có ai biết tại sao công thức này dường như dẫn đến lỗi sau hàng 87 không? Giống như, nó hoạt động hoàn hảo và sau đó tại một thời điểm nhất định, nó chỉ trả về cho tôi lỗi cho mọi hàng .. đó là điều tồi tệ nhất! Bởi vì tôi đang ở rất gần chính xác những gì tôi cần ở đây ...
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
=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"),)&"" It doesn't work
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi muốn trích xuất các ô duy nhất từ ​​cột đầu tiên khi tôi so sánh nó với các cột khác (tôi có ba cột không bằng nhau), tôi có thể làm như thế nào?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, tôi có ba cột không bằng nhau và muốn trích xuất các ô duy nhất của cột đầu tiên. tôi làm nó như thế nào?? cảm ơn trước
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
tôi yêu

Trích xuất các giá trị duy nhất từ ​​nhiều cột với bảng tổng hợp
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Bạn có thể vui lòng gửi công thức chính xác ... chức năng VBA hoạt động tốt.
Chỉ cho dự án của tôi, tôi thích sử dụng công thức chính xác hơn.


Cảm ơn
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
có ai biết, cho đầu ra, làm thế nào để làm cho nó thành nhiều dòng nhưng không thành một dòng? (hiện tại một kết quả dòng đạt được bởi worksheet functions.transpose, nhưng điều tôi muốn đạt được (kết quả là) là khi chọn cho 3 cột, kết quả trả về cũng là 3 cột, thay vì một
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Công thức mảng này là ĐÚNG. Dữ liệu trong các cột A đến C, công thức kết quả đầu tiên trong ô D2 ... Công thức này khác với các công thức mảng khác là sau đó sao chép công thức xuống và Ctrl + Shift + Enter tất cả công thức. Tuy nhiên, công thức mảng này nên được thực hiện bằng Ctrl + Shift + Enter trong ô đầu tiên và sao chép xuống.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Muchas gracias bởi la macro !!! tôi fue muy sử dụng
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
tôi đã điều chỉnh cho trang tính của mình nhưng chỉ trả về giá trị đầu tiên trong mảng đã xác định ... tôi còn thiếu cái gì?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, Cody,
Công thức trên hoạt động tốt trong trang tính của tôi, bạn có thể cung cấp ảnh chụp màn hình về vấn đề dữ liệu của mình ở đây không?
Cảm ơn bạn!
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Về phiên bản công thức, bạn có thể giải thích chi tiết hơn phần này đang làm gì không? *100+COLUMN($A:$C),7^8)),"R0C00") Cụ thể là những gì * 100, 7 ^ 8"R0C000" đang làm? Tôi đang hiểu mọi thứ khác, nhưng tôi không thể tìm ra những thứ này để làm gì.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Hơi muộn cho câu trả lời của tôi ở đây nhưng ...
ROW ($ 2: $ 9) * 100 - đây là nhân với số hàng * 100, vì vậy nếu nó ở hàng 5, bây giờ con số là 500
COLUMN ($ A: $ C) - số này được thêm vào hàng * 100 số, vì vậy nếu đó là hàng 5 cột 2, thì số này là 502.
7 ^ 8)), - điều này (tôi nghĩ) là giá trị tối đa cho câu lệnh min trước đó.
"R0C00") - định dạng văn bản này dựa trên số. Trong ví dụ, chúng tôi có 502, vì vậy điều này cho R5C02 (hàng 5, cột 02).

Nếu bạn có nhiều cột nhưng không có nhiều hàng, thì bạn có thể thay đổi nó thành ROW ($ 2: $ 9) *1000+ COLUMN ($ A: $ C), 7 ^ 8)), "R0C000")
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn vì mã. Tôi đang sử dụng mã VBA của trang này. Có cách nào để thêm mã sắp xếp sau khi các giá trị duy nhất được trích xuất để nó tự động sắp xếp không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
chúng ta có thể tạo hàm uniqdata thay vì macro không?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào, İlhan , Nếu bạn thích Hàm do người dùng xác định để tạo công thức giải quyết vấn đề này, đoạn mã dưới đây có thể giúp bạn: Sau khi chèn mã, hãy chọn danh sách các ô mà bạn muốn đặt kết quả. Sau đó nhập công thức này:= Đơn vị (A1: C4)  trong thanh công thức. nhấn Ctrl + Shift + Enter chìa khóa với nhau. 


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
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Czy để đi?
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Công thức mảng ở trên cùng hoạt động tốt khi được sử dụng với dữ liệu trong cùng một trang tính, tuy nhiên khi tôi cố gắng sử dụng nó để tham chiếu cùng một dữ liệu chính xác từ một trang tính khác, công thức không trả về kết quả nào. Tôi không thể hiểu tại sao. Có giới hạn nào với các hàm mảng ngăn bạn tham chiếu các phạm vi trong một trang tính khác không?

Cảm ơn vì những ý tưởng tốt đẹp mà bạn cung cấp.
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Erin,

Rất vui được giúp đỡ. Hàm INDIRECT trong công thức này phức tạp hơn để sử dụng khi tham chiếu dữ liệu trong các trang tính khác. Bạn không nên sử dụng tính năng này khi tham chiếu các phạm vi trong các trang tính khác nhau.

Ví dụ: Bây giờ dữ liệu đang ở trong Sheet1, tôi muốn tham chiếu đến nội dung của ô C2 của Sheet1 trong Sheet2. Đầu tiên, trong hai ô bất kỳ trong Sheet2, chẳng hạn như D1 và D2, hãy nhập Sheet1 và C2 tương ứng. Tại thời điểm này, hãy nhập công thức vào ô trống của Sheet2:
= INDIRECT ("'" & D1 & "'!" & D2), thì nội dung của ô C2 trong Sheet1 có thể được trả về.

Như bạn có thể thấy, nó làm cho mọi thứ trở nên phức tạp hơn. Hy vọng lời giải thích của tôi có thể giúp đỡ. Chúc một ngày tốt lành.

Trân trọng,
Mandy
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Ngài! VBA đã làm việc kỳ diệu, cảm ơn bạn rất nhiều vì điều đó! Tôi đã tự hỏi, Nếu tôi thay đổi dữ liệu ban đầu, liệu có thể tự động làm mới cột với các giá trị duy nhất không?
Xếp hạng 5 trong 5
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Xin chào Ioannis,

Rất vui được giúp đỡ. Sau khi bạn thay đổi dữ liệu gốc, VBA không thể tự động làm mới kết quả. Và cách dễ nhất mà tôi có thể nghĩ đến là nhấn Ctrl + Alt + F9 để làm mới tất cả kết quả trong trang tính trong tất cả các sổ làm việc đang mở. Chúc một ngày tốt lành.

Trân trọng,
Mandy
Nhận xét này đã được giảm thiểu bởi người điều hành trên trang web
Cảm ơn bạn cho bài viết tuyệt vời này.

Đối với những người đang sử dụng công thức mảng trong Excel không phải tiếng Anh phải đặc biệt chú ý đến chuỗi định dạng văn bản: trong ví dụ của bạn: "R0C00".
Đối với tiếng Đức, điều này sẽ dịch thành "Z0S00". Tuy nhiên, "S" là một ký tự đặc biệt liên quan đến giây để định dạng thời gian. Ký tự này cần phải được ký tự thoát và do đó chuỗi định dạng chính xác cho Excel tiếng Đức là "Z0 \ S00".

Tôi hy vọng điều này sẽ giúp ai đó trong tương lai :-)
Không có bình luận nào được đăng ở đây
Tải thêm
Để lại ý kiến ​​của bạn
Đăng với tư cách khách
×
Đánh giá bài viết này:
0   Nhân vật
Các vị trí được đề xuất