gpt4 book ai didi

javascript - 如果单元格为空,则引用同一行中其他列的另一个单元格

转载 作者:行者123 更新时间:2023-12-02 17:58:31 25 4
gpt4 key购买 nike

我想在 G 列中执行此操作:例如,如果单元格“G8”为空白,则 (=K8)。我的困难是引用 G 中空单元格 K 中的同一行。

enter image description here

我尝试过改编这个脚本,但在某些时候我得到了转变,但我不知道为什么。

function updatewithformula() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet 1');
var range = sheet.getDataRange()
var source = sheet.getRange('G1:G13').getDisplayValues()
var index = []
for (var i = 1; i<source.length; i++){
if (source[i][0] == ""){
index.push(i+1)
}
}
index.push(range.getLastRow()+1)
Logger.log(index)
for(var i = 0;i<index.length-1;i++){
var rangetomodify = sheet.getRange(index[i],7,1,1)
var l = index[i+1]-index[i]-1
rangetomodify.setFormulaR1C1("=R["+l+"]C[4]")
}

}

最佳答案

作为另一种方法,下面的修改如何?

修改点:

  • 关于我尝试改编此脚本,但在某些时候我得到了转变,但我不知道为什么。,在您的脚本中,"=R[ "+ l + "]C[4]"var l = index[i + 1] - index[i] - 1 一起使用。在这种情况下,当l不为0时,使用另一行。我认为这可能是您问题的原因。在您的脚本中,我认为不需要使用 var l = index[i + 1] - index[i] - 1。当你的脚本被简单修改后,就变成了如下。

    function updatewithformula() {
    var ss = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = ss.getSheetByName('Sheet 1');
    var range = sheet.getDataRange();
    var source = sheet.getRange('G1:G13').getDisplayValues();
    var index = [];
    for (var i = 1; i < source.length; i++) {
    if (source[i][0] == "") {
    index.push(i + 1);
    }
    }
    index.push(range.getLastRow() + 1);
    for (var i = 0; i < index.length - 1; i++) {
    var rangetomodify = sheet.getRange(index[i], 7, 1, 1);
    rangetomodify.setFormulaR1C1("=R[0]C[4]");
    }
    }
  • 但是,在本例中,getRangesetFormulaR1C1 在循环中使用。在这种情况下,工艺成本会变高。

当你的脚本通过降低流程成本进行修改时,下面的修改如何?

修改后的脚本:

function updatewithformula() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Sheet 1');
var source = sheet.getRange('G2:G13').getDisplayValues();
var ranges = source.reduce((ar, [g], i) => {
if (!g) ar.push(`G${i + 2}`);
return ar;
}, []);
sheet.getRangeList(ranges).setFormulaR1C1("=R[0]C[4]");
}
  • 通过RangeList,可以降低一点处理成本。

引用文献:

关于javascript - 如果单元格为空,则引用同一行中其他列的另一个单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75029567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com