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);
}
1条答案
按热度按时间vd8tlhqk1#
我相信你的目标如下。
=FILTER(Master!B:C; month(Master!B:B) = 1; Master!A:A = true)
的公式转换为Google Apps脚本。在这种情况下,下面的示例脚本如何?
示例脚本:
请将以下脚本复制粘贴到电子表格的脚本编辑器中,并保存脚本。同时,请设置源工作表和目标工作表名称。
filterValues
作为自定义函数,如=filterValues(Master!A1:C)
。注:
参考文献: