如何对Excel中过滤范围内的负数求和

问题描述 投票:0回答:1

我的数据在单列中包含负数。

为了对列中的负数求和,我使用以下公式。

=SUMIF(Total Range,"<0")

如果范围被过滤,我还需要包括负数之和。有点像使用下面的,但添加了“<0".

=SUBTOTAL(9,Total Range)

”的条件

我尝试使用 SUMIFS,但没有可用的标准来判断调用是否可见。有什么建议么?我被限制使用VBA,并且无法添加辅助列(我想过创建一个辅助列将所有正数转换为0然后使用小计,该提案被拒绝,因为数据集上的附加列可能会导致其他问题) .

提前谢谢您。

excel excel-formula
1个回答
0
投票
=SUM(IF(SUBTOTAL(103, OFFSET(Total Range, ROW(Total Range) - MIN(ROW(Total Range)),,1)), IF(Total Range<0, Total Range, 0), 0))

公式背后的逻辑是,

  1. OFFSET(Total Range, ROW(Total Range) - MIN(ROW(Total Range)),,1) 创建一个数组,该数组单独引用 Total Range 中的每个单元格。
  2. SUBTOTAL(103, ...) 返回一个由 1 和 0 组成的数组,其中 1 代表可见单元格,0 代表隐藏单元格。
  3. 外部 IF 语句检查 Total Range 中每个单元格的值是否为负数,如果是,则将其包含在总和中。
© www.soinside.com 2019 - 2024. All rights reserved.