我目前有一个标有" Current Rank"在A栏中,以及标有"最高等级"在B列中。如果当前排名>排名最高,我想用当前排名取代最高排名。在解决自我引用错误时有没有办法做到这一点?
答案 0 :(得分:0)
你可以列出所有的分数,并使用公式= max()来找到最大的分数,但实际上要替换单元格" B"具有更大价值,唯一的方法是使用脚本,Google的Excel宏版本。你必须制作这样的东西,然后在你输入新的值后运行它(这是我的第一个google脚本,当然有更清晰的方式,但这段代码可以完成工作)
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range=sheet.getRange("A1:A100")
var j=0;
for(var i in range){
if(range.getValues()[j]!=undefined){
if(sheet.getRange("B" + (j+1)).getValue()<range.getValues()[j][0]){
sheet.getRange("B" + (j+1)).setValue(range.getValues()[j][0]);
}
}
j++;
}
}
制作脚本,打开工具&gt;脚本编辑器。
答案 1 :(得分:0)
你需要一个脚本,但这并不困难。
onEdit触发器更清洁,自动运行。通过工具打开编辑器,将其粘贴到一个空文件中。你完成了。每次在工作表上进行更改时,此脚本将评估列a和列b。
在A列中输入数据,最大结果将显示在B列(此脚本假定有一个标题行,第1行的数据不会被评估。)
function onEdit(e) {
var ss = e.source;
var sheet = ss.getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
for(var i = 1; i < values.length; i++) {
if (values[i][0] > values[i][1]) {
sheet.getRange(i + 1, 2, 1, 1).setValue(values[i][0]);
}
}
}