gpt4 book ai didi

JavaScript 谷歌电子表格 : set the value of cell based on a match

转载 作者:行者123 更新时间:2023-11-28 08:11:08 25 4
gpt4 key购买 nike

我正在 google 电子表格中创建世界杯分组,并希望根据两个匹配单元格的值设置单元格的值。

下面的代码设置单元格 02 的值,无论单元格是否匹配(B3 和 B10)。

我不知道如何解决?

    function groupAA() {

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var groupA = ss.getRangeByName("groupA");
var groupAvalues = groupA.getValues();
var winnerA = sheet.getRange('B2').getValue();
var runnerUpA = sheet.getRange('B3').getValue();
var guessWinnerA = sheet.getRange('B10').getValue();




for (var i=0; i < groupAvalues.length; i++) {
var winnerGroupA = groupAvalues[i];
if(winnerGroupA == guessWinnerA){
setPoints('o2', '2');
}
}

}

function setPoints(rangeName, value){
SpreadsheetApp.getActiveSheet().getRange(rangeName).setValue(value)

}

请指导我实现目标的正确方法。

最佳答案

这看起来像是一个逻辑问题。请查看您分配给 A 组的内容。如果我将 runner 和冠军都分配到 A 组(正如世界杯的设计),我会得到相同的结果。换句话说,只有当您将获胜者分配给A组时,这才有效。

请注意这一行var WinnerGroupA = groupAvalues[i];。因为您正在迭代所有 groupA 并将每个值分配给 WinnerGroupA。您实质上是在说每个人都赢了。

这是我为您准备的一个示例。

function groupAA() 
{

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var groupA = ss.getRangeByName("groupA");
var winners = ss.getRangeByName("winners");
var guesses = ss.getRangeByName("guesses");
var guessesAvalues = guesses.getValues();
var groupAvalues = groupA.getValues();
var winnersAvalues = winners.getValues();
var winnerA = sheet.getRange('B2').getValue();
var runnerUpA = sheet.getRange('B3').getValue();
var guessWinnerA = sheet.getRange('B10').getValue();

setPoints('o2', '0');
for (var i =0; i< guessesAvalues.length; i++)
{


for (var j=0; j < winnersAvalues.length; j++) {

if((winnersAvalues[j].toString() == guessesAvalues[i].toString())&&(winnersAvalues[j]!=''&&winnersAvalues[j]!=null))
{

var currentRange = SpreadsheetApp.getActiveSheet().getRange('o2');
setPoints('o2', currentRange.getCell(1,1).getValue()+Number(2));

}
}
}
}

function setPoints(rangeName, value){
Logger.log(value);
SpreadsheetApp.getActiveSheet().getRange(rangeName).setValue(value);

}

function onEdit(){
groupAA();
}

因此,我创建了一系列获胜者和一系列猜测(其长度是任意的)。请参见下图查看电子表格布局(我不知道墨西哥是否获胜,所以不要告诉我):

enter image description here

你会注意到我在前面添加了分数的初始化为 0。我还转换为字符串,尽管您可能不必这样做。然后我会检查以确保获胜团队之一不是空白,如果所有这些都通过了,我会将分数增加 2,因为您表示有兴趣。你还会注意到我添加了 onEdit() 来调用 groupAA() ,这样当你添加你的猜测时它会自动更新,这样你就可以看到全部正确、全部错误和部分正确的结果。下面是一个失败猜测的例子:

enter image description here

关于JavaScript 谷歌电子表格 : set the value of cell based on a match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24201937/

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