Làm cách nào để có được các giá trị riêng biệt / duy nhất trong một cột trong Excel?


281

Nếu tôi có một cột có các giá trị và tôi muốn tìm hiểu các giá trị khác biệt trong đó (không phải là bao nhiêu - mà là các giá trị khác biệt thực tế), làm thế nào tôi có thể làm điều đó?

Trong SQL Server tôi sẽ làm một cái gì đó như

SELECT Distinct(MyColumn) FROM MyTable

Câu trả lời:


297

Đơn giản hơn bạn có thể nghĩ:

  • Nhấp vào Menu Ribbon dữ liệu
  • Chọn nâng cao Nút trong Sắp xếp & Lọc phần
  • Điền vào hộp thoại, sao chép kết quả sang vị trí khác và đảm bảo bạn đánh dấu vào các bản ghi duy nhất

nhập mô tả hình ảnh ở đây


30
Đối với những người trong chúng ta vẫn còn tồn tại không có ruy băng, đó là Dữ liệu-> Bộ lọc-> Nâng cao.
JT Grimes

10
+1 Phương pháp này vượt trội so với Xóa bản sao nếu bạn muốn giữ nguyên dữ liệu gốc.
Xuất sắc

17
Nếu sao chép dữ liệu sang trang tính khác, bạn phải khởi tạo hộp thoại Nâng cao từ trang tính bạn muốn sao chép sang , nếu không, bạn sẽ You can only copy filtered data to the active sheetgặp lỗi.
Dave Zych

5
Điều này không cập nhật khi giá trị phạm vi nguồn thay đổi. Có cách nào để làm cho nó năng động?
hughes

129

Excel 2007 và 2010:
Sử dụng Remove Duplicatestùy chọn menu dưới tiêu đề Dữ liệu .

Excel 2003:
Cách dễ dàng:

  1. Đảm bảo dữ liệu của bạn có tiêu đề
  2. Dữ liệu -> Bộ lọc -> Bộ lọc nâng cao
  3. Chỉ kiểm tra hồ sơ duy nhất
  4. Chọn Sao chép sang vị trí khác
  5. Nhấn vào OK

Cách khó:

Viết một macro với mã sau đây:

'Remove duplicates from sorted list
Sub getDistinct()
    Do While ActiveCell.Value <> ""
        If ActiveCell.Value = ActiveCell.Offset(1, 0).Value Then
            ActiveCell.Select
            Selection.Delete Shift:=xlUp
        Else
            ActiveCell.Offset(1, 0).Activate
        End If
    Loop
End Sub

Điều đó cung cấp cho bạn danh sách khác biệt của bạn. Bạn có thể muốn sao chép danh sách của bạn sang một trang khác trước.


20
Cảm ơn! Đây là một bằng chứng cho thấy Stack Exchange tốt hơn bất kỳ nguồn thông tin kỹ thuật nào khác. Tất cả các kết quả google khác là vô ích, và không được xếp hạng. Ngoài ra tôi tự hỏi làm thế nào các chuyên gia trao đổi tồn tại
Eran Medan

21

Tôi sử dụng hai phương pháp chính để có được các giá trị riêng biệt - đầu tiên là Remove Duplicatescông cụ vô giá theo đề xuất của Nathan DeWitt .

Nhược điểm Remove Duplicateslà bạn mất dữ liệu. Bất chấp sức mạnh của Ctrl+ zbạn có thể không muốn làm điều này vì nhiều lý do - ví dụ: bạn có thể có các bộ lọc hiện được chọn khiến cho việc loại bỏ trùng lặp để có được danh sách giá trị riêng biệt của bạn khá lộn xộn.

Phương pháp khác, không được đề cập ở trên là sử dụng Bảng Pivot.

Giả sử đây là bảng của bạn và bạn muốn nhận danh sách Nền tảng riêng biệt. bàn giả

Chèn một Pivot Tablebảng với nguồn dữ liệu của bạn.

Bây giờ chọn cột Nền tảng là của bạn Row Labels.

Voila! Một danh sách các giá trị riêng biệt.

bảng trụ như danh sách giá trị khác biệt

Nếu bạn muốn sắp xếp gọn gàng này, bạn có thể tắt Field Headersvà thiết lập Grand Totalsđược Off for Rows and Columns.


1
Kỹ thuật PivotTable thật tuyệt vời! Cảm ơn vì điều đó.
Thomas L Holaday

20

Hoặc (một cách thô sơ đơn giản):

Trong B1,

=IF(COUNTIF(A$1:A1,A1)=1,A1,"") 

và sao chép xuống. Nó chỉ sao chép lần xuất hiện đầu tiên của mỗi giá trị trên (trong hàng mà nó xuất hiện).


1
Như với tất cả các công thức Excel, bạn có thể cần sử dụng dấu chấm phẩy ( ;) thay vì dấu phẩy ( ,) dựa trên cài đặt khu vực của hệ thống.
Scott

5

Hoặc bạn có thể bao gồm tùy chọn bộ lọc trong một macro

    Columns("A:A").AdvancedFilter Action:=xlFilterInPlace, Unique:=True

3

Đối với tôi, cách đơn giản nhất để sắp xếp là sử dụng tùy chọn "Bộ lọc".

Bước đầu tiên là tìm các giá trị trùng lặp với Định dạng có điều kiện -> Đánh dấu các quy tắc ô -> Giá trị trùng lặp.

Sau đó nhấp vào mũi tên trên Cột bạn có các bản sao (trong trường hợp này là "Nền tảng") -> Lọc theo màu (Màu ô hoặc màu phông chữ).


Kết quả ở đây là khác nhau, vì tất cả các trường hợp trùng lặp được loại bỏ. Ví dụ: cột có giá trị [a, a, b]nên giảm xuống [a, b], không [b].
Hugo Ideler
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.