Google 스프레드 시트를 사용하여 직원이 로그인하는 일일 일정으로 매트릭스 (시간 / 활동)를 만듭니다.
특정 색상으로 음영 처리되거나 음영 처리되지 않은 열의 셀 수를 계산하는 수식이 있습니까?
예를 들어, 셀 중 20 개는 회색이고 31 개는 회색이 아닙니다 (다른 색으로 음영 처리됨). 수동으로 셀을 계산하는 대신 도달 열의 맨 아래에서이를 계산합니다.
Google 스프레드 시트를 사용하여 직원이 로그인하는 일일 일정으로 매트릭스 (시간 / 활동)를 만듭니다.
특정 색상으로 음영 처리되거나 음영 처리되지 않은 열의 셀 수를 계산하는 수식이 있습니까?
예를 들어, 셀 중 20 개는 회색이고 31 개는 회색이 아닙니다 (다른 색으로 음영 처리됨). 수동으로 셀을 계산하는 대신 도달 열의 맨 아래에서이를 계산합니다.
답변:
Google 스프레드 시트에서 제공하는 스크립팅 기능을 사용하여이 작업을 수행하는 방법을 찾았습니다.
방법은 다음과 같습니다.
암호:
function getBackgroundColor(rangeSpecification) {
var sheet = SpreadsheetApp.getActiveSheet();
var cell = sheet.getRange(rangeSpecification);
return cell.getBackground();
}
function sumWhereBackgroundColorIs(color, rangeSpecification) {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var range = sheet.getRange(rangeSpecification);
var x = 0;
for (var i = 1; i <= range.getNumRows(); i++) {
for (var j = 1; j <= range.getNumColumns(); j++) {
var cell = range.getCell(i, j);
if(cell.getBackground() == color)
x += parseFloat(cell.getValue());
}
}
return x;
}
function countCellsWithBackgroundColor(color, rangeSpecification) {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var range = sheet.getRange(rangeSpecification);
var x = 0;
for (var i = 1; i <= range.getNumRows(); i++) {
for (var j = 1; j <= range.getNumColumns(); j++) {
var cell = range.getCell(i, j);
if(cell.getBackground() == color)
x++;
}
}
return x;
}
위 단계를 수행 한 후 스프레드 시트에서 사용할 수있는 세 가지 기능이 더 있습니다.
countCellsWithBackgroundColor(<color>, <range specification>)
sumWhereBackgroundColorIs(<color>, <range specification>)
getBackgroundColor(<cell specification>)
유의하시기 바랍니다 <range specification>
및 <cell specification>
표현된다 A1의 표기 및 따옴표로 묶어야합니다 .
예를 들어, 배경색이 white로 설정된 B2 : F13 범위의 모든 셀 수를 얻으려면 다음 공식을 입력해야합니다.
=countCellsWithBackgroundColor("white", "B2:F13")
동일한 셀의 합계를 계산하려면 다음 공식을 사용하십시오.
=sumWhereBackgroundColorIs("white", "B2:F13")
일부 셀은 배경을 '흰색', '회색'과 같은 색상으로 설정하지 않고 RGB 색상과 같은 색상으로 설정했을 수 있습니다 #6fa8dc
. 색상이 무엇인지 짐작할 수 없으므로 셀의 색상 (예 :)을 찾으려면 B9
이 수식을 셀에 입력해야합니다.
=getBackgroundColor("B9")
나중에이 값을 위의 두 기능에 대한 매개 변수로 사용하십시오.
셀의 배경색이 "테마 색"인 경우 getBackground()
항상 잘못 반환되는 것 같습니다 #ffffff
. 표준 세트의 색상을 사용하는 것 외에 다른 방법을 찾지 못했습니다.
다시, 위의 모든 예제에서 따옴표를 주목하십시오. 그것들이 없으면 수식이 작동하지 않습니다.
getBackgroundColor()
이상 사용되지 않습니다. 아마도 코드를 업데이트 할 수 있습니까?
Google 문서에서 특정 색상으로 셀을 직접 계산하는 방법을 찾지 못했습니다.
그것들을 가리는 이유. 자동입니까? 값이 있으면 자동으로 음영 처리됩니까? 이 경우 counta () 함수를 사용하여 값이있는 셀을 계산할 수 있습니다. 보다 복잡한 규칙 집합이 있으면 countif () 함수를 사용해야합니다.
참고 : 열의 맨 위 또는 맨 아래에있는 추가 행을 고려해야 할 수도 있습니다.