Saya baru mengenal skrip Google Apps dan saya ingin membuat fungsi untuk spreadsheet yang menjumlahkan nilai sel ketika sel memenuhi kriteria tertentu, seperti warna latar belakang. Selain itu, saya ingin melewatkan rentang sebagai array dan tidak menggunakan notasi A1 karena alasan berikut.
Saya menemukan fungsi yang menggunakan notasi A1 di sini . Masalahnya adalah ketika saya memilikinya di sel tertentu
=sumWhereBackgroundColorIs("white", "A1:A10")
dan saya salin nilai ke sel yang berdekatan hasilnya akan kembali
= sumWhereBackgroundColorIs ("white", "A1: A10" )
sementara aku ingin memilikinya
= sumWhereBackgroundColorIs ("white", "B1: B10" )
kalau tidak, saya selalu memodifikasi secara manual argumen input dan saya ingin menghindari ini karena saya sudah menggunakan fungsi ini secara luas.
Karenanya saya sudah mencoba dengan melewatkan rentang sebagai array nilai dengan menggunakan
=sumIfBgColor(#ffffff, A1:A10)
function sumIfBgColor(color, range){
var x = 0;
for(var i = 0; i < range.length; i++){
for(var j = 0; j < range[i].length; j++){
var cell = getCell();
if(cell.getBackgroundColor() == color)
x += parseFloat(range[i][j]);
}
}
return x;
}
tapi saya tidak tahu bagaimana cara mendapatkan sel (yaitu objek tipe Range) mulai dari apa yang saya miliki.
sumber
A1 notation
.Jawaban:
Kepada @ Jacob klaim ketidakmungkinan, saya membantahnya demikian ... (tapi terima kasih atas kecepatan yang ditingkatkan)
menggunakan:
dengan fungsi-fungsi berikut akan melakukan apa yang Anda inginkan.
sumber
Referensi: http://igoogledrive.blogspot.com/2015/11/google-spreadsheet-sum-of-colored-cells.html
Alih-alih meneruskan parameter sebagai string ke fungsi kustom, skrip berikut mengambil input sebagai rentang:
Lihatlah screenshot berikut:
sumber
Script kecil berikut akan melakukan triknya.
Kode
Dijelaskan
Pertama, spreadsheet aktif ditentukan. Kemudian nilai dan warna, berdasarkan rentang, diambil. Nilai-nilai akan digunakan untuk beralih melalui warna dan akhirnya penjumlahan.
Pemakaian
Contoh
Saya telah membuat contoh file untuk Anda: Sum berdasarkan Background
sumber