같은 열에 값이 중복되면 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을 기준으로 B3
3 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)
설명 : 두 경우에만 하이라이트 COUNTIF
S는 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