Google sheets 在google电子表格中填写条件后未更改单元格
我想创建一个有条件的单元格结构 假设B列的值为实时分数: 在C列中,我想创建一个if条件,如下所示: 如果B>10,则C为是 然而,正如我所提到的,B列作为实时分数,即使B在之后降到10以下,我希望C保持不变。所以本质上,我希望C保持在是,一旦我的live score条件达到Google sheets 在google电子表格中填写条件后未更改单元格,google-sheets,google-sheets-formula,google-sheets-api,Google Sheets,Google Sheets Formula,Google Sheets Api,我想创建一个有条件的单元格结构 假设B列的值为实时分数: 在C列中,我想创建一个if条件,如下所示: 如果B>10,则C为是 然而,正如我所提到的,B列作为实时分数,即使B在之后降到10以下,我希望C保持不变。所以本质上,我希望C保持在是,一旦我的live score条件达到 请告诉我如何操作。您可以使用带有以下代码的应用程序脚本编辑器: function liveScorePass(){ var spreadsheet = SpreadsheetApp.getActiveSheet();
请告诉我如何操作。您可以使用带有以下代码的应用程序脚本编辑器:
function liveScorePass(){
var spreadsheet = SpreadsheetApp.getActiveSheet();
var i = 0;
Logger.log(i);
while (i == 0){
Logger.log('B1');
if (spreadsheet.getRange('B1').getValue() > 10){
spreadsheet.getRange('C1').setValue("YES");
Logger.log('C1');
i = 1;
}
else{
spreadsheet.getRange('C1').setValue("NO");
}
}
}
/* OPTIONAL FUNCTION*/
function onOpen(){
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu('Live Score Menu')
.addItem('Reset Script', 'liveScorePass') //creates a menu to start the script again
.addToUi();
var spreadsheet = SpreadsheetApp.getActiveSheet();
liveScorePass(); //starts the script whenever you open the spreadsheet.
}
它基本上检查您的单元格B1
是否大于10。如果不是,脚本将保持不间断运行,但当它运行时,C1
的值设置为YES
,而i
设置为1,在循环时脱离thw,不再独立于B1
的值更改C1
的值
编辑
要将其用作功能而不是工具栏菜单上的选项卡,您可以将其作为公式调用=LIVESCOREPASS()
。然而,这牵涉到三件事:
您不能使用任何set*()
方法,因此您需要调整您的编码,这样您就可以:
函数LIVESCOREPASS(){
var电子表格=SpreadsheetApp.getActiveSheet();
var i=0;
Logger.log(i);
而(i==0){
Logger.log('B1');
if(电子表格.getRange('B1').getValue()>10){
var result1=“是”;
Logger.log('C1');
i=1;
返回结果1;
}
否则{
var result2=“否”;
返回结果2;
}
}
}
你好@JoshMakan!我知道在B列中有一个不断变化的值,如果它符合条件,您希望在另一列上运行一些操作。如果我对这个场景的理解是正确的,那么您可以轻松地在中执行此操作。这对你来说是一个有效的解决方案吗?嗨,非常感谢。我如何将它作为一个函数合并到google电子表格中。现在是账单。我找不到它作为函数。我将用它的代码更新答案,但是它不起作用,因为每次更新B1
,它都会自动重置。我可以告诉你如何使用它作为一个函数,但是你需要一些其他的方法来实现它。