Google E-Tablolar'daki hücre rengine dayalı toplam veriler


14

Bu soruyu gördüm ve aynı problemle karşılaşmama rağmen, bu sorunun cevabı davam için yararlı değil.

Sık sık değiştirilen büyük elektronik tablolarım var. Bu nedenle, bu soruya kabul edilen çözüme göre, tüm nüfuslu sütunları çoğaltmak zordur ve hücrelerin arka plan renklerinde bir değişiklik yapmak istediğim her seferinde bir hücre daha düzenlemek zordur.

Google E-Tablolar'daki hücre arka plan rengiyle ilgili bir koşula göre verileri toplamanın bir yolu yok mu?

Yanıtlar:


14

Lütfen benzer bir soruya verdiğim yanıtın yardımcı olup olmadığını görün.

Güncelleme:

Google Dokümanlar Komut Dosyası galerisine başvurum kabul edildi ve istediğiniz işlevselliği elde etmek için yükleyebilirsiniz.

Adımlar:

  • E-tablonuzu açın
  • Menüde Araçlar -> Script galerisi ...
  • Toplamı renge göre ara
  • Yükle'yi tıklayın
  • Komut dosyasına güveniyorsanız Yetkilendir düğmesini tıklayın ve ardından Kapat
  • e-tabloya geri dön

Artık e-tablo formülünüzde kullanabileceğiniz üç ek işlev var:

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

Lütfen rangeSpecificationparametrelerin "etrafında tırnak işareti ( ) gerektirdiğini lütfen unutmayın .

Örneğin:

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

beyaz arka planı olan A1: C4 aralığındaki tüm hücrelerin değerlerini toplar.

Belirli bir hücrenin rengini bilmiyorsanız, rengin getBackgroundColorne olduğunu bulmak için sağlanan işlevi kullanabileceğinizi lütfen unutmayın . Bu işlev gereklidir, çünkü bazı renkler RGB kodları olarak ifade edilir (örneğin, #00ff00yerine green).


2
getBackgroundColor()Kullanımdan kaldırılmıştır. Belki kodu güncelleyebilirsiniz?
Jacob Jan Tuinstra

2
@JacobJanTuinstra Kodu güncelledim, ancak Google'ın gönderimi incelemesi biraz zaman alıyor. Bu arada, bu kodu
Cristian Lupascu

2
@domen evet, var: github.com/clupascu/GoogleApps_SumByColor/blob/master/… . Çok güzel bir çözüm değil, ama işe yarıyor.
Cristian Lupascu

2
Komut dosyası galerisinin yerini eklentiler aldı. Eklentilerin altında "toplamı renge göre" bulamıyorum. Komut dosyanızı orada kullanılabilmesi için eklentilere göndermeniz gerekiyor mu?
Jeff Lockhart

3
@ w0lf Yeni Google e-tabloları artık komut dosyası galerisini desteklemiyor gibi görünüyor. Bir mesajla yeni eklentilere yönlendirir. Script editörü hala kullanılabilir ve kodunuzu orada kullandım. Bir çatal yaptım ve toplamda boş (sayısal olmayan) hücreleri atlamak için destek ekledim (aksi takdirde aralıkta boş hücreler varsa bir hata oluşur): gist.github.com/jeffdgr8/1553faa6360ad04e9c17
Jeff Lockhart

2

İşte bu şekilde aldım:

  1. Tools>Script Editor

  2. Aşağıdaki kodu yapıştırın, komut dosyasını kaydedin

  3. E-tablonuza geri dönün. Sayılacak renge sahip hücrenin =countColoredCells(A1:Z5,C5)nerede C5olduğu ile kullanın .

Kod:

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

Kod kredileri (değiştirildi): http://igoogledrive.blogspot.lt/2015/11/google-spreadsheet-count-of-colored.html


Hata bulunamadı Aralık Bulunamadı ???? : ((
Kegham K.21

im gettingTypeError: Cannot call method "pop" of null. (line 13, file "Code")Dismiss
Arturino
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.