গুগল স্প্রেডশিটে সেল রঙের উপর ভিত্তি করে যোগফল


14

আমি এই প্রশ্নটি দেখেছি এবং আমি একই সমস্যার মুখোমুখি হয়েছি, সেই প্রশ্নের উত্তর আমার ক্ষেত্রে সহায়ক নয়।

আমার কাছে বড় স্প্রেডশিট রয়েছে যা ঘন ঘন পরিবর্তিত হয়। সুতরাং, সেই প্রশ্নের কাছে গৃহীত সমাধান অনুসারে, সমস্ত জনবহুল কলামগুলি নকল করা শক্ত এবং প্রতিবার আমি কোষের পটভূমির রঙ পরিবর্তন করতে চাইলে আরও একটি কক্ষ সম্পাদনা করা জটিল।

গুগল স্প্রেডশিটে সেল ব্যাকগ্রাউন্ড রঙ সম্পর্কিত শর্তের ভিত্তিতে ডেটা যোগ করার কোনও উপায় নেই?

উত্তর:


14

অনুরূপ প্রশ্নের আমার উত্তরটি সাহায্য করে কিনা তা দয়া করে দেখুন ।

হালনাগাদ:

গুগল ডক্স স্ক্রিপ্ট গ্যালারী জন্য আমার জমা গ্রহণ করা হয়েছে এবং আপনি নিজের কার্যকারিতা পেতে এটি ইনস্টল করতে পারেন।

পদক্ষেপগুলি:

  • আপনার স্প্রেডশিটটি খুলুন
  • মেনুতে সরঞ্জামগুলি -> স্ক্রিপ্ট গ্যালারী যান ...
  • রঙ অনুসারে যোগফল অনুসন্ধান করুন
  • ইনস্টল ক্লিক করুন
  • আপনি যদি স্ক্রিপ্টটিতে বিশ্বাস করেন এবং তারপরে বন্ধ করেন তবে অনুমোদন বোতামটি ক্লিক করুন
  • স্প্রেডশীটে ফিরে যান

আপনার স্প্রেডশিট সূত্রে আপনি আরও তিনটি অতিরিক্ত ফাংশন ব্যবহার করতে পারেন:

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

অনুগ্রহ করে rangeSpecificationপ্যারামিটারগুলির "চারপাশে উদ্ধৃতি ( ) প্রয়োজন ।

উদাহরণ স্বরূপ:

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

A1: C4 রেঞ্জের সমস্ত কক্ষের মানগুলির সমষ্টি করে যার একটি সাদা ব্যাকগ্রাউন্ড রয়েছে।

দয়া করে মনে রাখবেন যে আপনি যদি কোনও নির্দিষ্ট কক্ষের রঙ না জানেন তবে আপনি বর্ণটি getBackgroundColorকী তা জানতে তা প্রদত্ত ফাংশনটি ব্যবহার করতে পারেন । এই ফাংশনটি প্রয়োজনীয়, কারণ কিছু রঙ আরজিবি কোড হিসাবে প্রকাশ করা হয় (উদাহরণস্বরূপ, #00ff00পরিবর্তে green)।


2
getBackgroundColor()অসমর্থিত হয়েছে। সম্ভবত আপনি কোড আপডেট করতে পারেন?
জ্যাকব জানু টিনস্ট্রা

2
@ জ্যাকবজানটুইনস্ট্রা আমি কোডটি আপডেট করেছি তবে গুগলের আমার জমাটি পর্যালোচনা করতে কিছুক্ষণ সময় লাগবে। ইতিমধ্যে, আপনি এই কোডটি
ক্রিশ্চিয়ান লুপাস্কু

2
@ মহিলা হ্যাঁ, আছে: github.com/clupascu/GoogleApps_SumByColor/blob/master/… । খুব সুন্দর সমাধান নয়, তবে এটি কাজ করে।
ক্রিশ্চিয়ান লুপাস্কু

2
স্ক্রিপ্ট গ্যালারী অ্যাড-অন দ্বারা প্রতিস্থাপন করা হয়েছে। অ্যাড-অনসের অধীনে আমি "রঙ দ্বারা যোগফল" খুঁজে পাচ্ছি না। আপনার স্ক্রিপ্টটি এটি উপলব্ধ হওয়ার জন্য অ্যাড-অনসে জমা দিতে হবে?
জেফ লকহার্ট

3
@ w0lf নতুন গুগল স্প্রেডশিটগুলি আর স্ক্রিপ্ট গ্যালারী সমর্থন করে না। এটি নতুন অ্যাড-অনগুলিতে একটি বার্তা নিয়ে পুনঃনির্দেশ করে। স্ক্রিপ্ট সম্পাদকটি এখনও উপলব্ধ এবং আমি সেখানে আপনার কোড ব্যবহার করেছি। আমি একটি কাঁটাচামচ তৈরি করেছি এবং যোগফলের ফাঁকা (অ-সংখ্যাযুক্ত) কোষগুলি এড়িয়ে যাওয়ার জন্য সমর্থন যুক্ত করেছি (অন্যথায় শূন্য কোষগুলি পরিসরে উপস্থিত থাকলে একটি ত্রুটি ঘটে): gist.github.com/jeffdgr8/1553faa6360ad04e9c17
জেফ লকহার্ট

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


আমি একটি ত্রুটি রেঞ্জ পাওয়া যায় নি ???? : ((
কেঘাম কে।

আমি TypeError: Cannot call method "pop" of null. (line 13, file "Code")Dismiss
পাচ্ছি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.