javascript 如何在应用程序脚本中转换Google工作表过滤器函数

inn6fuwd  于 2023-01-19  发布在  Java
关注(0)|答案(1)|浏览(74)

我在一个单元格中有一个函数过滤器,我如何在一个apps脚本函数中转换它,参数包括range,condition1,condition2?
这是过滤函数:

=FILTER(Master!B:C; month(Master!B:B) = 1; Master!A:A = true)
vd8tlhqk

vd8tlhqk1#

我相信你的目标如下。

  • 您要将=FILTER(Master!B:C; month(Master!B:B) = 1; Master!A:A = true)的公式转换为Google Apps脚本。

在这种情况下,下面的示例脚本如何?

示例脚本:

请将以下脚本复制粘贴到电子表格的脚本编辑器中,并保存脚本。同时,请设置源工作表和目标工作表名称。

const filterValues = v => v.filter(([a, b]) => a === true && b.getMonth() == 0).map(([, ...v]) => v);

// Please run this script.
function myFunction() {
  // Retrieve values from the source sheet and filter values.
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const srcSheet = ss.getSheetByName("Master"); // Please set source sheet name.
  const values = srcSheet.getRange("A1:C" + srcSheet.getLastRow()).getValues();
  const result = filterValues(values);

  console.log(result); // You can see the filtered values in the log.

  // Put filtered values to the destination sheet.
  const dstSheet = ss.getSheetByName("Sheet1"); // Please set destination sheet name.
  dstSheet.getRange(1, 1, result.length, result[0].length).setValues(result);
}
  • 运行此脚本时,将检索与上述公式相同的值并将其放入目标工作表。
  • 在本示例中,您还可以使用filterValues作为自定义函数,如=filterValues(Master!A1:C)

注:

  • 关于将过滤后的值放到目标工作表中,这是一个示例脚本。因此,请根据您的实际情况进行修改。

参考文献:

相关问题