Если вы хотите использовать Google Scripts, вы будете использовать функцию getBackgrounds () для диапазона ячеек.
Следующий код, добавленный к листу через Google Scripts, позволяет поставить =colors("a1:a5")
и получить все подсчитанные небелые ячейки. Вы должны поместить массив ячеек в кавычки, чтобы он работал.
Вы можете видеть, как он работает на этом листе .
function COLORS(input) {
var ss = SpreadsheetApp.getActiveSpreadsheet();//get this doc
var sheet = ss.getActiveSheet();//get the active sheet
var counter = 0;//no colors yet
var range = sheet.getRange(input);//get range of cells from the function
var bgColors = range.getBackgrounds();//get the array of background colors
bgColors.forEach(function(element){
var cleanColors = arrayRemove(element,'#ffffff');//kick out the white backgrounds
counter = counter + cleanColors.length;//count them up
})
return counter;//return the total count
}
//kick things out of arrays from https://love2dev.com/blog/javascript-remove-from-array/#create-remove-method
function arrayRemove(arr, value) {
return arr.filter(function(ele){
return ele != value;
});
}