मैंने ऐसा करने का एक तरीका ढूंढ लिया है, जो Google स्प्रेडशीट द्वारा प्रदान की जाने वाली स्क्रिप्टिंग कार्यक्षमता का उपयोग करता है।
यह कैसे करना है:
- अपनी स्प्रैडशीट खोलें
- मेनू में, टूल्स पर जाएं -> स्क्रिप्ट एडिटर ...; यह एक नई विंडो खोलेगा जो आपको कोड दर्ज करने की अनुमति देगा
- नीचे दिए गए कोड को कॉपी करें
- स्क्रिप्ट संपादक विंडो में कोड पेस्ट करें और इसे सहेजने के लिए CTRL+ दबाएंS
- स्क्रिप्ट एडिटर विंडो बंद करें और स्प्रेडशीट पर वापस जाएं
कोड:
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;
}
उपरोक्त चरणों का पालन करने के बाद, आपके पास स्प्रैडशीट में तीन और कार्य उपलब्ध हैं:
countCellsWithBackgroundColor(<color>, <range specification>)
sumWhereBackgroundColorIs(<color>, <range specification>)
getBackgroundColor(<cell specification>)
कृपया ध्यान दें कि <range specification>
और A1 नोटेशन <cell specification>
में व्यक्त किए गए हैं , और उद्धरणों में संलग्न होने चाहिए ।
उदाहरण के लिए, बी 2: एफ 13 में सभी कोशिकाओं की गिनती प्राप्त करने के लिए जिनकी पृष्ठभूमि का रंग सफेद है , आपको निम्नलिखित सूत्र दर्ज करना चाहिए:
=countCellsWithBackgroundColor("white", "B2:F13")
और समान कोशिकाओं के योग की गणना करने के लिए, सूत्र का उपयोग करें:
=sumWhereBackgroundColorIs("white", "B2:F13")
कुछ कोशिकाओं में पृष्ठभूमि को 'सफ़ेद', 'धूसर' जैसे रंग के लिए सेट नहीं किया जा सकता है, लेकिन आरजीबी रंग की तरह #6fa8dc
। आप अनुमान नहीं लगा सकते हैं कि रंग क्या है, इसलिए यदि आप सेल के लिए रंग का पता लगाना चाहते हैं (उदाहरण के लिए B9
), तो आपको सेल में इस सूत्र को दर्ज करना चाहिए:
=getBackgroundColor("B9")
और बाद में ऊपर दिए गए दो कार्यों के लिए एक पैरामीटर के रूप में इस मान का उपयोग करें।
ऐसा प्रतीत होता है कि यदि सेल की पृष्ठभूमि का रंग "थीम रंग" getBackground()
है , तो गलत तरीके से हमेशा रिटर्न होता है #ffffff
। मुझे मानक सेट से एक रंग का उपयोग करने के अलावा इसके आसपास कोई रास्ता नहीं मिला है।
फिर, उपरोक्त सभी उदाहरणों में उद्धरणों पर ध्यान दें; उनके बिना, सूत्र काम नहीं करेंगे।