Tôi đang tìm công thức cho ô tô sáng bảng tính google nếu giá trị trùng lặp trong cùng một cột
bất cứ ai có thể xin vui lòng giúp tôi cho truy vấn này?
Tôi đang tìm công thức cho ô tô sáng bảng tính google nếu giá trị trùng lặp trong cùng một cột
bất cứ ai có thể xin vui lòng giúp tôi cho truy vấn này?
Câu trả lời:
Thử cái này:
Custom formula is
=countif(A:A,A1)>1
(hoặc thay đổi A
thành cột bạn đã chọn)A1:A100
:).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
.
;
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 countif
phải là ô đầu tiên của phạm vi bạn chọn.
=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.
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:
Format
>Conditional formatting...
Apply to range
, chọn phạm vi mà quy tắc sẽ được áp dụng.Format cells if
, chọn Custom formula is
trên thả xuống.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()
và 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, B3
sẽ 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à 4
trả 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:
*
) 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. :)
$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.
Trả lời của @zcar là đúng. Chỉ cần thêm một Gif và các bước để tham khảo.
Format > Conditional formatting..
Format cells if..
=countif(A:A,A1)>1
vào trườngCustom formula is
A
với cột của riêng bạn.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.
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.
=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 C1
hiệ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 C
và 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
).
=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ó TRUE
chỉ khi bất cứ điều gì trong C1
có một bản sao. ( Hãy nhớ rằng C1
có 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à TRUE
nế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ỉ TRUE
khi 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.
=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 ( TRUE
nế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) >= 1
bắt đầu phạm vi tìm kiếm tại hàng được đánh giá hiện tại ( C1
trong 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).
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.
=COUNTIFS(A:A; A1; B:B; B1)>1