লাইব্রেরি কুইকস্টার্ট

স্প্রেডশিট ডেটা থেকে ডুপ্লিকেট সারিগুলি সরাতে আপনি একটি অ্যাপস স্ক্রিপ্ট লাইব্রেরি তৈরি করতে পারেন।

উদ্দেশ্য

  • স্ক্রিপ্ট সেট আপ করুন।
  • স্ক্রিপ্টটি চালান।

পূর্বশর্ত

এই নমুনাটি ব্যবহার করার জন্য, আপনার নিম্নলিখিত পূর্বশর্তগুলি প্রয়োজন:

  • একটি Google অ্যাকাউন্ট (Google Workspace অ্যাকাউন্টের জন্য প্রশাসকের অনুমোদনের প্রয়োজন হতে পারে)।
  • ইন্টারনেট অ্যাক্সেস সহ একটি ওয়েব ব্রাউজার।

স্ক্রিপ্ট সেট আপ করুন

লাইব্রেরি তৈরি করতে, নিম্নলিখিত পদক্ষেপগুলি গ্রহণ করুন:

  1. আপনার গুগল অ্যাকাউন্টে সাইন ইন করুন।
  2. স্ক্রিপ্ট এডিটর খুলতে, script.google.com এ যান।
  3. উপরের বাম দিকে, নতুন প্রকল্পে ক্লিক করুন।
  4. স্ক্রিপ্ট এডিটরে যেকোনো কোড মুছে ফেলুন এবং নীচের কোডটি পেস্ট করুন।

    শীট/ডুপ্লিকেট অপসারণ/ডুপ্লিকেট অপসারণ.gs
    /**
     * Removes duplicate rows from the current sheet.
     */
    function removeDuplicates() {
      const sheet = SpreadsheetApp.getActiveSheet();
      const data = sheet.getDataRange().getValues();
      const uniqueData = {};
      for (let row of data) {
        const key = row.join();
        uniqueData[key] = uniqueData[key] || row;
      }
      sheet.clearContents();
      const newData = Object.values(uniqueData);
      sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);
    }
  5. সংরক্ষণ করুন ক্লিক করুন সংরক্ষণ আইকন .

  6. উপরের বাম দিকে, শিরোনামহীন প্রকল্পে ক্লিক করুন।

  7. আপনার স্ক্রিপ্টের নাম দিন। ডুপ্লিকেট সারিগুলি সরান এবং পুনঃনামকরণ ক্লিক করুন।

  8. স্থাপন > নতুন স্থাপন ক্লিক করুন।

  9. Select type এর পাশে Enable deployment types এ ক্লিক করুন। স্থাপনার ধরণ সক্ষম করার আইকন > লাইব্রেরি

  10. লাইব্রেরির একটি বিবরণ লিখুন, যেমন ডুপ্লিকেট সারি সরান । লাইব্রেরিতে অ্যাক্সেস আছে এমন যে কেউ এই বিবরণটি দেখতে পারবেন।

  11. স্থাপন করুন ক্লিক করুন।

  12. বাম দিকে, প্রজেক্ট সেটিংসে ক্লিক করুন প্রকল্প সেটিংসের আইকন .

  13. IDs এর অধীনে, পরবর্তী ধাপে ব্যবহারের জন্য স্ক্রিপ্ট আইডিটি কপি করুন।

স্ক্রিপ্টটি চালান

একটি লাইব্রেরি ব্যবহার করার জন্য, আপনার অবশ্যই অ্যাপস স্ক্রিপ্ট প্রকল্পের জন্য কমপক্ষে দেখার অনুমতি থাকতে হবে। যেহেতু আপনি লাইব্রেরিটি তৈরি করেছেন, তাই এটি ব্যবহারের জন্য আপনার প্রয়োজনীয় অনুমতি রয়েছে। আপনি যদি অন্যদের লাইব্রেরি ব্যবহার করতে দিতে চান, তাহলে তাদের অ্যাপস স্ক্রিপ্ট প্রকল্পের জন্য দেখার অনুমতি দিন।

লাইব্রেরি ব্যবহার করতে, নিম্নলিখিত পদক্ষেপগুলি গ্রহণ করুন:

  1. একটি Google Sheets স্প্রেডশিট খুলুন যাতে ডুপ্লিকেট সারি সহ ডেটা রয়েছে। একটি নমুনা স্প্রেডশিট ব্যবহার করতে, নমুনা ডুপ্লিকেট সারি স্প্রেডশিটের একটি অনুলিপি তৈরি করুন
  2. এক্সটেনশন > অ্যাপস স্ক্রিপ্ট ক্লিক করুন।
  3. Libraries এর পাশে, Add a library ক্লিক করুন।
  4. স্ক্রিপ্ট আইডি বিভাগে, পূর্ববর্তী বিভাগে কপি করা লাইব্রেরি অ্যাপস স্ক্রিপ্ট প্রজেক্ট থেকে স্ক্রিপ্ট আইডিটি পেস্ট করুন।
  5. উপরে দেখুন ক্লিক করুন।
  6. সংস্করণ বিভাগে, 1 নির্বাচন করুন।
  7. যোগ করুন ক্লিক করুন।
  8. স্ক্রিপ্ট এডিটরে যেকোনো কোড মুছে ফেলুন এবং নীচের কোডটি পেস্ট করুন।

    function runLibrary() {
     Removeduplicaterows.removeDuplicates();
    }
    
  9. ফাংশন ড্রপডাউনে, runLibrary নির্বাচন করুন।

  10. রান ক্লিক করুন।

  11. ডুপ্লিকেট সারি ছাড়াই আপডেট করা ডেটা দেখতে স্প্রেডশিটে ফিরে যান।

কোডটি পর্যালোচনা করুন

এই সমাধানের জন্য অ্যাপস স্ক্রিপ্ট কোড পর্যালোচনা করতে, নীচের " সোর্স কোড দেখুন " এ ক্লিক করুন:

সোর্স কোড দেখুন

প্রথমত, স্ক্রিপ্টটি সমস্ত ডেটা পুনরুদ্ধার করার জন্য স্প্রেডশিটে একটি মাত্র কল করে। আপনি সারি সারি শিট পড়তে পারেন, তবে জাভাস্ক্রিপ্ট অপারেশনগুলি স্প্রেডশিটের মতো অন্যান্য পরিষেবার সাথে কথা বলার চেয়ে অনেক দ্রুত। আপনি যত কম কল করবেন, তত দ্রুত হবে। এটি গুরুত্বপূর্ণ কারণ প্রতিটি স্ক্রিপ্ট এক্সিকিউশনের সর্বোচ্চ রান টাইম 6 মিনিট।

শীট/ডুপ্লিকেট অপসারণ/ডুপ্লিকেট অপসারণ.gs
const sheet = SpreadsheetApp.getActiveSheet();
const data = sheet.getDataRange().getValues();

ভেরিয়েবল data হল একটি জাভাস্ক্রিপ্ট 2-ডাইমেনশনাল অ্যারে যাতে শীটের সমস্ত মান থাকে। newData হল একটি খালি অ্যারে যেখানে স্ক্রিপ্ট সমস্ত নন-ডুপ্লিকেট সারি রাখে।

শীট/ডুপ্লিকেট অপসারণ/ডুপ্লিকেট অপসারণ.gs
const newData = Object.values(uniqueData);

প্রথম for লুপটি data 2-ডাইমেনশনাল অ্যারের প্রতিটি সারির উপর পুনরাবৃত্তি করে। প্রতিটি সারির জন্য, দ্বিতীয় লুপটি পরীক্ষা করে যে newData অ্যারেতে মিলে যাওয়া ডেটা সহ অন্য কোনও সারি ইতিমধ্যেই বিদ্যমান কিনা। যদি এটি ডুপ্লিকেট না হয়, তাহলে সারিটি newData অ্যারেতে পুশ করা হয়।

শীট/ডুপ্লিকেট অপসারণ/ডুপ্লিকেট অপসারণ.gs
uniqueData[key] = uniqueData[key] || row;

অবশেষে, স্ক্রিপ্টটি শীটের বিদ্যমান বিষয়বস্তু মুছে ফেলে এবং newData অ্যারের বিষয়বস্তু সন্নিবেশ করে।

শীট/ডুপ্লিকেট অপসারণ/ডুপ্লিকেট অপসারণ.gs
sheet.clearContents();
const newData = Object.values(uniqueData);
sheet.getRange(1, 1, newData.length, newData[0].length).setValues(newData);

পরিবর্তন

আপনার প্রয়োজন অনুসারে আপনি যত খুশি লাইব্রেরি সম্পাদনা করতে পারেন। নিচে একটি ঐচ্ছিক পরিবর্তন দেওয়া হল।

কিছু কলামে মিলে যাওয়া ডেটা সহ সারিগুলি সরান

সম্পূর্ণরূপে মিলে যাওয়া সারিগুলি অপসারণ করার পরিবর্তে, আপনি কেবল এক বা দুটি কলামে মিলে যাওয়া ডেটা সহ সারিগুলি অপসারণ করতে চাইতে পারেন। এটি করার জন্য, আপনি শর্তসাপেক্ষ বিবৃতি পরিবর্তন করতে পারেন।

নমুনা কোডে, নিম্নলিখিত লাইনটি আপডেট করুন:

    if(row.join() == newData[j].join()){
      duplicate = true;
    }

লাইনটি নিম্নলিখিত কোড দিয়ে প্রতিস্থাপন করুন:

    if(row[0] == newData[j][0] && row[1] == newData[j][1]){
      duplicate = true;
    }

উপরের শর্তসাপেক্ষ বিবৃতিটি যখনই দুটি সারিতে শীটের প্রথম এবং দ্বিতীয় কলামে একই ডেটা থাকে তখনই ডুপ্লিকেট খুঁজে পায়।

অবদানকারীরা

এই নমুনাটি তৈরি করেছেন গুগল ডেভেলপার বিশেষজ্ঞ রোমেন ভিয়ালার্ড। টুইটারে রোমেনকে অনুসরণ করুন @romain_vialard

এই নমুনাটি গুগল ডেভেলপার বিশেষজ্ঞদের সহায়তায় গুগল দ্বারা রক্ষণাবেক্ষণ করা হয়।

পরবর্তী পদক্ষেপ