繁体   English   中英

谷歌工作表 =indirect() 在单元格范围内

[英]google sheets =indirect() on range of cells

我想知道是否有一个标准函数来循环一系列单元格并对其应用间接函数。 我正在尝试构建一个表来按商店、月份和类别支付我的费用,但到目前为止还很难扩展,因为我有一个看起来像

=INDIRECT(""&$B$3&"!"&concat(A12,$C$1))+INDIRECT(""&$B$4&"!"&concat(A12,$C$1))+INDIRECT(""&$B$5&"!"&concat(A12,$C$1))+INDIRECT(""&$B$6&"!"&concat(A12,$C$1))

其中 B3:B7 是我的商店,阅读起来会容易得多:

=forEach(B3:B7, INDIRECT(""& B3:B7 &"!"&concat(A12,$C$1)))

或类似的东西。

我尝试过使用 arrayFormula,但在这种情况下不起作用,因为我不是试图在 2 个相同大小的范围上应用函数,而是在要查找的单个值范围内

简洁的问题:是否有现有的功能,还是我必须尝试自己编写代码?

我为我的特定问题找到了一个非常用例特定的解决方案。 发帖是为了完整性,但仍然想知道其他人是否有更好的东西。

function indirectLoop(range, cellReference) {
  var currentCell = SpreadsheetApp.getActiveSheet().getActiveCell();
  var numberOfStores = range.length;

  var total = 0;

  var debugString = "";
  var currentStore;
  var storeSheet;
  var storeCell;
  for (var i = 0; i < numberOfStores; i++) {
    currentStore = range[i];
    storeSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(currentStore);
    storeCell = storeSheet.getRange(cellReference);

    total = total + storeCell.getValue();
    //debugString += currentStore + ":" + storeCell.getValue() + "- ";

  }
  return(total);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM