我是google appscript的新手,我遇到了一个问题,我现在已经找不到解决方案了。
使用appscript,我试图做一个累积值的当前格式为%格式(使用.setNumberFormat(“0.00%;(0.00)%”))。见下面的截图:
我目前拥有的代码 `
function TTMrankAnalysis() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var yourNewSheet = ss.getSheetByName("TTM Rank Analysis");
var lr = yourNewSheet.getLastRow();
var lc = yourNewSheet.getLastColumn();
var cogsTotal = ss.getSheetByName("TTM_Report_Paste").getRange(6, 2).getValue(); //total COGS
Logger.log(cogsTotal);
var cogsValuesRange = yourNewSheet.getRange(2,3,lr-1).getValues(); //cogs range
Logger.log(cogsValuesRange);
for(var i=0; i<cogsValuesRange.length; i++){
var d = cogsValuesRange[i];
var percentCogs = d/cogsTotal
Logger.log(percentCogs);
var cogsPasteRange = yourNewSheet.getRange(i+2, lc-1)
var cogsPercentagePaste = cogsPasteRange.setValue(percentCogs); //sets %cogs from high to low
cogsPercentagePaste.setNumberFormat("0.00%;(0.00)%");
};
yourNewSheet.getRange(2,3,lr-1).setNumberFormat("$#,##0.00;$(#,##0.00)"); //sets $$$ symbol for shipped cogs
//for cumulative % of COGS
var cogsPercentageValues = yourNewSheet.getRange(2, lc-1, lr-1).getValues();
Logger.log(cogsPercentageValues);
var sum = 0;
for (var i=0;i<cogsPercentageValues.length; i++) {
sum+=cogsPercentageValues[i];
Logger.log(sum);
var cumulativeCogsPasteRange = yourNewSheet.getRange(i+2, lc)
var cumulativeCogsPercentagePaste = cumulativeCogsPasteRange.setValue(percentCogs); //sets %cogs from high to low
};
}
请注意,我已经包含了用于实现Col E中存在的值的代码,只是为了确保流程没有被破坏。
答案 0 :(得分:0)
尝试这样的事情:
function sumEF() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var rg=sh.getRange('E1:F5');
var vA=rg.getValues();
for(var i=0;i<vA.length;i++){
if(i==0){
vA[i][1]=vA[i][0];
}else{
vA[i][1]=vA[i-1][1]+vA[i][0];
}
}
rg.setValues(vA);
}