কীভাবে স্বয়ংক্রিয়ভাবে একটি নতুন সারি sertোকানো এবং শেষ সারি থেকে ফাংশন / সূত্র ধরে রাখা যায়?


24

আমার মতো কক্ষগুলি সহ একটি টেবিল রয়েছে যার মতো ফাংশন / সূত্র রয়েছে:

এখানে চিত্র বর্ণনা লিখুন

আমার কাছে একটি স্ক্রিপ্ট দরকার যা একটি নতুন সারি তৈরি করে, এটির সাথে সর্বশেষ ব্যবহৃত সারিটির ফাংশন / সূত্রগুলি অনুলিপি করে। আমি এই স্ক্রিপ্টটি খুঁজে পাই যা একটি নতুন সারি তৈরি করে তবে এটি ফাংশন / সূত্রগুলি অনুলিপি করে না । আমি ম্যানুয়ালি নির্বাচন না করে অনুলিপি করে গুগল অ্যাপস স্ক্রিপ্টে এই ফর্ম্যাট কপি টাস্কটি কীভাবে বাস্তবায়ন করতে পারি?


যদি আমার পূর্ববর্তী সারির সূত্রটি = HTTPResponse (সি 4) হয় তবে আমি কীভাবে একই সূত্রটি অনুলিপি করতে পারি তবে নতুন সারির জন্য নতুন ঘর নম্বর?
ব্যবহারকারী 1788736

উত্তর:


20

সূত্রটিকে সাধারণ মান হিসাবে অনুলিপি করতে নীচের কোডটি ব্যবহার করুন। স্প্রেডশিট মেনু থেকে সরঞ্জামগুলি নির্বাচন করে কোড যুক্ত করুন। তারপরে স্ক্রিপ্ট সম্পাদক নির্বাচন করুন এবং কোড যুক্ত করুন। "বাগ" বোতাম টিপুন এবং স্ক্রিপ্টটি প্রমাণীকরণের বিষয়টি নিশ্চিত করুন।

কোড

// global 
var ss = SpreadsheetApp.getActive();

function onOpen() {
  var menu = [{name:"Add New Last Row", functionName:"addRow"}];
  ss.addMenu("Extra", menu);
}

function addRow() {
  var sh = ss.getActiveSheet(), lRow = sh.getLastRow(); 
  var lCol = sh.getLastColumn(), range = sh.getRange(lRow,1,1,lCol);
  sh.insertRowsAfter(lRow, 1);
  range.copyTo(sh.getRange(lRow+1, 1, 1, lCol), {contentsOnly:false});
}

মন্তব্য

সেট contentOnly করার falseএকটি প্রমিত কপি উত্পাদ হবে। সেট করা হচ্ছেtrue , কেবল মানগুলি পেস্ট করবে। উদাহরণস্বরূপ স্ক্রিপ্টটি আপনি পেয়েছেন, মানগুলি আটকানোর পরে আরও কিছু করে .....

উদাহরণ

আমি আপনার জন্য একটি উদাহরণ ফাইল তৈরি করেছি: সূত্রের সাথে সারি যুক্ত করুন


3

এই অ্যারেফর্মুলা কোনও স্ক্রিপ্ট জড়িত না করে কেবল একই কাজ করতে পারে। এটি ডি 4-এ প্রবেশ করুন এবং এটি এর নিচে যে কোনও পরিমাণ খালি ঘরে স্বয়ংক্রিয়ভাবে বহন করবে।

ArrayFormula(vlookup(B4:B:tax_table!$A$2:$G$8;3;true))

দ্রষ্টব্য: "বি 4: বি" এর অর্থ, কলামের শেষ অবধি বি 4 থেকে শুরু হওয়া সমস্ত কক্ষ দেখুন look

যদিও, অ্যারেফর্মুলা এটির নীচের কোষগুলিতে নিজের অনুলিপি করার যত্ন নেয়। এটির নীচের ঘরগুলি খালি রয়েছে তা নিশ্চিত করুন।


3

যদি আপনাকে শীর্ষে (প্রথম সারিতে) একটি নতুন সারি যুক্ত করতে হয় এবং প্রথম শীর্ষ সারিতে সূত্রটি অনুলিপি করতে হয় তবে আপনাকে ব্যবহার getFormulas()এবং setFormulas()ফাংশন জুড়ে সূত্রগুলি অনুলিপি করতে হবে । firstRowউদাহরণস্বরূপ আপনার স্প্রেডশিটে শিরোনাম থাকলে আপনি 2 এর মান পরিবর্তন করতে পারেন ।

function addFirstRow() {
    var firstRow = 1;
    var sh = ss.getActiveSheet();
    var lCol = sh.getLastColumn();
    var range = sh.getRange(firstRow, 1, 1, lCol);
    var formulas = range.getFormulas();
    sh.insertRowsAfter(1, 1);
    newRange = sh.getRange(firstRow, 1, 1, lCol);
    newRange.setFormulas(formulas);
}

1
হাই ডেনিস, আপনি কি আমার তৈরি পোস্টটি উল্লেখ করছেন? আমি কেবল স্ক্রিপ্টটি পরীক্ষা করে দেখছি এবং এটি এখনও কাজ করছে। শ্রদ্ধা জ্যাকব জান
জ্যাকব জান তুন্নিস্ট্র

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

হাই @ ডেনগোর্ডো! এর জন্য ধন্যবাদ. সূত্রগুলিতেও না, যদি আমার কাছে কেবল সরিয়ে দেওয়ার মান থাকে তবে আমি কীভাবে এটি পরিবর্তন করব? ধন্যবাদ!
ড্রিউডাভিড

ওহ পিএস - আমি কোন ট্যাবটি নিয়ে কাজ করছি তা কোথায় উল্লেখ করব? আবার ধন্যবাদ.
ড্রিউডাভিড

-2

এই সমস্যাটি সমাধান করার জন্য আমি setFormula(range)উদাহরণস্বরূপ:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var cell = sheet.getRange("B5");
 cell.setFormula("=SUM(B3:B4)");

আপনার সূত্রটি সারি সূচক অনুসারে স্বতঃসংশোধন করবে।

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


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