如何加速沉重的条件格式规则
在我们的营销公司/代理机构,我们使用Google表格中的主跟踪器来跟踪我们为客户处理的所有付费广告活动。 文档变得越来越长,我们使用的各种条件格式规则越来越沉重,并且对文档所做的任何更改都变得越来越慢。
有五名员工在任何时间都使用该文档,在对活动进行任何更改时更改“状态”列 - 是否准备好上传,是否为实时,是否暂停等。条件格式只是简单地更改每行的颜色基于“状态”列中的值。 它还会查看开始/结束日期,并在出现问题时将线标记为红色。 等等。
如何加快使用此文档的处理速度? 我为每个条件格式规则创建了一行缩略版本的跟踪器,以便您轻松查看。
我确信有更聪明的方法来整合规则和/或构建能够更轻松,更高效地处理任务的脚本。
这个答案使用一个脚本来改变状态改变后的行的背景颜色(适用于“READY”,“LIVE”和“DONE”)。
现场演示:https://docs.google.com/spreadsheets/d/1bVwM1wSBVlZTmz5S95RXSrRQxlTKWWN_Hl4PZ81sbGI/edit?usp=sharing
该脚本可在“工具 - 脚本编辑器...”菜单下查看。 它由“onEdit”触发器激活(请参阅是否可以自动执行Google Spreadsheets脚本(例如,没有事件触发它们)?)。
这是脚本本身:
function onEdit(e) {
var STATUS_COL = 18;
var MAX_COLS = 18;
var COLOR_READY = "grey";
var COLOR_LIVE = "#512da8";
var COLOR_DONE = "green";
var activeSheet = SpreadsheetApp.getActiveSheet();
var cell = activeSheet.getActiveSelection();
var val = cell.getValues()[0][0];
var color = null;
switch (val) {
case "READY":
color = COLOR_READY;
break;
case "LIVE":
color = COLOR_LIVE;
break;
case "DONE":
color = COLOR_DONE;
break;
}
if (color != null) {
var row = activeSheet.getRange(cell.getRow(), 1, 1, MAX_COLS);
row.setBackgroundColor(color);
}
}
根据某些条件我有整行更改颜色。 所以我从条件格式化面板中提取复杂的公式到工作表中的列(我得到了“TRUE”或“FALSE”),并在条件格式规则中引用这些列。 由于某些原因,条件格式公式的计算比单元内部的相同计算慢得多。
链接地址: http://www.djcxy.com/p/92885.html