답변:
비슷한 질문에 대한 나의 대답이 도움이 되는지 확인하십시오 .
최신 정보:
Google 문서 스크립트 갤러리에 대한 제출이 승인되었으며 원하는 기능을 얻기 위해 설치할 수 있습니다.
단계들:
이제 스프레드 시트 수식에 사용할 수있는 세 가지 추가 기능이 있습니다.
sumWhereBackgroundColorIs(color, rangeSpecification)
sumWhereBackgroundColorIsNot(color, rangeSpecification)
getBackgroundColor(rangeSpecification)
하십시오에서 것을 rangeSpecification
매개 변수는 따옴표 (필요 "
주변을).
예를 들면 다음과 같습니다.
=sumWhereBackgroundColorIs("white", "A1:C4")
흰색 배경을 가진 A1 : C4 범위의 모든 셀 값을 합산합니다.
특정 셀의 색상을 모르는 경우 제공된 getBackgroundColor
기능을 사용 하여 색상이 무엇인지 확인할 수 있습니다 . 일부 색상은 RGB 코드 (예 : #00ff00
대신 green
) 로 표시되므로이 기능이 필요 합니다.
이것이 내가 작동하게하는 방법입니다.
열다 Tools
>Script Editor
아래 코드를 붙여 스크립트를 저장하십시오
스프레드 시트로 돌아갑니다. 계산할 색상이있는 셀이있는 =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
TypeError: Cannot call method "pop" of null. (line 13, file "Code")Dismiss
getBackgroundColor()
이상 사용되지 않습니다. 아마도 코드를 업데이트 할 수 있습니까?