从单独的表中保持运行总计

时间:2018-02-03 23:32:28

标签: google-apps-script

我希望有人能用我正在尝试制作的剧本来帮助我。

基本上,我在两张不同的床单上有两张桌子。第一个表是我公司所携带的每个项目的列表,然后是每个商店的三个空白列。

第二个表是供员工在某些东西上输入时输入的,实际上每个商店有一个,但我会为每个商店创建三个单独的脚本。我使用第一个表中的数据验证,以便值始终相同。

我想要做的是创建一个脚本,以便每次将该项目标记为低时进行计数。我不能使用常规公式,因为列表会更新,然后在项目不再低时清除。我希望做的是,在工作表上放置一个按钮(我可以处理该部分),在这些部件中输入项目,突出显示它(使其成为活动范围),然后运行脚本。所有脚本要做的就是匹配两张纸上的项目,然后将第一张纸上的值增加1.我无法弄清楚的部分是如何匹配两张纸上的值。有帮助吗? :)

以下是电子表格示例。我清除了所有不相关的行,所以没有混淆。我在第一张纸上放了一些样品编号,当商店标记它们再次低价时,这些是我想要增加1的数字。

https://docs.google.com/spreadsheets/d/1ox2qonPbJEliuarbQ6pIrSJLcCROhN6Y5l7K-BQj0zw/edit?usp=sharing

这就是我现在所拥有的。显然,if部分不起作用。我无法找到一种正确匹配两个范围的方法。

function HTLOW() {
 var ss = SpreadsheetApp.getActive();
  var DS = ss.getSheetByName("Data");
  var sheetDS=DS
  var maxRows = sheetDS.getMaxRows();
 var HS = ss.getSheetByName("Store 1");

  var Lrange = HS.getActiveRange();
  var Nrange = sheetDS.getRange(3, 2, maxRows);
  var Drange = sheetDS.getRange(3, 3, maxRows);

  var Lvalue = Lrange.getValues();
  var Dvalue = Drange.getValues();
  var Nvalue = Nrange.getValues();
  for (var row in Lvalue) {
    var Lcelldata = Lvalue[row][0];
    var Dcelldata = Dvalue[row][0];
    var Ncelldata = Nvalue[row][0];

    if ( Lcelldata != Ncelldata) {
      Dvalue[row][0] = Dcelldata + 1;
    }

  Drange.setValues(Dvalue);
  }
}

0 个答案:

没有答案