গুগল শীট অটো-বাছাইয়ে আমি কীভাবে কিছু ডেটা তৈরি করতে পারি?


57

ধরা যাক আমি চাইছি গুগল পত্রকগুলি স্বয়ংক্রিয়ভাবে কিছু ডেটা বাছাই করুন, উদাহরণস্বরূপ কলাম C

আমি কেমন করে ঐটি করি?

আমি জানি যে আমি নিজে ডান ক্লিক এবং নির্বাচন করে ডাটা সাজাতে পারেন সাজান ডেটা , কিন্তু এই নয় আমি যা খুঁজছেন করছি।

উত্তর:


51

আপনি ব্যবহার করতে পারেন ফাংশন যে জন্য, কিন্তু আপনি এক জায়গায়, এবং অন্য জায়গায় যে ডেটার একটি স্বয়ংক্রিয়ভাবে বাছাই কপি আপনার ডেটা আছে।sort()

উদাহরণস্বরূপ, আমার ডেটা সহ শীট 1 আছে বলে দিন:

   | A    | B    | C
=====================
 1 | This | this | 2
 2 | Is   | is   | 1
 3 | Test | test | 3

তারপরে শীট 2, ঘর এ 1 এ আমি এই ফাংশনটি রাখব:

= সাজান (পত্রক 1! এ: সি, 3, সত্য)

এটি আমার ডেটা প্রদর্শন করবে, তবে কলাম সি দ্বারা বাছাই করা (তৃতীয় কলাম), আরোহণে।

   | A    | B    | C
=====================
 1 | Is   | is   | 1
 2 | This | this | 2
 3 | Test | test | 3

প্যারামিটারগুলি অবশ্যই সেমিকোলন দ্বারা পৃথক করা উচিত ;যেমন= sort(Sheet1!A:C; 3; TRUE)

2
@ পেটার এটি কমা নিয়ে আমার পক্ষে ঠিক কাজ করে।
উইলিয়াম জ্যাকসন

6
@ ব্যবহারকারী 17634: এটি আপনার স্থানীয় সেটিংসের উপর নির্ভর করে।
বিদার এস রামদল

42

গুগল অ্যাপস স্ক্রিপ্টগুলি ব্যবহারের মাধ্যমে ডেটা স্বয়ংক্রিয়ভাবে ইন-প্লেস বাছাই করা সম্ভব।

এটি অর্জন করা আরও কঠিন এবং আরও ত্রুটি-প্রবণ হতে পারে (আমি এখনও উইলিয়াম জ্যাকসনের সমাধানের জন্য যেতে পারি, +1 বিটিডাব্লু), তবে আমি ভেবেছিলাম এটি যথেষ্ট আকর্ষণীয় ছিল।

আমার কাছে এমন একটি শীট রয়েছে যা দেখতে দেখতে:

স্বয়ংক্রিয় বাছাইকরণ শীট

আমি এই পদক্ষেপগুলি ব্যবহার করে একটি নতুন স্ক্রিপ্ট যুক্ত করেছি:

  • মেনুতে, সরঞ্জামগুলিতে যান -> স্ক্রিপ্ট সম্পাদক ...
  • একটি নতুন প্রকল্প তৈরি নির্বাচন করুন
  • প্রদর্শিত ফাঁকা কোড উইন্ডোতে, নিম্নলিখিত কোডটি পেস্ট করুন, যখনই কোনও ঘর সম্পাদনা করা হবে তখন স্বয়ংক্রিয়ভাবে চালিত হবে:

    function onEdit(event){
      var sheet = event.source.getActiveSheet();
      var editedCell = sheet.getActiveCell();
    
      var columnToSortBy = 4;
      var tableRange = "B3:E9";
    
      if(editedCell.getColumn() == columnToSortBy){   
        var range = sheet.getRange(tableRange);
        range.sort( { column : columnToSortBy } );
      }
    }
    
  • শীটটিতে ফিরে যান এবং প্রতিবার সারণিটি স্বয়ংক্রিয়ভাবে সাজানো দেখতে মানগুলি নিয়ে ঘুরতে শুরু করুন

বিঃদ্রঃ:

উপরের লিপিটিতে,

  • মানটি 4কলাম ডি-এর সূচকে উপস্থাপন করে ( Valueকলাম - যেটি সাজানো হবে)
  • মানটি "B3:E9"সারণির সীমাটি উপস্থাপন করে (শিরোনাম সারি বাদে)

আপনার টেবিলটি সম্ভবত আমার থেকে পৃথক হবে, সুতরাং এই মানগুলি সেই অনুযায়ী সামঞ্জস্য করা উচিত।


আমি আপনার [সম্পাদিত] ফাংশনটি এডিট (ইভেন্ট) - বার শিট = ইভেন্ট.সোর্স.সেট.অ্যাক্টিভেসিট () চেষ্টা করেছি; var editatedCell = glass.getActiveCell (); var কলামToSortBy = 4; var tableRange = "এ 2: এফ 99"; যদি (এডিটেডসেল.জেটকলোম () == কলামটোসোর্টবি) {বিভিন্ন পরিসীমা = পত্রক.সেটরেঞ্জ (টেবিলরেঞ্জ); রেঞ্জ.সোর্ট ({কলাম: কলামটিসআর্টবাই}); }} তবে ত্রুটি পেতেই থাকুন: টাইপ এয়ারার: ​​অপরিজ্ঞাত থেকে সম্পত্তি "উত্স" পড়তে পারে না। (লাইন 2) যা নিম্নলিখিত কোড: var শিট = ইভেন্ট.সোর্স.সেটএকটিভ্যাসিট (); কোন ধারনা? এনএম, স্ক্রিপ্ট পৃষ্ঠা থেকে চালানোর সময় কেবল ত্রুটি পান, তবে এটি প্রকৃত স্প্রেডশীতে সঠিকভাবে কাজ করে
ড্রিজেট ০৯

তবে একটি ত্রুটি পেতে থাকুন: টাইপরর: অপরিজ্ঞাত থেকে সম্পত্তি "উত্স" পড়তে পারে না। (লাইন 2) যা নিম্নলিখিত কোড: var শিট = ইভেন্ট.সোর্স.সেটএকটিভ্যাসিট (); কোন ধারনা? এনএম, স্ক্রিপ্ট পৃষ্ঠা থেকে চালানোর সময় কেবল ত্রুটি পান তবে এটি প্রকৃত স্প্রেডশিটে সঠিকভাবে কাজ করে। এখন প্রশ্ন ... এর বাছাই করা এজেড, আমি কীভাবে এটিকে স্বয়ংক্রিয় বাছাই করা জেডএতে পরিবর্তন করব? ধন্যবাদ
drizzt09

@ drizzt09 আপনি যখন প্যারামিটারের nullজন্য নির্দিষ্ট পদ্ধতিটি কল করবেন তখন event, যা অন্যথায় যথাযথভাবে গুগল স্প্রেডশিট অবকাঠামো দ্বারা কার্যকর হয় যখন কোনও আসল ইভেন্ট ট্রিগার হয়।
ক্রিশ্চিয়ান লুপাস্কু 3:53

3
@ drizzt09 সাজানোর ক্রম পরিবর্তন করতে, পরিবর্তন range.sortভালো লাইন: range.sort( { column : columnToSortBy, ascending: false } ); । আরও বাছাইয়ের বিকল্পগুলির জন্য দেখুন ডেভেলপারস
জিও / অ্যাপস-script/class_range#sort

@ w0lf আপনাকে ধন্যবাদ যে নিখুঁতভাবে কাজ করেছে। এখন আমি এটিতে যুক্ত করতে চাই বা একটি পৃথক ফাংশন রাখতে চাই যা ঠিক একই ফাংশন সম্পাদন করে তবে খোলা বা রিফ্রেশ করতে পারে। সুতরাং আমি যখন এক্সেল শীটটি খুলি / রিফ্রেশ করি তখন এটি 4 টি কলামটি স্বয়ংক্রিয়ভাবে সাজানো হবে যখন আমি আপনার বর্তমান কোড সহ 4 কলামে কোডটি সম্পাদন করব। ধন্যবাদ

10

এখানে একটি জেনেরিক স্ক্রিপ্ট যা 1 ম কলামের উপর ভিত্তি করে অটোসোর্ট করবে এবং একটি শিরোনাম সারি ধরে umes

একটি স্ক্রিপ্ট তৈরি করতে:

  • মেনুতে, সরঞ্জামগুলিতে যান -> স্ক্রিপ্ট সম্পাদক ...

খালি কোড উইন্ডোতে, নিম্নলিখিত কোডটি পেস্ট করুন, যখনই কোনও ঘর সম্পাদনা করা হবে তখন স্বয়ংক্রিয়ভাবে চলবে:

 // LinkBack to this script:
 // http://webapps.stackexchange.com/questions/7211/how-can-i-make-some-data-on-a-google-spreadsheet-auto-sorting/43036#43036

 /**
 * Automatically sorts the 1st column (not the header row) Ascending.
 */
function onEdit(event){
  var sheet = event.source.getActiveSheet();
  var editedCell = sheet.getActiveCell();

  var columnToSortBy = 1;
  var tableRange = "A2:T99"; // What to sort.

  if(editedCell.getColumn() == columnToSortBy){   
    var range = sheet.getRange(tableRange);
    range.sort( { column : columnToSortBy, ascending: true } );
  }
}

3
আমি var sheet = SpreadsheetApp.getActiveSpreadsheet();এখানে যা আছে তার পরিবর্তে আমার পেয়েছিলাম ।
dldnh

এটি দুর্দান্ত কাজ করে তবে আমি কীভাবে এটি সম্পাদন করতে পারি যাতে এটি কেবলমাত্র ডক্টারে একটি একক শীটে সাজানো যায়?
moobot

কাজ করছে বলে মনে হচ্ছে না
ছায়া 1313

6

স্ক্রিপ্ট ব্যতীত অন্য একটি বিকল্প:

=QUERY(A1:C3,"SELECT * ORDER BY C")  

ব্যাপ্তিটি সীমাবদ্ধ (A1: C3) কারণ ক্রমটি যেখানে আরোহণ করছে ফাঁকা এন্ট্রিগুলি প্রথমে উপস্থিত হবে।


4
আপনি দয়া করে আমাকে বলতে পারেন যে আমি এটি কোথায় রাখা উচিত?
লুই ট্রান

1
আপনি SELECT * WHERE C <> '' ORDER BY Cখালি প্রবেশগুলিকে উপেক্ষা করতে ব্যবহার করতে পারেন , তারপরে আপনি সমস্ত বর্তমান এবং ভবিষ্যতের সারি অন্তর্ভুক্ত করতে যথেষ্ট পরিমাণের পরিসর ব্যবহার করতে পারেন।
গাস

0

স্ক্রিপ্ট সমাধানটি ব্যবহার করে তবে একাধিক কলামে বাছাই করুন

আমি একটি ড্রপডাউন মেনু কলাম এবং তারপরে তারিখ অনুসারে বাছাই করতে চেয়েছিলাম।

এটি করার জন্য, ক্রিশ্চিয়ান বা গিক্সপটজ এর কোড স্নিপেটের যেকোন একটির "রেঞ্জ.সোর্ট" লাইনের পরিবর্তন করুন:

// Sorts descending by edited column, then ascending by column 1 
// Note the use of an array
range.sort([{column: columnToSortBy, ascending: false}, {column: 1, ascending: true}]);

পার্থক্যটি আপনার পুরো স্টেটমেন্ট (অ্যারে) এর চারপাশে সোজা বন্ধনী যুক্ত করছে এবং কমা দ্বারা বিভিন্ন প্রকারকে পৃথক করছে।

সার্জ এর স্ট্যাক ওভারফ্লো উত্তরটি এখানে ক্লিক করে সাজান কোড পরিবর্তন করুন : শীটগুলিতে স্বয়ংক্রিয়ভাবে বাছাই করা


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