Google 스프레드 시트에서 셀 색상을 기준으로 데이터 합계


14

나는 이 질문 을 보았고 같은 문제에 직면했지만 그 질문에 대한 대답은 내 경우에 도움이되지 않습니다.

자주 변경되는 큰 스프레드 시트가 있습니다. 따라서 해당 질문에 대한 해결책에 따르면 채워진 모든 열을 복제하기가 어렵고 셀 배경색을 변경할 때마다 하나 이상의 셀을 편집하는 것이 번거 롭습니다.

Google 스프레드 시트의 셀 배경색과 관련된 조건을 기반으로 데이터를 합칠 수있는 방법이 없습니까?

답변:


14

비슷한 질문에 대한 나의 대답이 도움이 되는지 확인하십시오 .

최신 정보:

Google 문서 스크립트 갤러리에 대한 제출이 승인되었으며 원하는 기능을 얻기 위해 설치할 수 있습니다.

단계들:

  • 스프레드 시트를 엽니 다
  • 메뉴에서 도구 -> 스크립트 갤러리 ... 로 이동하십시오 .
  • 색상별로 합계 검색
  • 설치를 클릭하십시오
  • 스크립트를 신뢰 하면 승인 버튼을 클릭 한 다음 닫기
  • 스프레드 시트로 돌아 가기

이제 스프레드 시트 수식에 사용할 수있는 세 가지 추가 기능이 있습니다.

  • sumWhereBackgroundColorIs(color, rangeSpecification)
  • sumWhereBackgroundColorIsNot(color, rangeSpecification)
  • getBackgroundColor(rangeSpecification)

하십시오에서 것을 rangeSpecification매개 변수는 따옴표 (필요 "주변을).

예를 들면 다음과 같습니다.

=sumWhereBackgroundColorIs("white", "A1:C4")

흰색 배경을 가진 A1 : C4 범위의 모든 셀 값을 합산합니다.

특정 셀의 색상을 모르는 경우 제공된 getBackgroundColor기능을 사용 하여 색상이 무엇인지 확인할 수 있습니다 . 일부 색상은 RGB 코드 (예 : #00ff00대신 green) 로 표시되므로이 기능이 필요 합니다.


2
getBackgroundColor()이상 사용되지 않습니다. 아마도 코드를 업데이트 할 수 있습니까?
Jacob Jan Tuinstra

2
@JacobJanTuinstra 코드를 업데이트했지만 Google에서 제출 한 내용을 검토하는 데 시간이 걸립니다. 그 동안 이 코드를
Cristian Lupascu

2
@domen 예, github.com/clupascu/GoogleApps_SumByColor/blob/master/…가 있습니다. 아주 예쁜 해결책은 아니지만 작동합니다.
Cristian Lupascu

2
스크립트 갤러리가 애드온으로 대체되었습니다. 부가 기능에서 "색으로 요약"을 찾을 수 없습니다. 추가 기능을 사용하려면 스크립트를 제출해야합니까?
Jeff Lockhart

3
@ w0lf 새로운 Google 스프레드 시트는 더 이상 스크립트 갤러리를 지원하지 않는 것 같습니다. 메시지와 함께 새로운 애드온으로 리디렉션됩니다. 스크립트 편집기는 계속 사용할 수 있으며 거기서 코드를 사용했습니다. 나는 빈 (숫자가 아닌) 셀을 합계에서 건너 뛰는 것에 대한 지원을 추가했습니다 (그렇지 않으면 빈 셀이 범위에 있으면 오류가 발생합니다) : gist.github.com/jeffdgr8/1553faa6360ad04e9c17
Jeff Lockhart

2

이것이 내가 작동하게하는 방법입니다.

  1. 열다 Tools >Script Editor

  2. 아래 코드를 붙여 스크립트를 저장하십시오

  3. 스프레드 시트로 돌아갑니다. 계산할 색상이있는 셀이있는 =countColoredCells(A1:Z5,C5)위치 와 함께 사용하십시오 C5.

암호:

/**
* @param {range} countRange Range to be evaluated
* @param {range} colorRef Cell with background color to be searched for in countRange
* @return {number}
* @customfunction
*/

function countColoredCells(countRange,colorRef) {
  var activeRange = SpreadsheetApp.getActiveRange();
  var activeSheet = activeRange.getSheet();
  var formula = activeRange.getFormula();

  var rangeA1Notation = formula.match(/\((.*)\,/).pop().trim();
  var range = activeSheet.getRange(rangeA1Notation);
  var bg = range.getBackgrounds();
  var values = range.getValues();

  var colorCellA1Notation = formula.match(/\,(.*)\)/).pop().trim();
  var colorCell = activeSheet.getRange(colorCellA1Notation);
  var color = colorCell.getBackground();

  var count = 0;

  for(var i=0;i<bg.length;i++)
    for(var j=0;j<bg[0].length;j++)
      if( bg[i][j] == color )
        count=count+1;
  return count;
};

코드 크레딧 (변경됨) : http://igoogledrive.blogspot.lt/2015/11/google-spreadsheet-count-of-colored.html


오류 범위를 찾을 수 없습니다. ???? : ((
Kegham K.

메신저 받고TypeError: Cannot call method "pop" of null. (line 13, file "Code")Dismiss
Arturino
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.