在当前的Google表格书籍中(在主标签上,名称为“母版”),该公式当前位于E列中,从第3行开始,一直到表格末尾。
=IFS(V3="","",AND(V3<>"", AJ3=""),"Needs Invoice"
,AND(AJ3<>"", AM3=""),"Payment Due",AI3<>AN3,"Partial Payment Due",AI3=AN3,"Paid")
为清楚起见:
这可以满足我的需要,但是我宁愿将此脚本作为填充E列并在编辑V列,AI列,AJ列,AM列或AN列(上面使用的列)上运行的脚本式)。
我不知道如何开始,因为它已经超出了我的技能水平。任何帮助都会很棒!
答案 0 :(得分:0)
function ifToScript() {
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('Master');
var rg=sh.getDataRange();
var vA=rg.getValues();
for(var i=0;i<vA.length;i++) {
if(!vA[i][21]) {
vA[i][4]='';
}
if(vA[i][21] && !vA[i][35]) {
vA[i][4]="Needs Invoice";
}
if(vA[i][35] && !vA[i][38]) {
vA[i][4]="Payment Due";
}
if(vA[i][34] && vA[i][39] && vA[i][34]!=vA[i][39]) {
vA[i][4]="Partial Payment Due";
}
if(vA[i][34] && vA[i][39] && vA[i][34]==vA[i][39]) {
vA[i][4]="Paid";
}
}
rg.setValues(vA);
}
尝试使用以下onEdit()
格式。注意:vA.length将始终为1。
function onEdit(e) {
var ss=e.source;
var rg=e.range;
var sh=e.range.getSheet();
var col=e.range.columnStart;
var row=e.range.rowStart;
var colA=[22,35,36,39,40]
if(sh.getName()!='Master'){return;}
if(colA.indexOf(col)>-1 && sh.getName()=='Master'){
var rg=sh.getRange(e.range.rowStart,1,1,40);
var vA=rg.getValues();
for(var i=0;i<vA.length;i++) {
if(!vA[i][21]) {
vA[i][4]='';
}
if(vA[i][21] && !vA[i][35]) {
vA[i][4]="Needs Invoice";
}
if(vA[i][35] && !vA[i][38]) {
vA[i][4]="Payment Due";
}
if(vA[i][34] && vA[i][39] && vA[i][34]!=vA[i][39]) {
vA[i][4]="Partial Payment Due";
}
if(vA[i][34] && vA[i][39] && vA[i][34]==vA[i][39]) {
vA[i][4]="Paid";
}
}
rg.setValues(vA);
}
}