tl; dr:如何讓兩個範圍作爲函數的參數出現?例如,我想看看在E列的每一個細胞,除了 E5:
=MY_FUNCTION(somehowjoin(E1:E4, E6:E))
在Google表格中連接兩個範圍
背景
我寫在谷歌表項目跟蹤器,如微軟項目。我有一個custom function in Google Sheets,讓我通過看的,它取決於所有任務的最大結束日期來計算各種任務的開始日期:
=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")
和手動構建塔內的兩個範圍採用t函數:
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();
這是一個功能性的解決方案,但使功能更特殊的目的。我不認爲這是對這個更加普遍的加入範圍問題的「回答」。
我寧願不重寫我的自定義函數接受多個參數,不過當然這是一個潛在可能。 – Phrogz
我認爲'indirect()'和'row()'的組合可以幫助您構造排除當前行的範圍。沒有? – Marc
@Marc據我所知,並不是一個單一的論點。我錯了嗎?對於不連續的範圍是否有A1或R1C1語法? – Phrogz