tl; dr:如何使两个范围作为一个函数的参数显示为一个?例如,我要查看E5列中除E5之外的每个单元格:
=MY_FUNCTION( somehowjoin( E1:E4, E6:E ) )
背景信息
我正在Google表格中编写项目跟踪器,例如Microsoft Project。我在Google表格中有一个自定义函数,可通过查看该函数所依赖的所有任务的最大终止日期来计算各种任务的起始日期:
=MAX_LOOKUP( G9, A:A, I:I )
但是,然后根据开始日期计算该任务的结束日期,并且该结束日期在包含所有结束日期的列中。结果,我有一个循环依赖。
因此,我想为每行写一个公式以跳过当前行,例如:
=MAX_LOOKUP( G9, A1:A8 + A10:A, I1:I8 + I10:I )
FWIW我当前的解决方法是重写自定义函数的签名,如下所示:
=MAX_LOOKUP_SKIPROW( G9, ROW(), "A", "I" )
并使用以下命令在该函数中手动构造两个范围:
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var keys1 = sheet.getRange(keyCol+"1:"+keyCol+(skipRow-1)).getValues();
var vals1 = sheet.getRange(valCol+"1:"+valCol+(skipRow-1)).getValues();
var keys2 = sheet.getRange(keyCol+(skipRow+1)+":"+keyCol).getValues();
var vals2 = sheet.getRange(valCol+(skipRow+1)+":"+valCol).getValues();
这是一个功能解决方案,但使功能更加特殊。我不认为这是对加入范围这一更一般性问题的“答案”。
创建您自己的数组,并将其用作自定义函数的参数。
在Google表格中,用户可以通过将其元素放在方括号中来创建自己的数组。
代替
=MY_FUNCTION( somehowjoin( E1:E4, E6:E ) )
使用
=MY_FUNCTION({E1:E4;E6:E})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句