在 Google 表格中连接两个范围

Phr*_*ogz 4 google-sheets google-apps-script

tl;dr:如何使两个范围作为一个函数的参数出现?例如,我想查看 E 列​​中E5之外的每个单元格:
=MY_FUNCTION( somehowjoin( E1:E4, E6:E ) )

背景
我正在 Google 表格中编写项目跟踪器,例如 Microsoft Project。我在 Google Sheets中有一个自定义函数,它允许我通过查看它所依赖的所有任务的最大结束日期来计算各种任务的开始日期:

=MAX_LOOKUP( G9, A:A, I:I )
Run Code Online (Sandbox Code Playgroud)

但是,此任务的结束日期将根据开始日期计算,并且该结束日期位于包含所有检查结束日期的列中。结果,我有一个循环依赖。 在此处输入图片说明

因此,我想为每一行编写我的公式以跳过当前行,例如:

=MAX_LOOKUP( G9, A1:A8 + A10:A, I1:I8 + I10:I )
Run Code Online (Sandbox Code Playgroud)

FWIW 我目前的解决方法是重写自定义函数的签名,如下所示:

=MAX_LOOKUP_SKIPROW( G9, ROW(), "A", "I" )
Run Code Online (Sandbox Code Playgroud)

并使用以下方法手动构建该函数内的两个范围:

=MAX_LOOKUP( G9, A:A, I:I )
Run Code Online (Sandbox Code Playgroud)

这是一个功能性的解决方案,但使该功能更具特殊用途。我不认为这是对加入范围这个更普遍的问题的“答案”。

Rub*_*bén 6

简答

创建您自己的数组并将它们用作自定义函数的参数。

解释

在 Google Sheets 中,用户可以通过将元素包含在括号中来创建自己的数组。

代替

=MY_FUNCTION( somehowjoin( E1:E4, E6:E ) )
Run Code Online (Sandbox Code Playgroud)

=MY_FUNCTION({E1:E4;E6:E})
Run Code Online (Sandbox Code Playgroud)

参考

在 Google 表格中使用数组 - Google 文档编辑器帮助