Apps-Script循环极其缓慢。
创始人
2024-11-10 06:31:53
0

使用 Google Sheets 的内部计算函数,如 SUM 和 COUNTIF,代替 Apps-Script 循环,以获得更快的性能。

下面是一个示例,将循环计算一列到另一列的平均值改为使用内部计算函数:

原始代码:

function myFunction() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var dataRange = sheet.getDataRange(); var values = dataRange.getValues(); for (var i = 1; i < values.length; i++) { var sum = 0; var count = 0; for (var j = 0; j < values[i].length; j++) { if (values[i][j] !== "") { sum += values[i][j]; count++; } } var avg = sum / count; sheet.getRange(i + 1, values[i].length + 1).setValue(avg); } }

更新后的代码:

function myFunction() { var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var dataRange = sheet.getDataRange(); var values = dataRange.getValues(); var row_count = values.length - 1; var col_count = values[0].length - 1; var sums = sheet.getRange(2, 1, row_count, col_count).getFormulas().map( function(row) { return row.map( function(formula) { if (formula !== "") { return "=SUM(" + formula + ")"; } else { return ""; } } ) } ); var counts = sheet.getRange(2, 1, row_count, col_count).getFormulas().map( function(row) { return row.map( function(formula) { if (formula !== "") { return "=COUNTIF(" + formula + ", "<>0")"; } else { return ""; } } ) } ); var avgs = sheet.getRange(2, 1, row_count, col_count).getFormulas().map( function(row, i) { return row.map( function(formula, j) { if (formula !== "") { return "=(IFERROR(" + sums[i][j] + "/" + counts[i][j] + ",""))"; } else { return ""; } } ) } ); sheet.getRange(2, col_count + 1, row_count, 1).setFormulas(avgs); }

此更新后的代码使用 SUM 和 COUNTIF 函数分别计算

相关内容

热门资讯

安卓换鸿蒙系统会卡吗,体验流畅... 最近手机圈可是热闹非凡呢!不少安卓用户都在议论纷纷,说鸿蒙系统要来啦!那么,安卓手机换上鸿蒙系统后,...
app安卓系统登录不了,解锁登... 最近是不是你也遇到了这样的烦恼:手机里那个心爱的APP,突然就登录不上了?别急,让我来帮你一步步排查...
安卓系统拦截短信在哪,安卓系统... 你是不是也遇到了这种情况:手机里突然冒出了很多垃圾短信,烦不胜烦?别急,今天就来教你怎么在安卓系统里...
安卓系统要维护多久,安卓系统维... 你有没有想过,你的安卓手机里那个陪伴你度过了无数日夜的安卓系统,它究竟要陪伴你多久呢?这个问题,估计...
windows官网系统多少钱 Windows官网系统价格一览:了解正版Windows的购买成本Windows 11官方价格解析微软...
安卓系统如何卸载app,轻松掌... 手机里的App越来越多,是不是感觉内存不够用了?别急,今天就来教你怎么轻松卸载安卓系统里的App,让...
怎么复制照片安卓系统,操作步骤... 亲爱的手机控们,是不是有时候想把自己的手机照片分享给朋友,或者备份到电脑上呢?别急,今天就来教你怎么...
安卓系统应用怎么重装,安卓应用... 手机里的安卓应用突然罢工了,是不是让你头疼不已?别急,今天就来手把手教你如何重装安卓系统应用,让你的...
iwatch怎么连接安卓系统,... 你有没有想过,那款时尚又实用的iWatch,竟然只能和iPhone好上好?别急,今天就来给你揭秘,怎...
iphone系统与安卓系统更新... 最近是不是你也遇到了这样的烦恼?手机更新系统总是失败,急得你团团转。别急,今天就来给你揭秘为什么iP...