gpt4 book ai didi

javascript - Google 文档 - 电子表格循环

转载 作者:行者123 更新时间:2023-12-02 19:28:48 26 4
gpt4 key购买 nike

这个问题可能有点基础且容易回答,但我已经拔头发有一段时间了!

我构建了以下代码 - 这是半伪代码,因为我找不到使事情正常工作的正确方法!

var s = "Test";

function onEdit(event)
{
var ss = event.source.getActiveSheet();
var r = event.source.getActiveRange();
if (ss.getName() == s)
{
results = {"Currently On": 0, "Next Up": 0, "On Hold": 0, "Waiting on someone else": 0, "zDone": 0};
last = ss.getMaxRows();
start = ss.getRange("F3:"+last).getValues();
var output = "J11";
for (x=0;x<start.length;x++)
{
results[start[x]]++;
}

for (y=0;y<results.length;y++)
{
row = ss.getRow(output);
row.value = results[y];
output++;
}
}
}

我有此图像中的数据示例 data example

基本思想是遍历每个任务的所有可能类别,并在每个任务的数量旁边保留一个数字列表。我还想让它变得动态(这样我就不必在类别列表中进行硬编码),但我更感兴趣的是让它暂时发挥作用。

Google Apps 调试器非常令人沮丧!

感谢大家的帮助!

最佳答案

首先,这个特定的用例可以通过电子表格公式轻松实现,例如:

=QUERY(A2:F;"select F, count(A) where F != '' group by F label count(A) 'Count'";1)

但是您想使用 GAS 来执行此操作可能是有原因的。

其次,我认为这可能存在一些语法问题:

last = ss.getMaxRows();

我只会使用var last = ss.getLastRow()在这里。

start = ss.getRange("F3:"+last).getValues();

范围引用将评估为类似“F3:100”的内容,这是 GSheets 中的有效引用(不知道 GAS 是否可以处理它),但尽管如此,您确实想要类似“F3:F100”的内容,所以我会使用 var start = ss.getRange("F3:F"+last).getValues(); .

results[start[x]]++;

当您从 getValues() 创建数组时称它是一个二维数组,因此您需要使用 results[start[x][0]]++; .

随着下一个循环和 output变量,我必须承认我对你在那里所做的事情有点迷失。您希望如何布置结果表?

关于javascript - Google 文档 - 电子表格循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11752058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com