Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 取决于(Id)。如何将此数据库(Ppt)放入(MP04/MP 05)_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 取决于(Id)。如何将此数据库(Ppt)放入(MP04/MP 05)

Google apps script 取决于(Id)。如何将此数据库(Ppt)放入(MP04/MP 05),google-apps-script,google-sheets,Google Apps Script,Google Sheets,描述:我有一张带有Id、贷项和借项列表的Ppto表。如果Id相等,我想将这些事务转移到MP05。如果ID不相等,则移动到MP04。标准:如果Id=使用MP05。如果Id≠ 使用MP04。 我是谷歌脚本的新手,我需要一些支持 谢谢你的关注 function mp() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var ppto = ss.getSheetByName('Ppto.'); var Id = ppto.getRange('

描述:我有一张带有Id、贷项和借项列表的Ppto表。如果Id相等,我想将这些事务转移到MP05。如果ID不相等,则移动到MP04。标准:如果Id=使用MP05。如果Id≠ 使用MP04。 我是谷歌脚本的新手,我需要一些支持

谢谢你的关注

function mp() {
 var ss = SpreadsheetApp.getActiveSpreadsheet();
 var ppto = ss.getSheetByName('Ppto.');
 var Id = ppto.getRange('B5:B12').getValues();
 var cedent = ppto.getRange('D5:D12').getValues();
 var recept = ppto.getRange('E5:E12').getValues();

    for (var i = 0; i < cedent.length; i++) {
    for (var j = 0; j < recept.length; j++) {

        if (cedent[i]  != '' )   {
        if (recept[j]  != '' )   {
        //if (Id === Id) // MP-05
        //if (Id != Id) // MP-04  
        {
          ppto.getRange('H5:H12').setValues(cedent);
          ppto.getRange('I5:I12').setValues(recept);


          Logger.log(cedent[i]);

         ppto.getRange('j5:j12').setValues(cedent);
         ppto.getRange('k5:k12').setValues(recept);

    }
   } 
}
}
}
  }
函数mp(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var ppto=ss.getSheetByName('ppto');
var Id=ppto.getRange('B5:B12').getValues();
var cedent=ppto.getRange('D5:D12').getValues();
var recept=ppto.getRange('E5:E12').getValues();
对于(变量i=0;i
策略:
  • 先进先出:先进先出
  • 使用
    forEach
  • 如果存在信用,则使用
    some
    再次循环所有行以查找收据
  • 如果第一个循环中的贷方
    e[2]
    等于第二个循环中的收据
    f[3]
    ,请检查id
    [0]
  • 如果ID相等,则在末端拼接两个空列,否则在第二个位置拼接以创建统一的6列阵列
  • 将该数组设置回图纸
示例脚本: 参考资料:

为什么不直接使用纸张公式进行此操作;为什么需要编写脚本呢?亲爱的@TheMaster,谢谢你,如果(MP-05/MP-04)是两张不同的表格,情况会怎样。请原谅英语。@Luis将使用
getRange(i,).copyTo()而不是
splice
。但是,我不会为你做的。阅读上面的示例脚本,阅读上面的参考资料,完成教程链接中的所有练习,阅读工作表文档,然后尝试几天。起初你会失败,但如果你不放弃,你会成功的。。但是你必须付出更多的努力。试啊试啊。干杯。在其中,您必须将Id、转让人和接收人分别放入其中。非常好,再次感谢@TheMaster对您的支持。为你和你的健康。
function transactionSegregator() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var ppto = ss.getSheetByName('Ppto.');
  var data = ppto.getRange('B5:E12').getValues();
  data.forEach(function(e) {
    //e: Each row
    if (e[2] && e.length == 4) {
      //e[2]:credits; If this row is not spliced
      data.some(function(f) {
        //f:Each row; Second loop
        if (e[2] == f[3]) {
          //if credits = debit
          if (e[0] == f[0]) {
            //if id = id, splice two empty columns after Col4, else after Col2
            e.splice(4, 0, '', '');
            f.splice(4, 0, '', '');
          } else {
            e.splice(2, 0, '', '');
            f.splice(2, 0, '', '');
          }
          return true;
        }
      });
    }
  });
  Logger.log(data);
  ppto.getRange(5, 6, data.length, data[0].length).setValues(data);// F5
}