Làm cách nào để tô sáng ô nếu giá trị trùng lặp trong cùng một cột cho bảng tính google?


Câu trả lời:


474

Thử cái này:

  1. Chọn toàn bộ cột
  2. Nhấp vào định dạng
  3. Nhấp vào Định dạng có điều kiện
  4. Nhấp vào Thêm quy tắc khác (hoặc chỉnh sửa quy tắc hiện có / mặc định)
  5. Đặt các ô Định dạng nếu :Custom formula is
  6. Đặt giá trị thành: =countif(A:A,A1)>1(hoặc thay đổi Athành cột bạn đã chọn)
  7. Đặt kiểu định dạng.
  8. Đảm bảo phạm vi áp dụng cho cột của bạn (ví dụ A1:A100:).
  9. Nhấp vào Xong

Bất cứ điều gì được viết trong các ô A1: A100 sẽ được kiểm tra và nếu có một bản sao (xảy ra nhiều lần) thì nó sẽ được tô màu.

Đối với các địa phương sử dụng dấu phẩy ( ,) làm dấu tách thập phân, dấu phân cách đối số rất có thể là dấu chấm phẩy ( ;). Đó là, thử : =countif(A:A;A1)>1, thay vào đó.

Đối với nhiều cột, sử dụng countifs.


50
Kể từ Google Sheets mới, bạn có thể sử dụng phiên bản nhiều cột COUNTIFS. Sử dụng như thế này nếu các bản sao là sự kết hợp của nhiều cột hơn=COUNTIFS(A:A; A1; B:B; B1)>1
Christiaan Westerbeek

6
kết ;quả cuối cùng trong một lỗi "công thức không hợp lệ" đối với tôi. Chỉ cần loại bỏ nó đã lừa Ngoài ra, hãy cẩn thận: ô bạn chỉ định là đối số thứ 2 countifphải là ô đầu tiên của phạm vi bạn chọn.
edelans

11
Nó hoạt động. Nhưng tại sao? Giả sử A1 là một tiêu chí cho phương trình, công thức này không so sánh tất cả các ô trong phạm vi với A1?
mafonya

9
@mafonya, công thức tùy chỉnh là một công thức chung phải được đọc là áp dụng cho ô đầu tiên. Tất cả các tham chiếu sẽ được điều chỉnh cho từng và mọi ô trong phạm vi đã chọn. Vì vậy, ví dụ, khi kiểm tra ô B2, công thức sẽ trở thành nội bộ =countif(B:B,B2)>1. Điều này cho phép một người thực hiện một số định dạng khá nâng cao khi sử dụng các tham chiếu ô tương đối so với tương đối.
asoundmove

14
Như một lưu ý phụ, nếu bạn muốn áp dụng nó cho toàn bộ cột, bạn có thể sử dụng công thức = Countif (A: A, A: A)> 1 Điều này có nghĩa là nó sẽ không chỉ áp dụng cho ô A1, nhưng sẽ A4 và A8 nếu chúng giống nhau (trùng lặp). Bây giờ, cả A4 và A8 sẽ được định dạng.
BBking ngày

68

Mặc dù câu trả lời của xe đẩy là hoàn toàn đúng cho câu hỏi, đây là một giải pháp tổng quát hơn cho bất kỳ phạm vi nào, cộng với giải thích:

    =COUNTIF($A$1:$C$50, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))) > 1

Xin lưu ý rằng trong ví dụ này tôi sẽ sử dụng phạm vi A1:C50. Tham số đầu tiên ( $A$1:$C$50) nên được thay thế bằng phạm vi mà bạn muốn làm nổi bật các bản sao!


để làm nổi bật các bản sao:

  1. Chọn toàn bộ phạm vi mà đánh dấu trùng lặp là muốn.
  2. Trên menu: Format>Conditional formatting...
  3. Trong Apply to range, chọn phạm vi mà quy tắc sẽ được áp dụng.
  4. Trong Format cells if, chọn Custom formula istrên thả xuống.
  5. Trong hộp văn bản chèn công thức đã cho, điều chỉnh phạm vi cho phù hợp với bước (3).

Tại sao nó hoạt động?

COUNTIF(range, criterion), Sẽ so sánh mỗi tế bào trong rangeđến criterion, mà được xử lý tương tự như công thức. Nếu không có toán tử đặc biệt nào được cung cấp, nó sẽ so sánh mọi ô trong phạm vi với ô đã cho và trả về số lượng ô được tìm thấy khớp với quy tắc (trong trường hợp này là so sánh). Chúng tôi đang sử dụng một phạm vi cố định (có $dấu hiệu) để chúng tôi luôn xem toàn bộ phạm vi.

Khối thứ hai INDIRECT(ADDRESS(ROW(), COLUMN(), 4)), sẽ trả về nội dung của ô hiện tại. Nếu điều này được đặt bên trong ô, các tài liệu sẽ khóc về sự phụ thuộc vòng tròn, nhưng trong trường hợp này, công thức được đánh giá như thể nó nằm trong ô, mà không thay đổi nó.

ROW()COLUMN()sẽ trả về số hàng và số cột của ô đã cho tương ứng. Nếu không có tham số nào được cung cấp, ô hiện tại sẽ được trả về (ví dụ, đây là dựa trên 1, B3sẽ trả về 3 cho ROW()và 2 cho COLUMN()).

Sau đó, chúng tôi sử dụng: ADDRESS(row, column, [absolute_relative_mode])để dịch hàng và cột số sang tham chiếu ô (như B3. Hãy nhớ rằng, trong khi chúng tôi ở trong ngữ cảnh của ô, chúng tôi không biết đó là địa chỉ HOẶC nội dung và chúng tôi cần nội dung để so sánh với). Tham số thứ ba chăm sóc định dạng và 4trả về các định dạng INDIRECT()thích.

INDIRECT(), sẽ lấy một tham chiếu ô và trả về nội dung của nó. Trong trường hợp này, nội dung của ô hiện tại. Sau đó quay trở lại bắt đầu, COUNTIF()sẽ kiểm tra mọi ô trong phạm vi so với chúng ta và trả về số đếm.

Bước cuối cùng là làm cho công thức của chúng ta trả về một boolean, bằng cách làm cho nó một biểu thức logic : COUNTIF(...) > 1. Chúng > 1được sử dụng bởi vì chúng ta biết có ít nhất một ô giống hệt với chúng ta. Đó là tế bào của chúng tôi, nằm trong phạm vi, và do đó sẽ được so sánh với chính nó. Vì vậy, để chỉ ra một bản sao, chúng ta cần tìm 2 hoặc nhiều ô khớp với chúng ta.


Nguồn:

  • Trình chỉnh sửa tài liệu Trợ giúp: COUNTIF ()
  • Tài liệu chỉnh sửa tài liệu trợ giúp: INDIRECT ()
  • Tài liệu chỉnh sửa tài liệu trợ giúp: ĐỊA CHỈ ()
  • Tài liệu chỉnh sửa tài liệu trợ giúp: ROW ()
  • Tài liệu chỉnh sửa tài liệu trợ giúp: COLUMN ()

4
Đáng buồn thay, điều này không làm việc cho tôi. Nó không làm nổi bật bất cứ điều gì cả mặc dù có rất nhiều bản sao. Không chắc chắn tại sao, nó có vẻ như một giải pháp tốt đẹp.
JVC

Điều này làm việc cho tôi, nhưng cũng làm nổi bật các ô trống. Có cách nào để loại trừ khoảng trống?
gillespieza

1
@Amanda - Vâng, một chút sáng tạo và nó có thể. Tôi đang AFK trong tuần, nhưng bắt tôi sau một tuần. Và một nửa và tôi sẽ sẵn lòng giúp đỡ. Ý tưởng là tạo ra một câu lệnh AND (sử dụng *) và một kiểm tra khác, dọc theo dòng ((COUNTIF(...))*(NOT(ISBLANK(INDIRECT(...current cell...))))). Đó là điều tốt nhất tôi có thể làm trên di động. :)
Selfish

2
Chính xác đây là giải pháp cần thiết. Điều này chỉ hoạt động như một HASHMAP để xác định các bản sao.
AKh

1
Hoạt động quyến rũ, cảm ơn @Selfish! Tiết kiệm thời gian cho tôi. Lưu ý: chỉ có điều cần thay đổi $A$1:$C$50- phù hợp với các cột theo câu hỏi. Tôi thích cách tiếp cận chung chung này hơn là của xe đẩy.
boldnik

28

Trả lời của @zcar là đúng. Chỉ cần thêm một Gif và các bước để tham khảo.

  1. Menu goto Format > Conditional formatting..
  2. Tìm thấy Format cells if..
  3. Thêm =countif(A:A,A1)>1vào trườngCustom formula is
    • Lưu ý: Thay đổi chữ cái Avới cột của riêng bạn.

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


2
Làm thế nào tôi có thể lọc chúng bằng màu sắc sau khi làm nổi bật các bản sao?
Faisal

@Faisal chỉ với tập lệnh hoặc addon
player0

27

Từ menu thả xuống "Chứa văn bản", chọn "Công thức tùy chỉnh là:" và viết: "= Countif (A: A, A1)> 1" (không có dấu ngoặc kép)

Tôi đã làm đúng như zolley đề xuất, nhưng có nên được thực hiện sửa chữa nhỏ: sử dụng "Custom thức là" thay vì "Văn bản Chứa" . Và sau đó kết xuất có điều kiện sẽ làm việc.

Ảnh chụp màn hình từ menu


1
Tôi đã không đánh giá thấp bạn (tôi vừa tìm thấy câu hỏi này ngày hôm nay), nhưng đây là một nhận xét về câu trả lời của bạn, như bạn yêu cầu. Tôi không nghĩ dấu chấm phẩy là cần thiết trong công thức. Ngoài ra, tôi vẫn thấy một danh sách thả xuống trong bảng định dạng có điều kiện trong trang tính google. Ít nhất, tôi nhấp vào tùy chọn lựa chọn và một bộ tùy chọn dài xuất hiện, mà tôi thường gọi là menu thả xuống. Tùy chọn ban đầu xuất hiện trong trình đơn thả xuống là thường xuyên Text Contains, vì vậy đó là những gì người dùng thường nhấp vào để truy cập menu thả xuống.
Paul de Barros

Cảm ơn Paul, cho ý kiến ​​của bạn. Có thể tôi đã hiểu nhầm: Tôi hiểu rằng "Chứa văn bản" (hoặc "Định dạng ô nếu ...") có menu thả xuống con "Công thức tùy chỉnh là:". Ngoài ra, "Chứa văn bản" phải có giá trị chuỗi con tương ứng, không "= Countif (A: A, A1)> 1;". Trong thực tế, đó là một cách tiếp cận khác.
Shurik

12

Đánh dấu trùng lặp (trong cột C):

=COUNTIF(C:C, C1) > 1

Giải thích: Ở C1đây không đề cập đến hàng đầu tiên trong C. Bởi vì công thức này được đánh giá theo quy tắc định dạng có điều kiện, thay vào đó, khi công thức được kiểm tra để xem liệu nó có áp dụng hay không, thì tham chiếu C1hiệu quả đến hàng nào hiện đang được đánh giá xem nếu nổi bật nên được áp dụng. ( Vì vậy, nó giống như INDIRECT(C &ROW()), nếu điều đó có ý nghĩa với bạn! ). Về cơ bản, khi đánh giá một công thức định dạng có điều kiện, mọi thứ liên quan đến hàng 1 đều được đánh giá theo hàng mà công thức đang được chạy. ( Và có, nếu bạn sử dụng C2 thì bạn yêu cầu quy tắc kiểm tra trạng thái của hàng ngay bên dưới trạng thái hiện đang được đánh giá. )

Vì vậy, điều này nói rằng, đếm các lần xuất hiện của bất cứ thứ gì trong C1(ô hiện tại được đánh giá) nằm trong toàn bộ cột Cvà nếu có nhiều hơn 1 trong số chúng (nghĩa là giá trị có trùng lặp) thì: áp dụng tô sáng ( vì công thức , tổng thể, đánh giá đểTRUE ).

Làm nổi bật chỉ bản sao đầu tiên:

=AND(COUNTIF(C:C, C1) > 1, COUNTIF(C$1:C1, C1) = 1)

Giải thích: Điều này chỉ nổi bật nếu cả hai COUNTIFđều TRUE(chúng xuất hiện bên trong một AND()).

Thuật ngữ đầu tiên được đánh giá (the COUNTIF(C:C, C1) > 1) là chính xác như trong ví dụ đầu tiên; nó TRUEchỉ khi bất cứ điều gì trong C1có một bản sao. ( Hãy nhớ rằng C1có hiệu quả đề cập đến hàng hiện tại đang được kiểm tra để xem nếu nó cần được tô sáng ).

Thuật ngữ thứ hai ( COUNTIF(C$1:C1, C1) = 1) trông tương tự nhưng nó có ba điểm khác biệt quan trọng:

Nó không tìm kiếm toàn bộ cột C(giống như cột đầu tiên thực hiện C:C:) nhưng thay vào đó, nó bắt đầu tìm kiếm từ hàng đầu tiên: C$1 ( $buộc nó phải nhìn theo hàng theo nghĩa đen 1, không phải ở bất kỳ hàng nào được đánh giá).

Và sau đó nó dừng tìm kiếm ở hàng hiện tại được đánh giá C1.

Cuối cùng nó nói = 1.

Vì vậy, sẽ chỉ là TRUEnếu không có bản sao nào trên hàng hiện đang được đánh giá (có nghĩa là nó phải là bản sao đầu tiên trong số các bản sao).

Kết hợp với thuật ngữ đầu tiên đó (sẽ chỉ TRUEkhi hàng này có trùng lặp) điều này có nghĩa là chỉ lần xuất hiện đầu tiên sẽ được tô sáng.

Đánh dấu các bản sao thứ hai trở đi:

=AND(COUNTIF(C:C, C1) > 1, NOT(COUNTIF(C$1:C1, C1) = 1), COUNTIF(C1:C, C1) >= 1)

Giải thích: Biểu thức đầu tiên giống như mọi khi ( TRUEnếu hàng được đánh giá hiện tại hoàn toàn trùng lặp).

Thuật ngữ thứ hai hoàn toàn giống với thuật ngữ cuối cùng ngoại trừ phủ định: Nó có một NOT()xung quanh nó. Vì vậy, nó bỏ qua sự xuất hiện đầu tiên.

Cuối cùng, thuật ngữ thứ ba chọn các bản sao 2, 3, v.v. COUNTIF(C1:C, C1) >= 1bắt đầu phạm vi tìm kiếm tại hàng được đánh giá hiện tại ( C1trong C1:C). Sau đó, nó chỉ đánh giá TRUE(áp dụng tô sáng) nếu có một hoặc nhiều bản sao bên dưới cái này (và bao gồm cả cái này): >= 1(nó >=không chỉ là mặt >khác được bỏ qua).


3

Tôi đã thử tất cả các tùy chọn và không có cách nào làm việc.

Chỉ có các kịch bản ứng dụng google đã giúp tôi.

nguồn: https://ctrlq.org/code/19649-find-d repeatate -rows-in-google-sheet

Ở đầu tài liệu của bạn

1. đi đến công cụ> biên tập tập lệnh

2.- đặt tên cho kịch bản của bạn

3.- dán mã này:

function findDuplicates() {
  // List the columns you want to check by number (A = 1)
  var CHECK_COLUMNS = [1];

  // Get the active sheet and info about it
  var sourceSheet = SpreadsheetApp.getActiveSheet();
  var numRows = sourceSheet.getLastRow();
  var numCols = sourceSheet.getLastColumn();

  // Create the temporary working sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var newSheet = ss.insertSheet("FindDupes");

  // Copy the desired rows to the FindDupes sheet
  for (var i = 0; i < CHECK_COLUMNS.length; i++) {
    var sourceRange = sourceSheet.getRange(1,CHECK_COLUMNS[i],numRows);
    var nextCol = newSheet.getLastColumn() + 1;
    sourceRange.copyTo(newSheet.getRange(1,nextCol,numRows));
  }

  // Find duplicates in the FindDupes sheet and color them in the main sheet
  var dupes = false;
  var data = newSheet.getDataRange().getValues();
  for (i = 1; i < data.length - 1; i++) {
    for (j = i+1; j < data.length; j++) {
      if  (data[i].join() == data[j].join()) {
        dupes = true;
        sourceSheet.getRange(i+1,1,1,numCols).setBackground("red");
        sourceSheet.getRange(j+1,1,1,numCols).setBackground("red");
      }
    }
  }

  // Remove the FindDupes temporary sheet
  ss.deleteSheet(newSheet);

  // Alert the user with the results
  if (dupes) {
    Browser.msgBox("Possible duplicate(s) found and colored red.");
  } else {
    Browser.msgBox("No duplicates found.");
  }
};

4.- lưu và chạy

Trong vòng chưa đầy 3 giây, hàng trùng lặp của tôi đã được tô màu. Chỉ cần sao chép-qua kịch bản.

Nếu bạn không biết về tập lệnh ứng dụng google, liên kết này có thể giúp bạn:

https://zapier.com/learn/google-sheet/google-apps-script-tutorial/

https://developers.google.com/apps-script/overview

Tôi hi vọng cái này giúp được.


Mã này có thể được sửa đổi để chỉ làm nổi bật các trường trùng lặp trong cột bằng màu đỏ thay vì hàng đầy đủ không?
Amr
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.