다른 셀의 값에 의존하는 특정 셀에서 조건부 서식을 설정하려면 어떻게해야합니까?


69

내 예에서는 열 B 셀을 조건부로 형식화하고 싶습니다. x 로 표시된 항목은 A 열의 값에 따라 형식이 지정되어야합니다 (예 1: 값은 ).

A | B
1 | x
2 | 
3 | 
1 | x
1 | x
4 | 
8 |

// x can be any value and is here merely to mark the cell that should be formatted

중요 2014 참고 : 다른 셀을 포함 할 수있는 수식을 기반으로하는 조건부 서식은 이제 Google 스프레드 시트에서 가능하며 Excel 스프레드 시트의 작동 방식과 매우 유사합니다. 이 답변 은 사용법을 설명합니다.


3
2014 년 메모를 추가 했으므로 현대적인 접근 방식을 설명하는 답변으로 체크 표시를 이동하는 것도 고려하십시오.

답변:


50

Google Apps Script를 사용하여 Google 스프레드 시트에서 복잡한 조건부 서식을 얻을 수 있습니다. 예를 들어, 셀 중 하나의 값을 기준으로 전체 행의 배경색을 변경하는 함수를 작성할 수 있습니다. "규칙으로 색상 변경"메뉴에서는 불가능하다고 생각합니다. "On Edit", "On Open"및 "On Form Submit"과 같은이 기능에 대한 트리거를 설정하려고 할 수 있습니다.

setBackgroundRGB () 함수에 대한 설명서

업데이트 : 다음은 A 열의 값을 기준으로 전체 행의 배경색을 변경하는 Google Apps 스크립트 예입니다 . 값이 양수이면 녹색을 사용하십시오. 비어 있으면 흰색입니다. 그렇지 않으면 빨간색입니다. 이 공개 Google 스프레드 시트 의 결과를 확인하십시오 . 스크립트를 실행하려면 로그인해야하지만 로그인하지 않아도 결과를 볼 수 있습니다.

function colorAll() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 2;
  var endRow = sheet.getLastRow();

  for (var r = startRow; r <= endRow; r++) {
    colorRow(r);
  }
}

function colorRow(r){
  var sheet = SpreadsheetApp.getActiveSheet();
  var dataRange = sheet.getRange(r, 1, 1, 3);

  var data = dataRange.getValues();
  var row = data[0];

  if(row[0] === ""){
    dataRange.setBackgroundRGB(255, 255, 255);
  }else if(row[0] > 0){
    dataRange.setBackgroundRGB(192, 255, 192);
  }else{
    dataRange.setBackgroundRGB(255, 192, 192);
  }

  SpreadsheetApp.flush(); 
}

function onEdit(event)
{
  var r = event.source.getActiveRange().getRowIndex();
  if (r >= 2) {
    colorRow(r);
  }
}

function onOpen(){
  colorAll();
}


13 행에서 오류가 발생했습니다. var dataRange = sheet.getRange (r, 1, 1, 3); 이 스크립트를 사용하여 특정 이름 (예 : David)에 따라 행의 색상을 지정하려면 어떻게 변경합니까? 그리고 배경 대신 글꼴을 변경했을 것입니다. setFontColor 또한 스프레드 시트에서 스크립트를 어떻게 실행합니까? 감사합니다

2
예제에 대한 링크가 더 이상 유효하지 않습니다. 이 스크립트가 작성되면 어떻게 사용합니까? 이 답변에서 빠졌습니다.
Daniel Williams

3
아래의 답변에 설명 된 가장 일반적인 사용 사례에 대한 간단한 옵션이 있습니다.
Sam Brightman

1
불행히도 Google 스프레드 시트 링크가 끊어졌습니다. 스크립트 사용 / 활성화 방법에 대한 간단한 설명이 있으면 좋을 것입니다. 그럼에도 불구하고 위대한 대답은 효과가 있습니다. :)
brimborium

19

새로운 Google 스프레드 시트는 설명 된대로이 작업을 수행 할 수 있습니다 여기에 . 먼저 기사에 설명 된대로 Google 드라이버 설정에서 새 스프레드 시트를 활성화해야합니다. 그런 다음 조건부 서식 옵션에서 '맞춤 수식'을 선택하고 수식을 입력 할 수 있습니다 ( =접두사 를 추가하는 것을 잊지 마십시오 !). $접두사가 없는 셀 참조 는 예상 한대로 범위에 적용될 때 자동으로 조정됩니다.

구식에서 신식으로의 마이그레이션에 대한 지원이 부족한 것 같습니다. 새 시트에만 적용되며 값만 복사 할 수 있음을 알았습니다. 전체 시트를 복사하는 것이 옵션 일 수 있습니다.


1
이것을 지적 해 주셔서 감사합니다. 실제로 원하는대로 작동합니다.
Robert Koritnik

현재 대부분의 이전 스프레드 시트는 새 Google 스프레드 시트로 마이그레이션되었으므로 이전 지원에 대한 메모는 더 이상 사용되지 않습니다.
Rubén

2

기본 조건부 서식의 대부분을 다루기 위해 Apps-Script와 함께이 웹 앱인 Color Code +를 작성했습니다 . 몇 가지 규칙을 입력하면 도구스크립트 편집기 ... 에서 스프레드 시트에 붙여 넣을 수있는 코드가 생성 됩니다. ( Google 포럼에서 도움말 스레드 )


1

두 셀의 합계가 세 번째 셀과 다른 경우 빨간색 배경으로 조건부 서식을 지정하려는 경우 Google 스프레드 시트의 조건부 서식 규칙은 다음과 같습니다.

단색 및 맞춤 수식이 포함 된 Google 스프레드 시트 조건부 서식 규칙


0

조건부 서식-사용자 지정 수식

range 2:227

= if($i:$i = "Duplicate",True,False)

행을 강조 표시 할 색상을 선택하십시오.


0

(2017 년 2 월) 다른 답변에서 언급했듯이 Google 스프레드 시트를 사용 하면 데스크톱 / 노트북, Android 또는 iOS 기기에 상관없이 사용자 인터페이스에서 직접 조건부 서식 을 추가 할 수 있습니다. 그러나이 답변의 나머지 부분은 앱에서 조건부 서식을 "할"수 있으므로 개발자를위한 것입니다.

개발자는 Google 스프레드 시트 API v4 이상을 사용 하여 조건부 서식 규칙을 CRUD하는 애플리케이션을 작성할 수 있습니다. 자세한 내용과 참조 문서 (검색 ) 는 안내서샘플 페이지를 확인하십시오 . 가이드는이 파이썬 조각을 (의 파일 ID 가정 기능 및 API를 서비스 엔드 포인트 등을) :{add,update,delete}ConditionalFormatRuleSHEET_IDSHEETS

myRange = {
    'sheetId': 0,
    'startRowIndex': 1,
    'endRowIndex': 11,
    'startColumnIndex': 0,
    'endColumnIndex': 4,
}

reqs = [
    {'addConditionalFormatRule': {
        'index': 0,
        'rule': {
            'ranges': [ myRange ],
            'booleanRule': {
                'format': {'textFormat': {'foregroundColor': {'red': 0.8}}}
                'condition': {
                    'type': 'CUSTOM_FORMULA',
                    'values':
                        [{'userEnteredValue': '=GT($D2,median($D$2:$D$11))'}]
                },
            },
        },
    }},
    {'addConditionalFormatRule': {
        'index': 0,
        'rule': {
            'ranges': [ myRange ],
            'booleanRule': {
                'format': {
                    'backgroundColor': {'red': 1, 'green': 0.4, 'blue': 0.4}
                },
                'condition': {
                    'type': 'CUSTOM_FORMULA',
                    'values':
                        [{'userEnteredValue': '=LT($D2,median($D$2:$D$11))'}]
                },
            },
        },
    }},
]

SHEETS.spreadsheets().batchUpdate(spreadsheetId=SHEET_ID,
        body={'requests': reqs}).execute()

Python 외에도 Google API는 다양한 언어를 지원 하므로 옵션이 있습니다. 어쨌든,이 코드 샘플은 중간 나이보다 작은 사람들은 밝은 빨간색으로 강조 표시되고 중간 이상의 사람들은 데이터가 빨간색 글꼴로 표시되도록 시트를 형식화합니다 (아래 이미지 참조).

조건부 서식 예

참고 : 여기에서의 나의 대답 은 PSA가 1 위를 유지할 필요가 없으므로 PSA를 떨어 뜨렸다는 점을 제외 하고는 이 질문 에 대한 SO와 동일합니다 .


이 질문에 대한 몇 가지 답변이 SO 참조 질문에 있습니다. 이 답변이 말하는 "또 다른 답변"은 무엇입니까? (: 다른 한편으로,이 사이트를 방문한 사람들이 코드를 작성할 수는 있지만 대부분이 사용자 정의 함수 / 사용자 정의 함수에서와 같이 "최종 사용자 개발"이라고 생각합니다. CRUD이 답변에 포함 된 모든 추가 세부 정보가 도움이 될 수 있음을 알 수 있습니다.
Rubén

0

'신규'시트에서 Q의 세부 사항을 해결하려면 B : B에서 조건부 서식을 지우고 ColumnB를 선택하고 사용자 지정 수식을 적용하는 것이 좋습니다 .

=A1=1

선택 형식 및 Done.


0

조건부 서식을 편집 할 때 사용자 지정 수식을 선택 하고 다음을 사용하십시오.

=if(A1 = 1 , true)

색상을 선택하면 완료됩니다.


-1

질문의 설명에 따라 편집하십시오.

Google 스프레드 시트 창에는 "규칙으로 색상 변경"옵션이있는 형식 메뉴가 있습니다. 이는 Google 스프레드 시트의 조건부 서식과 같은 기술적입니다. 내가 알 수있는 한 다른 셀의 값을 기준으로 한 셀에 색상을 지정할 수있는 방법이 없습니다 .Google에서는 다른 셀에 대한 수식을 입력 할 수 없습니다.

다른 데이터를 B 열에 넣지 않는 한 항상 B 열을 모두 A 열과 동일하게 한 다음 "규칙을 사용하여 색상 변경"옵션을 사용하여 값이 1 인 모든 셀에 비슷한 색상을 지정하십시오. 값이 1 인 경우 빨간색 배경 및 빨간색 텍스트, 그렇지 않은 경우 흰색 배경 및 흰색 텍스트, B 열의 값을 효과적으로 숨기면 원하는 모양을 얻을 수 있습니다.

Excel에서는 원하는 것을 할 수 있습니다 . 귀하의 데이터를 예로 들어,이 수식이 참일 때 조건부로 B1 형식을 지정했습니다.

=IF(A1=1,true,false)

그런 다음 서식을 아래로 드래그하여 B 열의 셀만 강조 표시하고 A 열의 이웃은 1과 같습니다.

Excel은 할 수 있지만 Google은 할 수 없습니다.


원래 답변

2 열 에서이 작업을 수행 할 수 있는지 확실하지 않지만 3에서 수행 할 수 있다는 것을 알고 있습니다.

 A  |  B  |  C
----------------
 1  |  f  |  x

B 열에서 IF공식을 사용하여 x가 적절한 C 열에 배치되었는지 확인할 수 있습니다 .

=IF(C1="x",A1,"") 

IF시험은 - 화학식 3 부를 가지고 다음 값 및 다른 된 값. 위의 예에서 수식 x은 C 열에 C 가 있는지 확인합니다 . 있는 경우 A1의 값을 입력하고 그렇지 않은 경우 공백을 입력합니다. x대문자인지 소문자 인지는 중요하지 않습니다 .

목록 상단에이 수식을 입력하면 드래그 기능을 사용하여 나머지 목록에 대해 수식을 아래로 끌 수 있습니다. 셀이 파란색으로 강조 표시된 상태에서 커서가 십자형이 될 때까지 오른쪽 아래 모서리의 사각형 위로 마우스를 이동하십시오. 그런 다음 아래로 드래그하여 수식을 아래의 셀에 복사하십시오.


1
당신이 나를 오해 한 것 같아요 문제는 셀에 값을 배치하지 않는 조건부 서식 에 관한 것 입니다.
Robert Koritnik 2009

1
현재이 답변은 더 이상 사용되지 않습니다. 참조 문서 편집기 도움말 - 조건부 서식 규칙 적용
루벤
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.