在UNIQUE公式列出另一个值之后更新单元格值

时间:2019-04-11 09:30:40

标签: google-apps-script google-sheets

我有一个Google电子表格来计算我的财务费用。有几种类别,例如餐饮。每次添加新类别时,UNIQUE值都会添加该值。该工作表适合几个人,所以我有几个UNIQUE公式,每个人一个。

我创建了一个脚本,该脚本将UNIQUE公式中的所有值复制到一列,然后使其唯一以确保所有人都具有相同的类别。

我想使其自动运行,因此每次添加新类别时,都会更新唯一列表之一,并应启动脚本。但是,这是我的问题。如果它来自UNIQUE公式,则onEdit脚本不会检测到更改。

onEdit脚本不起作用。

function onEdit(e) {
  var sheet = SpreadsheetApp.getActiveSheet();
  var range = e.range;
  var editRange = { // B4:J6
    top : 3,
    bottom : 20,
    left : 22,
    right : 23
  };

  // Exit if we're out of range
  var thisRow = e.range.getRow();
  if (thisRow < editRange.top || thisRow > editRange.bottom) return;

  var thisCol = e.range.getColumn();
  if (thisCol < editRange.left || thisCol > editRange.right) return;

  sheet.getRange('X3:X1000').clearContent();

  var base = 3;
  var counter = 3;
  var counterResult = 3;

  while(sheet.getRange(counter, 22).getValue().length != 0){
    var getValue = sheet.getRange(counter++, 22).getValue();
    sheet.getRange(counterResult++, 24).setValue(getValue);
  }

  counter = base;

  while(sheet.getRange(counter, 23).getValue().length != 0){
    var getValue = sheet.getRange(counter++, 23).getValue();
    sheet.getRange(counterResult++, 24).setValue(getValue);
  }
}

检测UNIQUE公式中的更改的函数。

2 个答案:

答案 0 :(得分:1)

  

哇!我不知道可以使用{}添加2个参数。这解决了我的问题!谢谢!

--deploy-url

并杀死空的唯一对象:

ng build --prod --deploy-url https://www.domainname.com

答案 1 :(得分:0)

=UNIQUE({A:A;B:B})

并杀死空的唯一对象:

=QUERY(UNIQUE({A:A;B:B}), "where Col1 is not null", 0)