গুগল শিটগুলিতে কীভাবে পুরো শীটটি ব্যাপ্তি হিসাবে নির্দিষ্ট করবেন?


27

আমি এখনও অবধি সবচেয়ে ভাল কাজের সন্ধান পেয়েছি:

worksheet_name!$A$1:$YY

তবে আদর্শভাবে আমি কেবল লিখতে সক্ষম হতে চাই, যেমন:

worksheet_name!

সুতরাং, কেউ কি জানেন: একটি সম্পূর্ণ শিটটি ব্যাপ্তি হিসাবে নির্দিষ্ট করার জন্য একটি বাক্য গঠন আছে?

উত্তর:


10

আপনার জন্য কাজটি করার জন্য আমি একটি ছোট গুগল অ্যাপস স্ক্রিপ্ট (জিএএস) স্নিপেট তৈরি করেছি।

কোড

function sheetRange(targetName,int) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var asName = ss.getActiveSheet().getSheetName();
  var tgSheet = ss.getSheetByName(targetName);
  var output;

  if(targetName == asName) {
    output = "Error: target sheet is active sheet !!";
  } else {
    switch(int) {
      case 1: 
        output = tgSheet.getDataRange().getValues();
        break;
      case 2:
        output = tgSheet.getSheetValues(1, 1, tgSheet.getMaxRows(),  
          tgSheet.getMaxColumns());
        break;
      default:
        output = "Choose int to be 1 or 2 !!";
    }
  }
  return output;
}

স্প্রেডশিট মেনুতে, সরঞ্জামগুলি> স্ক্রিপ্ট সম্পাদক নির্বাচন করুন এবং কোড যুক্ত করুন। বাগ বাটনটি টিপতে ভুলবেন না:
এখানে চিত্র বর্ণনা লিখুন

ব্যবহার

=sheetRange("sheetName",int)

intমন্তব্যের আওতায় বর্ণিত বিকল্পটি ব্যবহার করুন ।

উদাহরণ

আমি আপনাকে একটি ফাইল ফাইল তৈরি করেছি: রেঞ্জ হিসাবে শীট

মন্তব্য

এক্ষেত্রে জিএএসের মাধ্যমে স্প্রেডশিটে কোনও ব্যাপ্তি নির্ধারণের জন্য দুটি উপায় রয়েছে:

  1. int=1; getDataRangeপদ্ধতি মাধ্যমে । এটি একটি পরিসীমা পুনরুদ্ধার করবে, যেখানে সর্বশেষ কলামটি এতে ডেটা রয়েছে। সারি সংখ্যার জন্য একই অ্যাকাউন্ট। এটি সাধারণত সবচেয়ে সরল রুট। উদাহরণস্বরূপ ফাইলের দ্বিতীয় পত্রকটি দেখুন।
  2. int=2; getSheetValuesপদ্ধতি মাধ্যমে । এটি একটি "WYSIWYG" ব্যাপ্তি পুনরুদ্ধার করবে। উদাহরণস্বরূপ ফাইলের তৃতীয় পত্রকটি দেখুন।
  3. এই জাতীয় কাস্টম ফাংশনের রিফ্রেশ হারগুলি তাত্ক্ষণিকভাবে নয়, তাই দয়া করে ধৈর্য ধরুন। ডেটা রিফ্রেশ হতে কয়েক ঘন্টা সময় নিতে পারে।

তথ্যসূত্র


রিফ্রেশ হওয়া ডেটা দেখানোর জন্য এই ফাংশনটি কেন কয়েক ঘন্টা সময় নেবে? আমি ভেবেছিলাম এরকম একটি ফাংশন ব্যবহারের পুরো পয়েন্টটি সর্বদা সঠিক পরিসীমা রাখা?
ক্লিয়ারক্লাউড 8

1
GetSheetValues ​​() ব্যবহার করে সমাধান getDataRange () getValues ​​() সহ ব্যবহারের চেয়ে 20% দ্রুত। 38k কোষযুক্ত শীট দিয়ে পরীক্ষিত।
মার্ক উইটজাক

11

আপনি A: Z বা A: AB বা A: XX ব্যবহার করতে পারেন (XX আপনার পৃষ্ঠার শেষ কলাম হিসাবে):

একটি একক ঘরের মানের ভিত্তিতে সারিগুলিতে শর্তসাপেক্ষ বিন্যাস প্রয়োগ করতে এটির স্ক্রিনশট


1
ইস্ট মরে: "ডেন্ক ম্যাল নেউ"? কিভাবে এই প্রশ্নের উত্তর দেয়?
জ্যাকব জান টুইনস্ট্রা

1
এখানে প্রত্যেকে জানেন যে কীভাবে একটি ব্যাপ্তি নির্দিষ্ট করতে হয়। এই প্রশ্ন ছিল না।

3

গুগল শিটগুলিতে পুরো শিটের ব্যাপ্তির জন্য সীমার বিন্যাস নেই।

নিম্নলিখিত সূত্রটি শীট 1 নামের পুরো শীটের রেঞ্জের ঠিকানা ফেরত দেবে

="Sheet1!"&ADDRESS(1,1,,TRUE)&":"&ADDRESS(ROWS(Sheet1!A:A),COLUMNS(Sheet1!1:1),,TRUE)

এটিকে রেফারেন্স হিসাবে ব্যবহার করতে, এটি INDIRECT এর ভিতরে রাখুন। নিম্নলিখিত সূত্রটি শীট 1-এ সমস্ত মানের একটি অ্যারে প্রদান করবে।

= ARRAYFORMULA (
  পরোক্ষ (
    "পত্রক 1!"
    & ADDRESS এর (1,1, সত্য)
    & ":"
    & ADDRESS এর (ROWS টি (পত্রক 1 উত্তর:! একটি), COLUMNS বাই (পত্রক 1 1: 1) ,, সত্য)
    ,
    'সত্য'
  )
)

1

আমি নির্দিষ্ট কোনওটি জানি না, তবে আমি মনে করি আপনি যদি সারি / কলামগুলির সংখ্যা না জানেন তবে আপনি কয়েকটি সূত্র ব্যবহার করতে পারেন:

indirect("Sheet!1:"&countif(Sheet!A:A,"<>@")+countif(Sheet!A:A,"=@"))

এখানে, Sheetআপনার শীটের নাম এবং @এটি একটি স্বেচ্ছাসেবী স্ট্রিং। আপনি যে শীটটি নির্বাচন করছেন সেটি @যদি একটি কক্ষে থাকে তবে এটি কাজ করবে না। যদি শীটে এমন কোনও ঘর থাকে তবে আপনি এটিকে অন্য একটি চরিত্র দ্বারা প্রতিস্থাপন করতে পারেন।

COUNITFএখানে কলাম A মধ্যে সারির সংখ্যা, মোট ছাত্র: একটি ধারণকারী না @, যা সব যদি কোন এটি ধারণকারী কোষ হয় হওয়া উচিত, এবং INDIRECTবদলে দেয় Sheet!1:###(যেখানে ###প্রকৃত নির্বাচিত পরিসীমা মধ্যে সারি সংখ্যা)।


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

@ সাম্পাব্লুকুপার এটির ভার্বোজ সম্পর্কে আমি মনে করি না যে আমি এর জন্য একটি সমাধান খুঁজে পাব, দ্বিতীয় অংশের মতো, আমি এখন আমার উত্তরে যুক্ত করেছি এমন কিছু উপেক্ষা করেছি। এছাড়াও, যতদূর আমি দেখতে পাচ্ছি, এটি আপনার বর্তমান কাজের তুলনায় যে সুবিধাটি হ'ল তা হ'ল শীটটিতে কতগুলি সারি বা কলাম রয়েছে তা জানার দরকার নেই। তবে হ্যাঁ, এটি যতটা পারা যায় :( সম্ভবত কোনও ভিবিএ স্ক্রিপ্ট থেকে কোনও ফাংশন করতে পারে
জেরি

ধন্যবাদ, তবে আমার বর্তমান কর্মশালার জন্য শীটটির কতগুলি সারি রয়েছে এবং এটির <676 কলামগুলি যতক্ষণ না এটিতে কতগুলি কলাম রয়েছে তা জানা দরকার।
সাম্পাব্লুকপার

1

যারা অ্যাপসক্রিপ্টের মধ্যে কাজ করছেন তাদের জন্য ইতিমধ্যে সর্বোত্তম জবাব দেওয়া হয়েছে, তবে গুগল শীটগুলির মধ্যে যদি কেউ সঠিকভাবে কাজ করছেন, তবে আপনার প্রয়োজন অনুসারে এটি এমন একটি পদ্ধতির রয়েছে:

"worksheet_name!1:" & ROWS(worksheet_name!A:A)

ব্যাখ্যা : * আপনি মূলত ওয়ার্কশিট_নামে সারি সংখ্যার সাথে মিলিত একটি স্ট্রিংয়ের মাধ্যমে পরিসীমাটি নির্দিষ্ট করছেন !

এই পদ্ধতির কিছু সুবিধা : * এটি 'গতিশীল' ... আপনি যদি নীচে সারি যুক্ত করেন তবে পরিসরটি সেই অনুযায়ী সামঞ্জস্য করবে * লাইটওয়েট - আপনি এটিকে একটি আমদানি / কোয়েরি ফাংশনে চড় মারতে পারেন

অসুবিধাগুলি : * সব ক্ষেত্রে এটি চেষ্টা করা হয়নি তাই কেবল নির্দিষ্ট ব্যবহারের ক্ষেত্রে কাজ করতে পারে * ব্যক্তিগতভাবে জিনিসগুলিকে গতিময় / পরিষ্কার করার জন্য আমার ব্যক্তিগতভাবে অগ্রাধিকার রয়েছে যাতে প্রকারের কাস্টম ফাংশনটি অ্যাপস্ক্রিপ্ট এবং এই লাইটওয়েট পদ্ধতির মধ্যে একটি মাঝারি জায়গা হতে পারে


1

এটি আমার পক্ষে কাজ করে:

var ss = SpreadsheetApp.getActive();
var sh = ss.getSheets()[0];
var rg = sh.getName() +"!"+ sh.getDataRange().getA1Notation();

একটি আবদ্ধ স্ক্রিপ্টে ব্যবহৃত, শীটটির নামটি একটি ""! এবং তারপরে নির্বাচিত শীটে ডেটা রেঞ্জের A1 স্বরলিপি পান


0

আমি বিবরণের চিহ্ন ছাড়াই পরিসীমাটিকে শীট হিসাবে নামকরণ করে পুরো শীটটি নির্বাচন করতে সক্ষম হয়েছি।

আমার কাছে ডেটা নামের একটি ট্যাব ছিল। পরিবর্তে তথ্য ব্যবহার! বা ডেটা! এ 1: জেডজেড।


যখন আমরা একটি নামাঙ্কিত ব্যাপ্তিকে একটি নাম নির্ধারণ করি তখন একটি পরিসীমা রেফারেন্স নির্দিষ্ট করা উচিত। আপনি কোন রেফারেন্স রেঞ্জ ব্যবহার করেন?
রুবান

-1

পুরো শিটটি ব্যাপ্তি হিসাবে নির্দিষ্ট করতে, দয়া করে ব্যবহার করুন:

worksheet_name!A1:ZZ

আপনি এটি এখানে চেষ্টা করতে পারেন: https://developers.google.com/sheets/api/references/rest/v4/spreadsheets.values/clear

বা আপনি যদি জাভা ব্যবহার করেন (শীট 1-এ সমস্ত কিছু সাফ করার জন্য):

Sheets service = getSheetsService(credential);
service.spreadsheets().values().clear(REPORT_WARNINGS_LATAM_FILEID, "Sheet1!A1:ZZ", new ClearValuesRequest()).execute();

বা যদি আপনি এটি অন্য কোনও শীটের একটি সূত্রে (উদাহরণস্বরূপ: এসইএম) ব্যবহার করতে চান তবে (উদাহরণস্বরূপ: শিট 2) আপনি নিম্নলিখিত রেফারেন্সটি ব্যবহার করতে পারেন:

=SUM(Sheet1!A1:ZZ)

^ এটি শীট 1 এ সমস্ত বিদ্যমান কক্ষগুলি যোগ করবে এবং শিট 2 এ একটি ঘরে একটি মান স্থাপন করবে, আপনি উদাহরণটি এখানে পাবেন: https://docs.google.com/spreadsheets/d/1rP3YCl3ErlYjlYGT_Q-xFvkVr7yKw6WQfHklbohL1NM/edit?sp=sing । এই উদাহরণে শীট 1 এ আমাদের 3 টি কলাম এবং 5 টি সারি রয়েছে, সুতরাং এই সূত্রটি = এসইউএম (শিট 1! এ 1: জেডজেড) সমস্তটি নির্বাচন করে। আপনি শীট 1 এ সারি বা কলাম যুক্ত করতে পারেন এবং এই সমাধানটি এখনও সমস্ত ঘর নির্বাচন করবে।

পিএস: আপনি যদি আমার উত্তরটি ভোট দেন - দয়া করে কেন তা ব্যাখ্যা করুন।


-2

সারিগুলির সংখ্যা জানেন তা ধরে নিয়ে আপনি পুরো শীটটির নাম "ওয়ার্কশিট_নাম" রাখতে পারেন:

ধাপ:

  1. সম্পূর্ণ কার্যপত্রকটি নির্বাচন করুন
  2. 'ডেটা' -> 'নামযুক্ত এবং সুরক্ষিত রেঞ্জ' ক্লিক করুন
  3. নির্বাচনের নাম লিখতে "কার্যপত্রক_নাম" টাইপ করুন এবং সম্পন্ন হয়েছে ক্লিক করুন।

এখন যতবার আপনি কোনও ফাংশনে "ওয়ার্কশিট_নাম" ব্যবহার করবেন, এটি সম্পূর্ণ কার্যপত্রকটি উল্লেখ করবে।


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