Google E-Tablolar'ın sağladığı komut dosyası işlevselliğini kullanarak bunu yapmanın bir yolunu buldum.
Bunu nasıl yapacağınız aşağıda açıklanmıştır:
- e-tablonuzu açın
- menüde Araçlar -> Komut Dosyası Düzenleyici ... 'ye gidin; kod girmenizi sağlayan yeni bir pencere açılacaktır
- aşağıdaki kodu kopyala
- kodu Komut Dosyası Düzenleyici penceresine yapıştırın ve kaydetmek için CTRL+ tuşuna basınS
- Komut Dosyası düzenleyici pencerelerini kapatın ve e-tabloya dönün
Kod:
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;
}
Yukarıdaki adımları uyguladıktan sonra, e-tabloda üç işlev daha bulunmaktadır:
countCellsWithBackgroundColor(<color>, <range specification>)
sumWhereBackgroundColorIs(<color>, <range specification>)
getBackgroundColor(<cell specification>)
Lütfen <range specification>
ve A1 gösteriminde <cell specification>
ifade edildiğini ve tırnak işaretleri içine alınmaları gerektiğini unutmayın .
Örneğin, arka plan rengi beyaz olarak ayarlanmış B2: F13 aralığındaki tüm hücrelerin sayısını almak için aşağıdaki formülü girmelisiniz:
=countCellsWithBackgroundColor("white", "B2:F13")
ve aynı hücrelerin toplamını hesaplamak için şu formülü kullanın:
=sumWhereBackgroundColorIs("white", "B2:F13")
Bazı hücrelerin arka planı 'beyaz', 'gri' gibi bir renge ayarlanmamış olabilir, ancak RGB rengi gibi olabilir #6fa8dc
. Rengin ne olduğunu tahmin edemezsiniz, bu nedenle bir hücrenin rengini (örneğin, B9
) bulmak istiyorsanız, bu formülü bir hücreye girmelisiniz:
=getBackgroundColor("B9")
ve daha sonra bu değeri yukarıdaki iki işleve parametre olarak kullanın.
Bir hücrenin arka plan rengi "tema rengi" ise, getBackground()
her zaman yanlış döndürülür #ffffff
. Standart setten bir renk kullanmaktan başka bir yol bulamadım.
Yine, yukarıdaki tüm örneklerde verilen tırnaklara dikkat edin; onlar olmadan formüller işe yaramazdı.