找不到任何東西,我的大腦一直在尋找面向物件的解決方案,據我所知,這里無法實作。
| 一個 | 乙 |
|---|---|
| 1 | 10 |
| 2 | 11 |
| -3 | 10 |
| 4 | 11 |
| 5 | 13 |
我有一個包含以下資料的谷歌表,我想弄清楚如何獲得 b 列值的總和,但僅適用于 a 列中最后一個已知負數之后的那些值。
即:公式應該給我 11 和 13 = 24 的總和,因為只有 4 和 5 是最后一個已知負數之后的正數。
uj5u.com熱心網友回復:
試試這個:
=ARRAYFORMULA(SUM(INDIRECT("B"&MATCH(LOOKUP(9^9,IF(A1:A<0,A1:A)),A1:A,0) 1&":B")))
零散地看這個公式:
查找范圍內的最后一個負數:
LOOKUP(9^9,IF(A1:A<0,A1:A))找到它在范圍內的位置并加 1 以獲得下一個位置:
MATCH(<formula in step 1>),A1:A,0) 1使用間接建立總和范圍。
SUM(INDIRECT("B"&<formula in step 2>&":B"))封裝 in
ARRAYFORMULA以檢索結果。
例子:

uj5u.com熱心網友回復:
我能夠使用Apps Scripts創建自定義函式來解決這個問題。
該功能非常基礎。
function sumFromLastNeg(data) {
var run_sum = 0;
for (var i = 0; i < data.length; i ) {
if (data[i][0] >= 0){
run_sum = data[i][1];
}
else if (data[i][0] < 0){
run_sum = 0;
}
}
return run_sum;
}
函式是這樣呼叫的 =sumFromLastNeg(A1:B)
我最初的想法是我無法做到這一點,但是通過尋找解決方案,我在 google 表格中找到了腳本。
希望這可以幫助人們!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/392671.html
上一篇:行的連接塊
