gpt4 book ai didi

google-apps-script - 连接 Google 表格中的两个范围

转载 作者:行者123 更新时间:2023-12-02 20:21:05 25 4
gpt4 key购买 nike

tl;dr:如何使两个范围作为一个函数的参数显示为一个?例如,我想查看 E 列​​中的每个单元格除了 E5:
=MY_FUNCTION( 以某种方式加入( E1:E4, E6:E ) )

背景
我正在 Google Sheets 中编写项目跟踪器,例如 Microsoft Project。我有一个custom function in Google Sheets这使我可以通过查看其所依赖的所有任务的最大结束日期来计算各种任务的开始日期:

=MAX_LOOKUP( G9, A:A, I:I )

但是,该任务的结束日期是根据开始日期计算的,并且该结束日期位于包含所检查的所有结束日期的列中。结果,我产生了循环依赖。 enter image description here

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

=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})

引用文献

Using arrays in Google Sheets - Google docs editors Help

关于google-apps-script - 连接 Google 表格中的两个范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35510298/

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