根据我昨天收到的一些帮助,我创建了一个@customFunction脚本来在我的电子表格中运行,它将一个值“附加”到一个字符串。
在电子表格的 A 列中,我有一个学生当前的 GPA(例如 3.2),在 BI 列中有他们以前记录的 GPA 的字符串(例如 [2,3,3,4.5,2.5,2.1,1.3,0.4]) . 该脚本将当前 GPA 添加到字符串的末尾。
在这种情况下,当前和存储是电子表格中的命名范围。
/** @customFunction */
function GPAweekly(current,stored) {
stored = stored.replace(']',','+current+']');
return stored;
}
这在使用 1D 范围且仅适用于几行时效果很好。但是,当我将它用于大量数据时,我达到了 Google 的服务配额并得到“服务在短时间内调用太多次”的错误。
我的下一个尝试是使用 2D 范围和map()递归调用我的函数的方法。
/** @customFunction */
function GPAweekly(current,stored) {
if (typeof current.map === "function" && typeof stored.map === "function") {
return current.map(GPAweekly);
return stored.map(GPAweekly);
}
stored = stored.replace(']',','+current+']');
return stored;
}
这似乎一直有效,直到脚本到达该replace()方法,然后我在电子表格单元格中收到一个错误,指出“TypeError:无法在对象 0 中找到函数替换”。
我有两个问题:
1)我怎样才能解决这个 TypeError 问题?
2)是否有一种更优雅的方式来处理我想要实现的整体目标(请记住,我将有几千名学生数据需要处理)。
我为标题道歉。我完全不知道该怎么说。