我还能如何更新自定义功能?

时间:2018-10-12 08:43:44

标签: javascript google-apps-script google-sheets

我尝试了很多事情。到目前为止,这对我来说是最好的方法。它有效,但仍然困扰着我。

我有一个自定义函数,可以根据给定的名称搜索价格。 虚拟参数在自定义函数中不执行任何操作。

一旦数据库中称为“价格”的价格值发生更改,电子表格就会更新自定义功能。假人的cuz。

这是我在单元格中运行自定义函数的方式

=searchPrice(B9,Prices!D:D)

问题是这样,它检查“价格”中的整个列,并更新/加载所有单元格/自定义函数。还有其他方法可以更新自定义函数,以便它更改每个单元格的值吗?

换句话说,我不想看整个专栏。我想查看一个特定的列,如果它更改了,请更新。

//Search Price sheet with the given name. Return price. dummy param updates google ss once the "Prices" sheet values changed.
function searchPrice(name,dummy)
{
  var SPREADSHEET_NAME = "Prices";
  var SEARCH_COL_IDX = 2;//Column with Names
  var RETURN_COL_IDX = 3;//Column with prices
  var values = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SPREADSHEET_NAME).getDataRange().getValues();
  for (var i = 0; i < values.length; i++)
  {
    var col = values[i];
    if (col[SEARCH_COL_IDX] == name)
    {
      return col[RETURN_COL_IDX];
    }
  }
}

1 个答案:

答案 0 :(得分:0)

您的自定义函数实际上是在复制内置函数VLOOKUP

=VLOOKUP(B9,Prices!C:D,2,0)

如果在B9:B15中有一个名称列表,请使用ARRAY版本:

=ARRAYFORMULA(VLOOKUP(B9:B15,Prices!C:D,2,0))