같은 열에 값이 중복되면 Google 스프레드 시트 강조 표시 셀 수식을 찾고 있습니다.
누구 든지이 쿼리에 대해 나를 도울 수 있습니까?
같은 열에 값이 중복되면 Google 스프레드 시트 강조 표시 셀 수식을 찾고 있습니다.
누구 든지이 쿼리에 대해 나를 도울 수 있습니까?
답변:
이 시도:
Custom formula is=countif(A:A,A1)>1(또는 A선택한 열로 변경 하십시오)A1:A100.A1 : A100 셀에 기록 된 내용은 모두 확인되며 중복이 있으면 (두 번 이상 발생하면) 색상이 표시됩니다.
쉼표 ( ,)를 소수점 구분 기호로 사용하는 로캘의 경우 인수 구분 기호는 세미콜론 ( ;) 일 가능성이 높습니다 . 즉, 시도하십시오 :=countif(A:A;A1)>1 , 대신 .
여러 열의 경우을 사용하십시오 countifs.
;은 "잘못된 수식"오류가 발생합니다. 그것을 제거하는 것은 트릭을 수행했습니다. 또한 두 번째 인수로 지정한 countif셀은 선택한 범위의 첫 번째 셀이어야합니다.
=countif(B:B,B2)>1됩니다. 이것은 절대 대 상대 셀 참조를 사용할 때 꽤 고급 형식을 수행 할 수있게합니다.
반면 zolley의 대답은 질문에 완벽하게 맞아, 여기보다 일반적인 모든 범위의 솔루션 플러스 설명입니다 :
=COUNTIF($A$1:$C$50, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))) > 1
이 예에서는 범위를 사용합니다 A1:C50. 첫 번째 매개 변수 ( $A$1:$C$50)는 중복을 강조 표시 할 범위로 바꿔야합니다!
중복을 강조 표시하려면 :
Format>Conditional formatting...Apply to range규칙을 적용 할 범위를 선택하십시오.Format cells if선택 Custom formula is드롭 다운에.왜 작동합니까?
COUNTIF(range, criterion), 모든 셀과 비교한다 range받는 criterion방식과 유사하게 처리된다. 특수 연산자가 제공되지 않으면 범위 내의 모든 셀을 지정된 셀과 비교하고 규칙과 일치하는 것으로 밝혀진 셀 수 (이 경우 비교)를 반환합니다. 고정 범위를 사용하고 있습니다.$항상 전체 범위를 볼 수 있도록 기호 포함)를 있습니다.
두 번째 블록 INDIRECT(ADDRESS(ROW(), COLUMN(), 4)) 은 현재 셀의 내용을 반환합니다. 이것이 셀 안에 있으면 문서는 순환 의존성에 대해 울었을 것입니다. 그러나이 경우 수식은 변경하지 않고 셀에있는 것처럼 평가됩니다.
ROW()및 COLUMN()상기 행 반환 번호 와 열 번호 를 각각의 소정의 셀을. 매개 변수를 제공하지 않으면 현재 셀이 반환됩니다 (예 : 1을 기준으로 B33 ROW(), 2를 반환).COLUMN() ).
그런 다음 ADDRESS(row, column, [absolute_relative_mode])숫자 행과 열을 셀 참조로 변환하는 데 사용합니다 (예 : B3셀 컨텍스트 안에있는 동안 주소 또는 내용을 모르므로 비교할 내용이 필요함). 세 번째 매개 변수는 형식화를 처리하고 4형식화 INDIRECT()좋아요를 리턴합니다 .
INDIRECT(), 셀 참조 를 가져 와서 내용을 반환합니다. 이 경우 현재 셀의 내용입니다. 그런 다음 다시 시작으로COUNTIF() 범위의 모든 셀을 테스트하고 카운트를 반환합니다.
마지막 단계는 수식을 논리식으로 만들어 부울을 반환하는 것 COUNTIF(...) > 1입니다. 은 > 1우리가 우리의 동일 적어도 하나 개의 셀이 알고 있기 때문에 사용된다. 그것은 우리의 세포이며, 범위 내에 있으며, 따라서 그 자체와 비교 될 것입니다. 따라서 중복을 나타내려면 우리와 일치하는 둘 이상의 셀을 찾아야합니다.
출처 :
*)과 다른 검사 를 작성하여 의 행을 따라 만드는 것 입니다 ((COUNTIF(...))*(NOT(ISBLANK(INDIRECT(...current cell...))))). 그것이 내가 모바일에서 할 수있는 최선입니다. :)
$A$1:$C$50문제의 열에 따라 변경해야 할 사항 만 있습니다 . 나는 졸리보다 더 일반적인 접근 방식을 좋아합니다.
"텍스트 포함"드롭 다운 메뉴에서 "사용자 정의 수식 :"을 선택하고 "= countif (A : A, A1)> 1"(따옴표없이)을 작성하십시오.
zolley가 제안한 대로 했지만, 약간 수정해야합니다 . "Text Contains" 대신 "Custom formula is"를 사용하십시오 . 그런 다음 조건부 렌더링이 작동합니다.

Text Contains있으므로 사용자가 일반적으로 클릭하여 드롭 다운 메뉴에 액세스하는 옵션입니다.
=COUNTIF(C:C, C1) > 1
설명 : C1여기에서는 C의 첫 번째 행을 참조하지 않습니다.이 수식은 조건부 서식 규칙에 의해 평가되기 때문에 수식이 적용되는지 확인하는 경우 C1현재 평가중인 행을 효과적으로 나타냅니다. 하이라이트를 적용해야하는지 확인하십시오. ( 그것이 INDIRECT(C &ROW())당신에게 무언가를 의미한다면, 더 비슷 합니다! ). 기본적으로 조건부 서식 수식을 평가할 때 행 1을 참조하는 항목은 수식이 실행되는 행과 비교하여 평가됩니다. ( 그렇습니다. C2를 사용하는 경우 현재 평가중인 행 바로 아래의 행 상태를 점검하도록 규칙에 요청합니다. )
따라서 이것은 C1열 전체에있는 (평가중인 현재 셀) 에 무엇이든지 발생하고 그 중 하나 이상이있는 C경우 (즉, 값이 중복 됨) 다음을 강조 표시합니다. 전체적으로)로 평가됩니다TRUE .
=AND(COUNTIF(C:C, C1) > 1, COUNTIF(C$1:C1, C1) = 1)
설명 : 두 경우에만 하이라이트 COUNTIFS는 TRUE(그들이 안에 표시 AND()).
평가할 첫 번째 항 ( COUNTIF(C:C, C1) > 1)은 첫 번째 예와 동일합니다. 그건 TRUE에 어떤 경우에만 C1중복이있다. ( 현재 강조 표시되어야하는지 확인하기 위해 현재 행 을 C1효과적으로 참조 함)을 기억하십시오 .
두 번째 용어 ( COUNTIF(C$1:C1, C1) = 1)는 비슷해 보이지만 세 가지 중요한 차이점이 있습니다.
열 전체를 검색하지는 않지만 C(첫 번째 열과 같이 C:C) 검색 대신 첫 번째 행에서 검색을 시작합니다. C$1
( $강제 1로 평가되는 행이 아닌 행을 문자 그대로 보도록 강제합니다 ).
그런 다음 평가중인 현재 행에서 검색을 중지합니다 C1.
마지막으로 말합니다 = 1.
따라서 TRUE현재 평가중인 행 위에 중복이없는 경우 에만 해당 됩니다 (즉, 첫 번째 중복이어야 함).
첫 번째 용어 ( TRUE이 행에 중복이 있는 경우 에만 해당)와 결합하면 첫 번째 단어 만 강조 표시됩니다.
=AND(COUNTIF(C:C, C1) > 1, NOT(COUNTIF(C$1:C1, C1) = 1), COUNTIF(C1:C, C1) >= 1)
설명 : 첫 번째 표현식은 항상 동일 TRUE합니다 (현재 평가 된 행이 전혀 중복되지 않은 경우).
두 번째 용어는 부정 된 것을 제외하고는 마지막 용어와 정확히 동일 NOT()합니다. 따라서 첫 번째 발생을 무시합니다.
마지막으로 세 번째 항은 2, 3 등의 중복 항목을 선택 COUNTIF(C1:C, C1) >= 1하여 현재 평가 된 행 (에서) C1에서 검색 범위를 시작합니다 C1:C. 그런 다음 TRUE이 항목 아래에 하나 이상의 복제본이있는 경우 에만 (강조 적용) 평가하고 (이를 포함하여) : >= 1( 그렇지 않으면 마지막 복제본이 무시 >=되지 않아야 함 >).
나는 모든 옵션을 시도했지만 아무도 효과가 없었습니다.
Google 앱 스크립트 만 도움이되었습니다.
출처 : https://ctrlq.org/code/19649-find-duplicate-rows-in-google-sheets
문서 상단에
1.- 도구> 스크립트 편집기로 이동
2.- 스크립트 이름을 설정하십시오
이 코드를 붙여 넣습니다.
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.- 저장하고 실행
3 초도 채되지 않아 중복 행이 채색되었습니다. 스크립트를 복사하여 붙여 넣기 만하면됩니다.
Google Apps 스크립트에 대해 모른다면이 링크가 도움이 될 수 있습니다.
https://zapier.com/learn/google-sheets/google-apps-script-tutorial/
https://developers.google.com/apps-script/overview
이게 도움이 되길 바란다.
=COUNTIFS(A:A; A1; B:B; B1)>1