比较几列中的数字

时间:2015-08-10 01:05:44

标签: google-apps-script google-sheets

我在Google表格上有一个价格列表,我正在编写一个脚本,用于比较多行中每行的价格,并仅显示价格最低的行。

我不确定最好的方法是什么。我猜这是它需要做的事情:

- 列之间的比较
- 没有最低价格的明确细胞
- 更低价格的文字颜色
-repeat直到最后一行

有关如何在Google Apps脚本中执行此操作的任何提示,我们将不胜感激!

function PriceCompare() {
var ss = SpreadsheetApp.getActiveSheet();  
var datas = ss.getDataRange().getValues();  
var col1 = 14;
var col2 = 15;
var col3 = 16;

var lastrow = ss.getLastRow();
var c1=c2=c3=co1=co2=co2=3; //starting row for all columns
var values = ss.getRange(3,14,lastrow,3).getValues();
for(c1=3;c2<values.length;c1++)
 for(c2=3;c2<values.length;c2++)
  for(c3=3;c3<values.length;c3++) {
   if(values[c1]<[c2] && [c1]<[c3])
     ss.getRange(c1, 14, 1).setFontColor('blue');
   elseif(values[c2]<[c1] && [c2]<[c3]) 
     ss.getRange(c1, 15, 1).setFontColor('blue');
   elseif(values[c3]<[c1] && [c3]<[c2]) 
     ss.getRange(c1, 16, 1).setFontColor('blue');
 }
}

上面的代码旨在检查每行的三列,并将最低的数字设为蓝色。当我运行代码时,它适用于某些行,但对其他行完全关闭。有时它会染成两排。

我首先想要的是能够比较每一行的价格,然后只为最低价格着色,然后找出如何清除单元格。

1 个答案:

答案 0 :(得分:0)

目前还不清楚你想做什么,但如果我正确理解你的问题,你想要连续添加所有单元格并找到结果最大的行。

无论如何,下次发布你的代码示例;)

那我该做什么:

function adding() {
  var sheet = SpreadsheetApp.openById(ID_of_your_spreadsheet); //Your original spreadsheet

  var data = sheet.getDataRange().getValues();
  for (var i=0; i<data.length; i++){
    //first column will be empty for results
    var first = data[i][1];
    var second = data[i][2];
    //etc...

    var resoult = first + second;
    var cell = sheet.getRange("A"+(i+1)); //Empty column for resoults
    cell.setValue(resoult);
  }
}

function clearing_and_comparing(){
  var sheet = SpreadsheetApp.openById(ID_of_your_spreadsheet); //Your original spreadsheet

  var data = sheet.getDataRange().getValues();

  for(var i=0; i<data.length; i++){
    var result1 = data[1][0];
    var result2 = data[2][0];

    if(result1>result2){
      sheet.deleteRow(2);
    }else{
      sheet.deleteRow(1);
    }
  }
}

但我不确定这是不是你想要的。 (抱歉英语不好:D)