在Google Spreadsheets中,如果单元格A>细胞B,用细胞A代替细胞B.

时间:2015-02-20 17:28:55

标签: excel google-sheets

我目前有一个标有" Current Rank"在A栏中,以及标有"最高等级"在B列中。如果当前排名>排名最高,我想用当前排名取代最高排名。在解决自我引用错误时有没有办法做到这一点?

2 个答案:

答案 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]);
    }
  }  
}