Excel 在谷歌电子表格中,如果单元格A>;电池B,用电池A替换电池B

Excel 在谷歌电子表格中,如果单元格A>;电池B,用电池A替换电池B,excel,google-sheets,Excel,Google Sheets,我目前在a列中有一列标记为“Current Rank”,在B列中有一列标记为“Highest Rank”。如果Current Rank>Highest Rank,我想用Current Rank替换Highest Rank。在避开自引用错误时,有什么方法可以做到这一点吗?您可以列出所有分数,并使用公式=max()查找最大的分数,但要用较大的值替换单元格“B”,唯一的方法是使用一个脚本,即谷歌版的Excel宏。你必须这样做,并在输入新值后运行它(这是我的第一个谷歌脚本,肯定有更干净的方法,但这段代码

我目前在a列中有一列标记为“Current Rank”,在B列中有一列标记为“Highest Rank”。如果Current Rank>Highest Rank,我想用Current Rank替换Highest Rank。在避开自引用错误时,有什么方法可以做到这一点吗?

您可以列出所有分数,并使用公式=max()查找最大的分数,但要用较大的值替换单元格“B”,唯一的方法是使用一个脚本,即谷歌版的Excel宏。你必须这样做,并在输入新值后运行它(这是我的第一个谷歌脚本,肯定有更干净的方法,但这段代码完成了任务)

函数myFunction(){
var ss=SpreadsheetApp.getActiveSpreadsheet();
var sheet=ss.getSheets()[0];
var范围=sheet.getRange(“A1:A100”)
var j=0;
用于(范围内的var i){
if(range.getValues()[j]!=未定义){

if(sheet.getRange(“B”+(j+1)).getValue()脚本编辑器。

您需要一个脚本,但这不是一个困难的脚本

onEdit触发器比较干净,可以自动工作。通过工具打开编辑器,将其粘贴到一个空文件中。完成操作。每次对工作表进行更改时,此脚本都会计算a列和b列

在A列中输入数据,最大结果将出现在B列中(此脚本假定有一个标题行,第1行上的数据将不会得到计算)

函数onEdit(e){
var ss=e.来源;
var sheet=ss.getActiveSheet();
var range=sheet.getDataRange();
var values=range.getValues();
对于(变量i=1;i值[i][1]){
sheet.getRange(i+1,2,1,1).setValue(值[i][0]);
}
}  
}

=max(A,B)
怎么样?在B栏中,使用
=max(A:A)
并且它将始终显示列中的最大数字A@Fabricator,您的公式与电子表格公式之间存在循环依赖关系。@pnuts,我用excel标记,因为从excel语法转换为工作表语法并不困难。@pnuts我没有解决方案,这就是我为什么要问的原因。
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++;

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