Google स्प्रेडशीट में सेल रंग के आधार पर सम डेटा


14

मैंने इस सवाल को देखा है और आखिरकार मैं उसी समस्या का सामना कर रहा हूं, उस सवाल का जवाब मेरे मामले के लिए उपयोगी नहीं है।

मेरे पास बड़ी स्प्रैडशीट हैं जिन्हें अक्सर बदला जाता है। तो, उस प्रश्न के लिए स्वीकार किए गए समाधान के अनुसार, सभी आबादी वाले कॉलमों को डुप्लिकेट करना मुश्किल है और यह एक और सेल को संपादित करने के लिए बोझिल है हर बार मैं कोशिकाओं की पृष्ठभूमि के रंगों पर बदलाव करना चाहता हूं।

क्या Google स्प्रैडशीट में सेल बैकग्राउंड कलर के बारे में एक शर्त के आधार पर डेटा समिट करने का कोई तरीका नहीं है?

जवाबों:


14

कृपया देखें कि क्या इसी तरह के प्रश्न का मेरा उत्तर मदद करता है।

अपडेट करें:

Google डॉक्स स्क्रिप्ट गैलरी के लिए मेरा सबमिशन स्वीकार कर लिया गया और आप इसे अपनी इच्छानुसार कार्यक्षमता प्राप्त करने के लिए स्थापित कर सकते हैं।

कदम:

  • अपनी स्प्रैडशीट खोलें
  • मेनू में टूल्स -> स्क्रिप्ट गैलरी पर जाएं ...
  • रंग द्वारा सम को खोजें
  • इंस्टॉल पर क्लिक करें
  • यदि आपको स्क्रिप्ट पर भरोसा है और फिर बंद करें तो अधिकृत बटन पर क्लिक करें
  • स्प्रेडशीट पर वापस जाएं

अब आपके पास तीन अतिरिक्त कार्य हैं जिन्हें आप अपने स्प्रेडशीट सूत्र में उपयोग कर सकते हैं:

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

कृपया उस rangeSpecificationपैरामीटर को "उनके आसपास के कोट्स ( ) की आवश्यकता है।

उदाहरण के लिए:

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

A1: C4 श्रेणी की सभी कोशिकाओं के मानों को एक सफेद पृष्ठभूमि पर रखता है।

कृपया ध्यान दें कि यदि आप किसी निश्चित सेल के रंग को नहीं जानते हैं तो आप दिए गए getBackgroundColorफ़ंक्शन का उपयोग यह पता लगाने के लिए कर सकते हैं कि रंग क्या है। यह फ़ंक्शन आवश्यक है, क्योंकि कुछ रंगों को आरजीबी कोड (उदाहरण के लिए, के #00ff00बजाय green) के रूप में व्यक्त किया जाता है ।


2
getBackgroundColor()मान्य नहीं है। शायद आप कोड को अपडेट कर सकते हैं?
याकूब जान तुइस्ट्रा

2
@JacobJanTuinstra मैंने कोड अपडेट कर दिया है, लेकिन Google को मेरे सबमिशन की समीक्षा करने में थोड़ा समय लगता है। इस बीच, आप इस कोड का
क्रिस्चियन लुपस्कु

2
@domen हाँ, वहाँ है: github.com/clupascu/GoogleApps_SumByColor/blob/master/… । बहुत सुंदर समाधान नहीं है, लेकिन यह काम करता है।
क्रिस्टियन लुपस्कू

2
स्क्रिप्ट गैलरी को ऐड-ऑन से बदल दिया गया है। मुझे ऐड-ऑन के तहत "योग द्वारा रंग" नहीं मिल रहा है। क्या आपको वहां उपलब्ध होने के लिए अपनी स्क्रिप्ट को ऐड-ऑन में सबमिट करना होगा?
जेफ लॉकहार्ट

3
@ w0lf नया Google स्प्रेडशीट अब स्क्रिप्ट गैलरी का समर्थन नहीं करता है। यह नए ऐड-ऑन के संदेश के साथ रीडायरेक्ट करता है। स्क्रिप्ट एडिटर अभी भी उपलब्ध है और मैंने वहां आपके कोड का उपयोग किया है। मैंने योग में खाली (गैर-संख्यात्मक) कोशिकाओं को स्किप
Jeff Lockhart

2

यह है कि मैं इसे काम करने के लिए कैसे मिला:

  1. खोलें Tools>Script Editor

  2. नीचे दिए गए कोड को पेस्ट करें, स्क्रिप्ट को सहेजें

  3. अपनी स्प्रैडशीट पर वापस जाएं। रंग के साथ सेल =countColoredCells(A1:Z5,C5)कहाँ C5है इसका प्रयोग करें ।

कोड:

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

कोड क्रेडिट (परिवर्तित): http://igoogledrive.blogspot.lt/2015/11/google-spreadsheet-count-of-colored.html


मुझे एक त्रुटि रेंज मिल रही है ???? : (
केघम के।

im मिल रहा हैTypeError: Cannot call method "pop" of null. (line 13, file "Code")Dismiss
Arturino
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.