我曾尝试制作 Google Apps 脚本,但在尝试了解如何设置它时遇到了麻烦。从这个好像我可以创造一个功能,我可以在电子表格本身一样由谷歌提供的表SUM函数调用里面。我已经查看了该getBackground()
函数,但它似乎需要包含一些全局变量而不仅仅是函数。
我想输入一个函数,它在 A2:A1000 范围内,并根据单元格的背景颜色,确定它是进入“工作”还是“生活”,然后将其添加到单元格 E4(总工作)或F4(总寿命)相应地。A 列中的单元格将始终是数字。
这是我尝试过的,我想我可能完全脱离了我的单细胞方法:
function workTime(input) {
if (input.getBackground() == "#d9ead3") {
input.setFontColor(4285f4)
} else {
input.setFontColor(null)
}
}
//I get errors on line 3 for some reason though...
TL;DR 基于单元格的背景颜色,我如何创建一个函数来计算这些特定颜色的数字总和,并相应地在“总工作时间”和“总寿命”下的不同单元格中显示它们?
您将进入自定义公式的唯一输入是values,而不是单元格对象。运行公式的函数永远不会知道它的位置或格式。它接收一个值或一组值,并返回一个值或一组值。
function workTime2() {
let file = SpreadsheetApp.getActive();
let sheet = file.getSheetByName("Sheet1");
let range = sheet.getRange('A1:A16');
let targetColor = "#00ffff"
let values = range.getValues(); // [[1],[2],[3]...]
let colors = range.getBackgrounds(); // [[#ffffff],[#00ffff],[#ffffff]...]
let sum = 0
for (let i = 1; i != values.length; i++){ // starting at 1 to skip first row
let value = values[i][0]
let color = colors[i][0]
if (color == targetColor) {
sum += value
}
}
let resultCell = sheet.getRange('B2');
resultCell.setValue(sum);
}
如果 A1:A16 中的值是绿松石色,此脚本将对它们求和。将总和放在 B2 中。
这是一种根据单元格值获取总和的方法。这应该为您提供一个很好的起点,可以根据自己的喜好进行自定义。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句