Google 스프레드 시트의 동일한 열에 값이 중복되면 셀을 강조 표시하는 방법은 무엇입니까?


답변:


473

이 시도:

  1. 전체 열을 선택하십시오
  2. 형식을 클릭하십시오
  3. 조건부 서식을 클릭하십시오.
  4. 다른 규칙 추가를 클릭 하거나 기존 / 기본 규칙을 편집하십시오.
  5. 다음과 같은 경우 서식 셀 설정 .Custom formula is
  6. 값을 다음으로 설정하십시오 =countif(A:A,A1)>1(또는 A선택한 열로 변경 하십시오)
  7. 서식 스타일을 설정하십시오.
  8. 범위가 열에 적용되는지 확인하십시오 (예 :) A1:A100.
  9. 완료를 클릭하십시오

A1 : A100 셀에 기록 된 내용은 모두 확인되며 중복이 있으면 (두 번 이상 발생하면) 색상이 표시됩니다.

쉼표 ( ,)를 소수점 구분 기호로 사용하는 로캘의 경우 인수 구분 기호는 세미콜론 ( ;) 일 가능성이 높습니다 . 즉, 시도하십시오 :=countif(A:A;A1)>1 , 대신 .

여러 열의 경우을 사용하십시오 countifs.


50
새 Google 스프레드 시트에서는 여러 열 버전 COUNTIFS를 사용할 수 있습니다. 중복이 더 많은 열의 조합 인 경우 이와 같이 사용하십시오.=COUNTIFS(A:A; A1; B:B; B1)>1
Christiaan Westerbeek

6
결말 ;은 "잘못된 수식"오류가 발생합니다. 그것을 제거하는 것은 트릭을 수행했습니다. 또한 두 번째 인수로 지정한 countif셀은 선택한 범위의 첫 번째 셀이어야합니다.
edelans

11
효과가있다. 그런데 왜? A1이 방정식의 기준이라고 가정하면이 수식이 A1 범위의 모든 셀을 비교하지 않습니까?
mafonya

9
@mafonya, 사용자 지정 수식은 첫 번째 셀에 적용 할 때 읽어야하는 일반 수식입니다. 모든 참조는 선택한 범위의 각 셀에 맞게 조정됩니다. 예를 들어, B2 셀을 확인할 때 공식은 내부적으로 =countif(B:B,B2)>1됩니다. 이것은 절대 대 상대 셀 참조를 사용할 때 꽤 고급 형식을 수행 할 수있게합니다.
asoundmove 1

14
참고로 전체 열에 적용하려면 수식 = countif (A : A, A : A)> 1을 사용할 수 있습니다. 이는 셀 A1에만 적용되는 것이 아니라 A4와 A8이 같으면 (중복). 이제 A4와 A8이 모두 포맷됩니다.
BBking

68

반면 zolley의 대답은 질문에 완벽하게 맞아, 여기보다 일반적인 모든 범위의 솔루션 플러스 설명입니다 :

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

이 예에서는 범위를 사용합니다 A1:C50. 첫 번째 매개 변수 ( $A$1:$C$50)는 중복을 강조 표시 할 범위로 바꿔야합니다!


중복을 강조 표시하려면 :

  1. 중복 표시가 필요한 전체 범위를 선택하십시오.
  2. 메뉴에서 : Format>Conditional formatting...
  3. 에서 Apply to range규칙을 적용 할 범위를 선택하십시오.
  4. 에서 Format cells if선택 Custom formula is드롭 다운에.
  5. 텍스트 상자에 단계 (3)에 맞게 범위를 조정하여 주어진 공식을 삽입하십시오.

왜 작동합니까?

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우리가 우리의 동일 적어도 하나 개의 셀이 알고 있기 때문에 사용된다. 그것은 우리의 세포이며, 범위 내에 있으며, 따라서 그 자체와 비교 될 것입니다. 따라서 중복을 나타내려면 우리와 일치하는 둘 이상의 셀을 찾아야합니다.


출처 :


4
슬프게도 이것은 나를 위해 작동하지 않습니다. 중복이 많음에도 불구하고 아무것도 강조 표시하지 않습니다. 이유가 확실하지 않은 경우, 좋은 해결책처럼 들립니다.
JVC

이것은 나를 위해 작동하지만 빈 셀을 강조 표시합니다. 공백을 제외시키는 방법이 있습니까?
gillespieza

1
@Amanda-네, 약간의 창의력과 가능합니다. 나는 일주일 동안 AFK이지만 일주일 안에 나를 붙잡고 반을 도와 드리겠습니다. 아이디어는 AND 문 (을 사용하여 *)과 다른 검사 를 작성하여 의 행을 따라 만드는 것 입니다 ((COUNTIF(...))*(NOT(ISBLANK(INDIRECT(...current cell...))))). 그것이 내가 모바일에서 할 수있는 최선입니다. :)
이기적인

2
정확히 이것이 필요한 솔루션입니다. 이것은 중복을 식별하기 위해 HASHMAP처럼 작동합니다.
AKh

1
@Selfish에게 감사합니다! 시간을 절약했습니다. 참고 : $A$1:$C$50문제의 열에 따라 변경해야 할 사항 만 있습니다 . 나는 졸리보다 더 일반적인 접근 방식을 좋아합니다.
boldnik

28

@zolley의 답변이 옳습니다. Gif와 참조 단계를 추가하기 만하면됩니다.

  1. 고토 메뉴 Format > Conditional formatting..
  2. 찾기 Format cells if..
  3. =countif(A:A,A1)>1필드에 추가Custom formula is
    • 참고 : A자신의 열로 문자 를 변경하십시오 .

여기에 이미지 설명을 입력하십시오


2
복사본을 강조 표시 한 후 색상별로 필터링하려면 어떻게해야합니까?
파이살

@Faisal 스크립트 또는 애드온 만 사용
player0

27

"텍스트 포함"드롭 다운 메뉴에서 "사용자 정의 수식 :"을 선택하고 "= countif (A : A, A1)> 1"(따옴표없이)을 작성하십시오.

zolley가 제안한 대로 했지만, 약간 수정해야합니다 . "Text Contains" 대신 "Custom formula is"를 사용하십시오 . 그런 다음 조건부 렌더링이 작동합니다.

메뉴 스크린 샷


1
나는 당신을 downvote하지 않았습니다 (오늘 방금이 질문을 찾았습니다). 여기 당신이 요청 한대로 당신의 대답에 대한 의견이 있습니다. 수식에 세미콜론이 필요하다고 생각하지 않습니다. 또한 Google 시트의 조건부 서식 패널에 여전히 드롭 다운이 표시됩니다. 적어도 선택 옵션을 클릭하면 일반적으로 드롭 다운 메뉴라고하는 긴 옵션 세트가 나타납니다. 드롭 다운에 처음 표시되는 옵션은 자주 Text Contains있으므로 사용자가 일반적으로 클릭하여 드롭 다운 메뉴에 액세스하는 옵션입니다.
Paul de Barros

의견을 보내 주셔서 감사합니다. 어쩌면 내가 잘못 이해했을 수도 있습니다. "텍스트 포함"(또는 "... 인 경우 셀 서식 ...")에 "사용자 지정 수식 :"이라는 하위 드롭 다운 메뉴가 있다는 것을 이해했습니다. 또한 "Text Contains"에는 "= countif (A : A, A1)> 1;"이 아니라 해당하는 하위 문자열 값이 있어야합니다. 사실 그것은 또 다른 접근법입니다.
Shurik

12

중복 표시 (C 열) :

=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( 그렇지 않으면 마지막 복제본이 무시 >=되지 않아야 함 >).


3

나는 모든 옵션을 시도했지만 아무도 효과가 없었습니다.

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

이게 도움이 되길 바란다.


이 코드를 수정하여 전체 행 대신 빨간색으로 열의 중복 필드 만 강조 표시 할 수 있습니까?
Amr
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.