我在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');
}
}
上面的代码旨在检查每行的三列,并将最低的数字设为蓝色。当我运行代码时,它适用于某些行,但对其他行完全关闭。有时它会染成两排。
我首先想要的是能够比较每一行的价格,然后只为最低价格着色,然后找出如何清除单元格。
答案 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)