Google 最后一个条件单元格之后的工作表总和
Google Sheets sum after last criteria cell
找不到这方面的任何东西,我的大脑一直在寻找面向对象的解决方案,据我所知,这里无法实现。
a
b
1
10
2
11
-3
10
4
11
5
13
我有一个包含以下数据的 google sheet,我想弄清楚如何获取 b 列值的总和,但仅限于最后一个已知负数之后的那些值a.
列
IE:公式应该给出 11 和 13 = 24 的总和,因为只有 4 和 5 是最后一个已知负数之后的正数。
试试这个:
=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"))
封装在ARRAYFORMULA
中获取结果。
示例:
我可以通过 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 表中找到了脚本。
希望这对人们有所帮助!
找不到这方面的任何东西,我的大脑一直在寻找面向对象的解决方案,据我所知,这里无法实现。
a | b |
---|---|
1 | 10 |
2 | 11 |
-3 | 10 |
4 | 11 |
5 | 13 |
我有一个包含以下数据的 google sheet,我想弄清楚如何获取 b 列值的总和,但仅限于最后一个已知负数之后的那些值a.
列IE:公式应该给出 11 和 13 = 24 的总和,因为只有 4 和 5 是最后一个已知负数之后的正数。
试试这个:
=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"))
封装在
ARRAYFORMULA
中获取结果。
示例:
我可以通过 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 表中找到了脚本。
希望这对人们有所帮助!