আমি কীভাবে গুগল পত্রকগুলিকে অন্য শীটের একটি রেফারেন্স স্বয়ংক্রিয়ভাবে আপডেট করতে পারি?


20

আমি একটি Google স্প্রেডশিটে ডেটা প্রবেশের জন্য একটি বাহ্যিক অ্যাপ্লিকেশন ব্যবহার করছি am এরপরে এই ওয়ার্কবুকটি পৃথক ওয়ার্কবুক ( IMPORTRANGE(spreadsheet_key, range_string)ফাংশন সহ) দ্বারা উল্লেখ করা হয় যা ডেটা ম্যানিপুলেট করে এবং ব্যাখ্যা করে। আমার সমস্যাটি হ'ল আমি যখনই ব্যক্তিগতভাবে রেফারেন্সড ওয়ার্কবুকটি সংশোধন করি তখনই রেফারেন্সিং ওয়ার্কবুক আপডেট হয় তবে যখনই বাহ্যিক অ্যাপ্লিকেশন এটিকে সংশোধন করে তা আপডেট হয় না।

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

ডেটা পুনরায় আমদানির জন্য গুগল শিটগুলিকে ট্রিগার করতে আমি রেফারেন্সিং ওয়ার্কবুকটিতে কিছু করতে পারি কি?

সম্পাদনা: পরিষ্কার করে বলতে গেলে, বর্তমানে আমার কাছে একটি বহিরাগত অ্যাপ্লিকেশন দ্বারা প্রবেশ করা ডেটা সহ একটি ওয়ার্কবুক রয়েছে (এটিকে "উত্স শীট" বলুন) এবং এতে একটি IMPORTRANGEফাংশন সহ অন্য একটি ওয়ার্কবুক (এটি "রেফারেন্সিং শীট" বলুন)। IMPORTRANGE"রেফারেন্সিং শীট" এ ফাংশন দ্বারা প্রদর্শিত ডেটাতে আমি ব্যক্তিগতভাবে "উত্স পত্রক" সম্পাদনা করার পরে বাহ্যিক অ্যাপ্লিকেশন দ্বারা প্রবেশ করা কোনও ডেটা অন্তর্ভুক্ত নয়। এছাড়াও, উভয় ওয়ার্কবুকই নতুন গুগল পত্রক ব্যবহার করছে।

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


এটি কীভাবে কাজ করে তার বিশদ সম্পর্কে আমি অবগত নই, তবে আমি নিম্নলিখিতগুলি ব্যবহার করছি: ifttt.com/google_drive
tlewis3348

@pnuts "সঠিক সংস্করণটিকে উত্স হিসাবে ব্যবহার করা হচ্ছে তা নিশ্চিত করে" আপনি কী বোঝাতে চেয়েছেন আপনি কি ব্যাখ্যা করতে পারবেন? আমার উভয় পত্রকের জন্য সেটিংস প্রতি মিনিটে আপডেট করতে সেট করা আছে এবং ট্যাবগুলি প্রতি মিনিটে রিফ্রেশ করার জন্য সেট করা আছে। কীভাবে, কোথায় এবং কোন শীটে আমি উত্সটি আপডেট করব?
tlewis3348

@pnuts ওয়েল, তথ্য separate workbookঠিক আছে মধ্যে প্রদর্শিত হচ্ছে। সমস্ত উপস্থিতি থেকে, দেখে মনে হচ্ছে এটি ঠিক টাইপ করা হয়েছিল
tlewis3348

হ্যাঁ, এটি নতুন গুগল পত্রক। একটি ওয়ার্কবুক যোগ করা ডেটা দেখায়, এবং অন্য কাজের বইটি তা দেয় না। আমি স্পষ্টতার জন্য এটি মূল প্রশ্নের সাথে যুক্ত করব।
tlewis3348

উত্তর:


14

আমি একই সমস্যা নিয়ে লড়াই করে যাচ্ছি। একটি কাস্টম ফাংশন লেখার পরিবর্তে, আমি একটি ভিন্ন কোয়েরি স্ট্রিং যোগ spreadsheet_urlমধ্যে IMPORTRANGEআশায় প্রতিটি সময় পৃষ্ঠা রিফ্রেশ করা হয়, গুগল একটি নতুন স্প্রেডশীট থেকে ডেটা আনতে প্রয়োজন মনে করেন যে। ইউআরএল প্রতিবার অনন্য করতে আমি কেবল নতুন টাইমস্ট্যাম্প যুক্ত করি। এটি একটি নির্মম হ্যাক, তবে এটি আমার জন্য প্রচুর শীট জুড়ে কাজ করে চলেছে।

আমার সূত্রটি আগে এরকম কিছু দেখেছিল:

=IMPORTRANGE("https://docs.google.com/spreadsheets/d/123123123123/edit#gid=1816927174","'Sheet1'!A1:B25")

এবং এখন এটির মতো দেখাচ্ছে:

=IMPORTRANGE("https://docs.google.com/spreadsheets/d/123123123123/edit#gid=1816927174"&"?"&now(),"'Sheet1'!A1:B25")

হালনাগাদ:

এই পদ্ধতিটি আর কাজ করে না কারণ গুগল now()ভিতরে প্রবেশের অনুমতি দেয় না importrange()। নীচে হিউ থেকে মন্তব্য দেখুন।


6
একই জিনিসটি করার চেষ্টা করার সময় আমি এই উত্তরটি পেরিয়ে এসেছি। দেখে মনে হচ্ছে গুগল এটি তৈরি করেছে যাতে এখন (), র্যান্ড () এবং র্যান্ডবেটউইন () কোনও ইম্পোর্টেঞ্জ () কলের অভ্যন্তরে ব্যবহার করা যায় না।
হিউ

আমি যদি প্রতি মিনিটে স্প্রেডশিট আপডেট করার জন্য সেট করি, তবে সূত্রটি কি রিফ্রেশ হবে এবং নতুন ডেটা (যদি উপলব্ধ থাকে) আনবে?
নিখিল সাহু

5

নিম্নলিখিত এই ওয়েব অ্যাপ্লিকেশন জিমি থেকে আসে ।

  1. উভয় স্প্রেডশীট =now()এলোমেলো কক্ষে সমীকরণ inোকান, বলুনZ1
  2. উভয় স্প্রেডশিটে একটি =importrange()ফাংশন sertোকান nowযা অন্য স্প্রেডশিটের ফাংশনকে উল্লেখ করে ।
  3. আপনার স্প্রেডশিট সেটিংসে যান এবং প্রতি মিনিটে পুনরায় গণনা করতে চয়ন করুন।

আমি =now()ফাংশনটি ব্যবহার করে এই থ্রেডে এখনকার ইউআরএল ট্রিক বা অ্যাপস স্ক্রিপ্টটি একটি সেট ব্যবধানে এলোমেলো পাঠ্য সন্নিবেশ করানোর চেষ্টা সহ অনেকগুলি পরামর্শ চেষ্টা করেছি , তবে উত্স শীটের ম্যানুয়াল সম্পাদনা বাদে কিছুই আমদানি করতে বাধ্য করবে না force


ডিসেম্বর 2018 এ আমার জন্য কাজ করেছেন
ম্যালকম্মিশন

4

আমি খুঁজে পেলাম সবচেয়ে সহজ উপায় হ'ল এর ifচারপাশে একটি সাধারণ বিবৃতি দেওয়া importrange

B1 = Sheet ID
B2 = Sheet Name and Range
B3 = Now()
=if (B3> now()-1, IMPORTRANGE(B1,B2),)

এটি প্রতিবার কাজ করে।


আমি আপনার সমাধানটি বাস্তবায়নের চেষ্টা করছি তবে কীভাবে বি 3 ব্যবহার করবেন তা আমার কাছে অস্পষ্ট। আপনি কি বলছেন বি 3 = এখন () তারপরে=if (Now() > now()-1, IMPORTRANGE(B1,B2),)
ইউজিন ভ্যান ডের মেরভে

3

ডেটস্ট্যাম্পের কাজটি আমার পক্ষে কাজ করে বলে মনে হচ্ছে না - একটি স্পষ্ট নোট আছে যে ডেটস্ট্যাম্প এবং র্যান্ড ফাংশন ব্যবহারের অনুমতি নেই।

আমার খুব হ্যাক ওয়ার্কআউন্ডে সেলটি মুছে ফেলা এবং তারপরে ctrl + z চাপুন hit এটি প্রতিবার একটি রিফ্রেশকে বাধ্য করে। এই অনোপেনটি স্ক্রিপ্ট করা বা ডেটা সতেজ রাখার জন্য নির্দিষ্ট সময়ের ব্যবধানে এটি ক্ষুদ্র।


2

আমি একটি ম্যানুয়াল সেল আপডেট অনুকরণ এবং একটি বাহ্যিক স্প্রেডশিটে পরিবর্তন লঞ্চ করতে একটি সাধারণ হ্যাক পেয়েছি।

  1. এটির মতো একটি কাস্টম ফাংশন তৈরি করা হয়েছে:

    // Hack function used just to simulate a manual update
    function hack(value) {
      var list = []
      list.push(value);
      return list;
    }
    
  2. তারপরে, আমার শীটে আমি এটিকে এভাবে ডাকি:

    =arrayformula(hack(tab!B1))
    

    tab!B1কোড দ্বারা আমি সংশোধন করে এমন কক্ষগুলির একটি কোথায় ।


এটি কীভাবে একটি ম্যানুয়াল সেল আপডেট অনুকরণ করে?
হামেস

2

বা ... আপনি প্রথমে মান সেরো (0) প্রদানের পরে সূত্রটি ফেরত দিয়ে একটি সাধারণ স্ক্রিপ্ট করতে পারেন এবং এই কৌশলটি করুন:

  var cell = sheet.getRange("B1:B1"); //SHEET TO INSERT VALUE
  cell.setFormula("=0");
   Utilities.sleep(2000); //JUST TO GIVE TIME TO UPDATE (OPTIONAL)
  var cell = sheet.getRange("B1:B1");
  cell.setFormula("=ImportRange(\"YOUR_SHEET_ID\",\"RANGE_TO_INSERT\")");  

আরও ভাল cell.setFormula ( "=" & cell.getValue ()) ;, তাই ব্যবহারকারী শূন্য 2 সেকেন্ডের জন্য দেখতে না চাই ....
টনি BenBrahim

1

আমি কাস্টম ফাংশন সহ অ্যাপস স্ক্রিপ্ট ব্যবহার করে আমার সমস্যা সমাধানের একটি উপায় ( এখানে বিশদভাবে ) সন্ধান করতে সক্ষম হয়েছি ।

তোমাদের স্থলাভিষিক্ত তাহলে =IMPORTRANGE(spreadsheet_url, range_string)সঙ্গে আপনার স্প্রেডশীটে =DynamicImportRange(spreadsheet_url, sheet_name, range)এবং সরঞ্জাম নিচের কোড পেস্ট করুন -> স্ক্রিপ্ট সম্পাদক -> ফাঁকা প্রকল্প, এটি কাজ করা উচিত (দেখুন এই অ্যাপ্লিকেশন স্ক্রিপ্ট লেখার উপর আরও তথ্যের জন্য)।

/**
Usage: =DynamicImportRange(spreadsheet_url, sheet_name, range)
Compare to: =IMPORTRANGE(spreadsheet_url, range_string)

Where the given arguments are placeholders that should be replaced
by arguments specific to your use-case.
 */
function DynamicImportRange(sheet_url, sheet_name, sheet_range) {
  var values = SpreadsheetApp.openByUrl(sheet_url).getSheetByName(sheet_name).getRange(sheet_range).getValues();
  return values
};

/**
*/
function RefreshSheet() {
  // Update the following two variables to suit your particular situation
  var sheet_name = "sample_sheet_sheet"
  var range = "A1"

  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheet_name);
  var formula1 = "Loading...";
  var formula2 = sheet.getRange(range).getFormula().toString().replace('"', '\"');
  // The following assumes that the data is being inserted into the sheet in the same
  // location as it is in in the source sheet.
  var form_range = formula2.split(",")[2].split("\"")[1];
  sheet.getRange(form_range).clear();
  sheet.getRange(range).setValue(formula1);
  Utilities.sleep(245);
  sheet.getRange(range).setValue(formula2);
};

আপনি যদি শীটটি নিয়মিতভাবে আপডেট করতে চান তবে অ্যাপস স্ক্রিপ্ট উইন্ডোতে রিসোর্সস -> বর্তমান প্রকল্পের ট্রিগারগুলিতে গিয়ে আপনি ট্রিগার সেট করতে পারেন।


4
সমস্ত গুগলারের জন্য এখানে সমাপ্তি : স্প্রেডশিট কাস্টম ফাংশনগুলি (অন্য) ব্যবহার করে SpreadsheetApp.openById()বা অন্য স্প্রেডশিটগুলি খুলতে পারে না SpreadsheetApp.openByUrl()। পরীক্ষা করে দেখুন এখানে এবং এখানে
ফ্রান্সিসকো Vadicamo

1

রোডব্লকটির কার্যকারিতা হিসাবে now(), আপনি স্প্রেডশিটের সেটিংস প্রতি ঘন্টা আপডেট করতে পরিবর্তন করতে পারেন।

ফাইল -> স্প্রেডশিট সেটিংস -> গণনা

" অন ​​চেঞ্জ এবং প্রতি ঘন্টা " বা "পরিবর্তন এবং প্রতি মিনিটে" পুনরায় গণনা করতে শীটটি আপডেট করুন । যদিও মনে রাখবেন, প্রতি মিনিটে পুনঃ গণন নির্বাচন করা স্প্রেডশিটকে স্তব্ধ করতে পারে।


0

অন্য শিট থেকে আপনার রেফারেন্সটি স্বয়ংক্রিয়ভাবে আপডেট করতে আপনি Google পত্রক অ্যাড-অন শিটগো ব্যবহার করতে পারেন । আপনি প্রতি মাসে 30 টি আপডেট ব্যবহার করতে পারেন বা আরও আপডেটের জন্য অর্থ প্রদানের সাবস্ক্রিপশন পেতে পারেন। এই ভিডিওটির প্রাথমিক ব্যবহার সম্পর্কে আপনাকে ব্যাখ্যা করা উচিত।


2
দয়া করে মনে রাখবেন যে এটি " ফ্রি ইনস্টল করুন ফ্রি " তে চতুরতার সাথে বলা হয়েছে , এটি একটি অ্যাড-অন যা একটি সীমিত ফ্রি পরিকল্পনা এবং এর পরে 3 টি প্রদত্ত পরিকল্পনা রয়েছেপ্রাইসিং পৃষ্ঠার লিঙ্কটি কেবল সাইটের একেবারে নীচে পাওয়া যাবে।
মারিকামিটসোস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.