Jumlahkan data berdasarkan warna sel di Google Spreadsheets

14

Saya telah melihat pertanyaan ini dan walaupun saya menghadapi masalah yang sama, jawaban untuk pertanyaan itu tidak membantu kasus saya.

Saya memiliki spreadsheet besar yang sering diubah. Jadi, menurut solusi yang diterima untuk pertanyaan itu, sulit untuk menduplikasi semua kolom yang dihuni dan sulit untuk mengedit satu sel lagi setiap kali saya ingin membuat perubahan pada warna latar belakang sel.

Apakah tidak ada cara untuk menjumlahkan data berdasarkan kondisi mengenai warna latar belakang sel di Google Spreadsheets?

Weslei
sumber

Jawaban:

14

Silakan lihat apakah jawaban saya untuk pertanyaan serupa membantu.

Memperbarui:

Kiriman saya untuk galeri Skrip Google Documents diterima dan Anda dapat menginstalnya untuk mendapatkan fungsionalitas yang Anda inginkan.

Langkah langkah:

  • Buka spreadsheet Anda
  • Dalam menu buka Alat -> Galeri skrip ...
  • Cari Sum dengan warna
  • Klik Pasang
  • Klik tombol Otorisasi jika Anda mempercayai skrip dan kemudian Tutup
  • kembali ke spreadsheet

Sekarang Anda memiliki tiga fungsi tambahan yang dapat Anda gunakan dalam rumus spreadsheet Anda:

  • sumWhereBackgroundColorIs(color, rangeSpecification)
  • sumWhereBackgroundColorIsNot(color, rangeSpecification)
  • getBackgroundColor(rangeSpecification)

Silakan dari rangeSpecificationparameter perlu tanda kutip ( ") di sekitar mereka.

Sebagai contoh:

=sumWhereBackgroundColorIs("white", "A1:C4")

menjumlahkan nilai semua sel dalam rentang A1: C4 yang memiliki latar belakang putih.

Harap perhatikan bahwa jika Anda tidak tahu warna sel tertentu, Anda dapat menggunakan getBackgroundColorfungsi yang disediakan untuk mengetahui apa warnanya. Fungsi ini diperlukan, karena beberapa warna dinyatakan sebagai kode RGB (misalnya, #00ff00bukan green).

Cristian Lupascu
sumber
2
Sudah getBackgroundColor()usang. Mungkin Anda dapat memperbarui kode?
Jacob Jan Tuinstra
2
@JacobJanTuinstra Saya telah memperbarui kode, tetapi butuh beberapa saat bagi Google untuk meninjau kiriman saya. Sementara itu, Anda dapat menggunakan kode ini
Cristian Lupascu
2
@anda ya, ada: github.com/clupascu/GoogleApps_SumByColor/blob/master/… . Bukan solusi yang sangat cantik, tetapi berhasil.
Cristian Lupascu
2
Galeri skrip telah digantikan oleh pengaya. Saya tidak dapat menemukan "jumlah warna" di bawah add-on. Apakah Anda harus mengirimkan skrip untuk ditambahkan agar tersedia di sana?
Jeff Lockhart
3
@ w0lf Spreadsheet Google baru tampaknya tidak lagi mendukung galeri skrip. Ini dialihkan dengan pesan ke add-on baru. Editor skrip masih tersedia dan saya menggunakan kode Anda di sana. Saya membuat garpu dan menambahkan dukungan untuk melewatkan sel-sel kosong (non-numerik) dalam jumlah (jika tidak, kesalahan terjadi jika sel-sel kosong ada dalam kisaran): gist.github.com/jeffdgr8/1553faa6360ad04e9c17
Jeff Lockhart
2

Beginilah cara saya membuatnya bekerja:

  1. Buka Tools>Script Editor

  2. Rekatkan kode di bawah ini, simpan skrip

  3. Kembali ke spreadsheet Anda. Gunakan dengan di =countColoredCells(A1:Z5,C5)mana C5sel dengan warna yang akan dihitung.

Kode:

/**
* @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;
};

Kredit kode (diubah): http://igoogledrive.blogspot.lt/2015/11/google-spreadsheet-count-of-colored.html

Kai Noack
sumber
Saya mendapatkan galat Rentang Tidak Ditemukan ???? : ((
Kegham K.
Saya mendapatkanTypeError: Cannot call method "pop" of null. (line 13, file "Code")Dismiss
Arturino