什么公式可以让我根据不同单元格的数据完成某些 SUM?

What formula will allow me to complete certain SUMs depending on the data of a different cell?

这是一年内交易盈亏的价差示例sheet。

我正在尝试获取 sheet MONTHLY STATS - SPREADS 上的单元格 I6 来填充 0 如果没有 L 可以计算1 Mar 2131 Mar 21 的日期 sheet SPREADS LOG.

但我只希望此 0 在单元格 H6 中存在数据时填充。如果 H6 中没有数据,我希望 I6 为空白。 (请注意,我无法使用数字格式将这些 0 隐藏在单元格 I6 中,因为我稍后会尝试在 sheet 中对完整的 I 列进行平均)

在执行此单元格时 I6 还必须能够 运行 下面显示的 COUNTIFSSUM 公式。

重要说明:这也必须以相反的方式工作。例如如果日期之间没有 W,一旦数据被放入 LOST 列,我希望在 WON 列中填充 0

这是我目前在单元格 I6 中使用的公式:

=IF(H6="", "",IF(COUNTIFS('SPREADS LOG'!P:P,"L",'SPREADS LOG'!R:R,">="&DATE(2021,3,1),'SPREADS LOG'!R:R,"<="&DATE(2021,3,31)),COUNTIFS('SPREADS LOG'!P:P,"L",'SPREADS LOG'!R:R,">="&DATE(2021,3,1),'SPREADS LOG'!R:R,"<="&DATE(2021,3,31)),"0"))

如果有人可以对此进行调整或提出修改建议,那就太好了。

这里有一个公式可以满足您的需求。

单元格 H6:

=LET(LOSSES,COUNTIFS('SPREADS LOG'!$P:$P,"L",'SPREADS LOG'!$R:$R,">="&$A6,'SPREADS LOG'!$R:$R,"<="&EDATE($A6,1)),WINS,COUNTIFS('SPREADS LOG'!$P:$P,"W",'SPREADS LOG'!$R:$R,">="&$A6,'SPREADS LOG'!$R:$R,"<"&EDATE($A6,1)),IF(AND(LOSSES=0,WINS=0),"",WINS))

单元格 I6:

=LET(LOSSES,COUNTIFS('SPREADS LOG'!$P:$P,"L",'SPREADS LOG'!$R:$R,">="&$A6,'SPREADS LOG'!$R:$R,"<="&EDATE($A6,1)),WINS,COUNTIFS('SPREADS LOG'!$P:$P,"W",'SPREADS LOG'!$R:$R,">="&$A6,'SPREADS LOG'!$R:$R,"<"&EDATE($A6,1)),IF(AND(LOSSES=0,WINS=0),"",LOSSES))

使用空字符串 "" 而不是 0 非常适合从 SUMCOUNTIFS 公式中排除单元格而不破坏它们。

请注意,您不能使用其他单元格的值来决定是否填充 0 值,因为这会产生循环引用。

没有LET的版本:

单元格 H6:

=IF(AND(COUNTIFS('SPREADS LOG'!$P:$P,"L",'SPREADS LOG'!$R:$R,">="&$A6,'SPREADS LOG'!$R:$R,"<"&EDATE($A6,1))=0,COUNTIFS('SPREADS LOG'!$P:$P,"W",'SPREADS LOG'!$R:$R,">="&$A6,'SPREADS LOG'!$R:$R,"<"&EDATE($A6,1))=0),"",COUNTIFS('SPREADS LOG'!$P:$P,"W",'SPREADS LOG'!$R:$R,">="&$A6,'SPREADS LOG'!$R:$R,"<"&EDATE($A6,1)))

单元格 I6:

=IF(AND(COUNTIFS('SPREADS LOG'!$P:$P,"L",'SPREADS LOG'!$R:$R,">="&$A6,'SPREADS LOG'!$R:$R,"<"&EDATE($A6,1))=0,COUNTIFS('SPREADS LOG'!$P:$P,"W",'SPREADS LOG'!$R:$R,">="&$A6,'SPREADS LOG'!$R:$R,"<"&EDATE($A6,1))=0),"",COUNTIFS('SPREADS LOG'!$P:$P,"L",'SPREADS LOG'!$R:$R,">="&$A6,'SPREADS LOG'!$R:$R,"<"&EDATE($A6,1)))

这些公式假设您的 A 列中的日期包含日期值(例如 01.03.2021 代表三月)并且使用自定义格式。这使您可以简单地复制整个列的公式,而无需手动更改日期。我强烈推荐这种方法,因为它与您当前的方法相比没有任何缺点,但是当您将其添加到您的自动化库中时,它具有潜在的巨大优势。如果您决定坚持自己的方法,则需要更改 COUNTIFS.

中的条件

已编辑,因为我误解了问题并提供了错误的答案。