有 2 个条件的小计

问题描述

如何对 2 个条件进行小计计数?

例如。根据屏幕截图:

Excel Screenshot

我希望“G”列中“LONG”的小计计数和“Net P/L”应> 0

两个条件都需要满足

=“LONG”和“利润 >0”小计。

解决方法

修改后的答案

基于将过滤器应用于结果的需要,这是对您提供的公式的修改:

=SUM( (Table6[[#All],[LONG/SHORT]]="LONG")*(Table6[[#All],[NET P/L]]>0)*
          (SUBTOTAL(3,OFFSET(Table6[[#Headers],[LONG/SHORT]],ROW(Table6[[#All],[LONG/SHORT]]) - MIN(ROW(Table6[[#All],[LONG/SHORT]] ) ),0) ) ) )

我在条件中添加了 (Table6[[#All],[NET P/L]]>0)*。您可以以相同的方式添加任意数量的附加过滤器。注意:我将 SUMPRODUCT 转换为 SUM,因为 sum 足够了。

如果您使用的是 Excel 2013 或更低版本,则可能需要将其作为数组公式输入。 (CTRL SHIFT ENTER)

这是使用 OTHER 列过滤数据的结果:

result

以前的回答

您可以执行 COUNTIFS 或使用带有布尔条件的 SUM。

=COUNTIFS( V2:V26,">0",G2:G26,"LONG" )

=SUM((V2:V26>0)*(G2:G26="LONG"))

如果您希望它像 SUBTOTAL 一样运行,那么您可以通过强制公式仅查看具有原始数据的单元格来模拟 SUBTOTAL,如下所示:

=SUM((V2:V26>0)*(G2:G26="LONG")*NOT(ISFORMULA( V2:V26 )))

但是如果第 V 列有公式,这将不起作用。

,

试试这个公式:

=SUMPRODUCT((G3:G5000="LONG")*(V3:V5000>0)*SUBTOTAL(103,OFFSET(V2,ROW(V3:V5000)-ROW(V2),)))

SUBTOTAL 中的 103 将排除过滤的行。

这是一个数组公式。将其输入到单元格中,然后按[Ctrl]+[Shift]+[Enter] 创建数组公式。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...