google-sheets - 在谷歌表格中执行单元格功能
问题描述
我有一个自定义单元格函数 [=sortByWeek("Tasks")] 从不同的工作表中获取数据范围并将其排序并打印在当前工作表中。
它第一次工作得很好,但我想在每次其他工作表中的数据更新时执行它。
这是整个脚本
function sortByWeek(sheetName) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName(sheetName);
var range = sheet.getDataRange();
var array = range.getValues();
for (var i = 0; i < array.length; i++) {
// sort tasks by week number
for (var j = 0; j < i; j++) {
if (array[i][2] < array[j][2]) {
var x = array[i];
array[i] = array[j];
array[j] = x;
}
}
}
// insert rows between different weeks;
var arrayFinal = [];
let same = array[0][2];
let total = 0;
for (var e = 0; e < array.length; e++) {
var string = [[""],["QWERTY", "", "", "Week " + same + " total", total, "x", ""],[""]];
if (array[e][2] === same) {
total = total + array[e][4];
arrayFinal.push(array[e]);
} else {
if (!(e === 0)) {
for (var s = 0; s < string.length; s++) {
arrayFinal.push(string[s]);
total = 0;
}
}
arrayFinal.push(array[e]);
}
same = array[e][2];
}
for (var s = 0; s < string.length; s++) {
arrayFinal.push(string[s]);
}
return arrayFinal;
}
解决方案
假设“任务”是工作表(选项卡)的名称,请尝试
=sortByWeek(“任务”,任务!A:Z)
第二个参数是一个“虚拟”参数:它不在自定义函数中使用,但如果编辑了范围(在第二个参数中指示),它将强制重新计算自定义公式。
推荐阅读
- python - 运行服务器后之前添加的文件
- web - 如何为禁用按钮添加工具提示?(反应带)
- autolisp - 使用 autolisp 脚本更改显示配置
- javascript - 使用 Vue Cli 3 链接到字体
- python - 如何在带有标签的kivy python桌面应用程序中使用图像作为启动画面?
- single-sign-on - 强制 IDP 要求提供凭据
- sql - RTRIM & LTRIM 函数与 Case 语句
- javascript - JavaScript 中 arguments 对象的重要性
- git - 使用 Git 了解远程是否有新更新以及要下载多少字节
- sonarqube - SonarQube - “类 '...' 无法与其原始源文件匹配。”