শেডযুক্ত ঘরগুলি গণনা করা হচ্ছে


10

কর্মীদের সাইন ইন করার জন্য প্রতিদিনের সময়সূচি হিসাবে ম্যাট্রিক্স (সময় / ক্রিয়াকলাপ) তৈরি করতে আমি গুগল স্প্রেডশিট ব্যবহার করছি।

কোনও কলামে ছায়া গোছানো (বা শেড নয়) নির্দিষ্ট কক্ষের কক্ষের সংখ্যা গণনা করার কোনও সূত্র আছে?

উদাহরণস্বরূপ: কোষগুলির মধ্যে 20 টি ধূসর এবং 31 টি ধূসর নয় (অন্য কোনও বর্ণের ছায়াযুক্ত) এবং ম্যানুয়ালি সেগুলি গণনা করার পরিবর্তে এটি এ પહોંચার কলামের নীচে গণনা করে।


@ W0lf এর সমাধানের সাথে সমস্যাটি ক্যাশে থেকে আসে। ফাংশনটি সরাসরি আপডেট পেতে প্রস্তুত নয়। আমি অতিরিক্ত পরামিতি হিসাবে "এখন ()" যোগ করে সেই ক্ষমতা অর্জনের চেষ্টা করেছি কিন্তু এটি কার্যকর হয়নি।
উষ্ণতা

আমি উত্তর দিতে পারছি না তাই আমি কেবল একটি মন্তব্য করব। যদি কোষগুলিতে কোনও পাঠ্য না থাকে তবে পটভূমির মতো একই রঙের সাথে কোনও পাঠ্যকে ভিতরে যুক্ত করা সহজ (তাই এটি লুকানো রয়েছে) এবং তারপরে খালি ঘরগুলি গণনা করার জন্য আপনি কেবল একটি সাধারণ = কাউন্টি () করুন। অবশ্যই যদি এই ক্ষেত্রে উপর নির্ভর করে খুব নির্দিষ্ট।
sfratini

উত্তর:


17

গুগল স্প্রেডশিট সরবরাহ করে এমন স্ক্রিপ্টিং কার্যকারিতা ব্যবহার করে আমি এটি করার একটি উপায় খুঁজে পেয়েছি।

এটি কীভাবে করবেন তা এখানে:

  • আপনার স্প্রেডশিটটি খুলুন
  • মেনুতে, সরঞ্জামগুলিতে যান -> স্ক্রিপ্ট সম্পাদক ...; এটি একটি নতুন উইন্ডো খুলবে যা আপনাকে কোড প্রবেশের অনুমতি দেয়
  • নীচের কোডটি অনুলিপি করুন
  • স্ক্রিপ্ট সম্পাদক উইন্ডোতে কোডটি পেস্ট করুন এবং এটি সংরক্ষণ করতে 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>এবং <cell specification>প্রকাশ করা হয় ক 1 স্বরলিপি, এবং উদ্ধৃতিচিহ্নের মধ্যে করা আবশ্যক

উদাহরণস্বরূপ, বি 2: F13 পরিসরের সমস্ত কক্ষের গণনা পেতে, যা পটভূমির রঙ সাদা সেট করা আছে , আপনার নিম্নলিখিত সূত্রটি প্রবেশ করানো উচিত:

=countCellsWithBackgroundColor("white", "B2:F13")

এবং একই কক্ষের যোগফল গণনা করতে সূত্রটি ব্যবহার করুন:

=sumWhereBackgroundColorIs("white", "B2:F13")

কিছু কক্ষের ব্যাকগ্রাউন্ড কোনও রঙ যেমন 'সাদা', 'ধূসর' রঙে সেট নাও থাকতে পারে তবে একটি আরজিবি রঙ পছন্দ করে #6fa8dc। রঙটি কী তা আপনি অনুমান করতে পারবেন না, তাই আপনি যদি কোনও ঘরের জন্য রঙটি জানতে চান (উদাহরণস্বরূপ, B9) আপনার এই সূত্রটি একটি ঘরে প্রবেশ করা উচিত:

=getBackgroundColor("B9")

এবং তারপরে উপরের দুটি ফাংশনের প্যারামিটার হিসাবে এই মানটি ব্যবহার করুন।

এটি প্রদর্শিত হয় যে কোনও ঘরের পটভূমির রঙ যদি "থিম রঙ" হয় তবে getBackground()ভুলভাবে সর্বদা ফিরে আসে #ffffff। স্ট্যান্ডার্ড সেট থেকে রঙ ব্যবহার করা ছাড়া আমি এর কাছাকাছি উপায় খুঁজে পাইনি।

আবার উপরের সমস্ত উদাহরণে উদ্ধৃতিগুলি নোট করুন; তাদের ছাড়া, সূত্রগুলি কাজ করবে না।


আমি আপনার ইঙ্গিতগুলি অনুসরণ করার চেষ্টা করছি, তবে ক্ষেত্রটিতে আমি #NUM প্রাপ্ত সূত্রটি ব্যবহার করছি, আপনি কি জানেন যে এটি কেন? আমি কিছু গবেষণা করার চেষ্টা করেছি, তবে আমি এর সঠিক উত্তর খুঁজে পাইনি। ধন্যবাদ মিলিয়ন, ডামী

@ দামি আপনি কি এখানে আপনার সূত্র পোস্ট করতে পারবেন? এছাড়াও, বানানটি পরীক্ষা করুন - আমি মনে করি সূত্রের নামগুলি কেস সংবেদনশীল
ক্রিশ্চিয়ান লুপাস্কু

নির্দেশাবলী অনুসরণ করা সত্ত্বেও এখানে কেবল একটি শূন্য পাওয়া ...

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

আমি যখন পটভূমির রঙটি অন্য মানতে পরিবর্তন করি তখন যোগফল আপডেট হয় না। আমি যখন কিছু পরিবর্তন করি তখন যোগটি স্বয়ংক্রিয়ভাবে আপডেট করার কোনও উপায় আছে?
মিশাল কোভ

0

গুগল ডক্সে নির্দিষ্ট রঙের সাথে সরাসরি ঘরগুলি গণনা করার কোনও উপায় আমি খুঁজে পাইনি।

তাদের ছায়াময় করে তোলে কি। এটি কি স্বয়ংক্রিয়? তাদের যদি কোনও মান থাকে তবে তারা স্বয়ংক্রিয়ভাবে শেড হয়? যদি এটি হয় তবে আপনি কোনও মান সহ কোনও ঘর গণনা করতে কাউন্টা () ফাংশনটি ব্যবহার করতে পারেন। যদি আরও জটিল বিধিগুলির সাথে জড়িত থাকে তবে আপনার কাউন্টার () ফাংশনটি ব্যবহার করতে হবে।

দ্রষ্টব্য: আপনাকে কলামের শীর্ষে বা নীচে যে কোনও অতিরিক্ত সারি অ্যাকাউন্টে নিতে হবে

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.