什么公式可以让我根据不同单元格的数据完成某些 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 21
和 31 Mar 21
的日期 sheet SPREADS LOG
.
但我只希望此 0
在单元格 H6
中存在数据时填充。如果 H6
中没有数据,我希望 I6
为空白。 (请注意,我无法使用数字格式将这些 0
隐藏在单元格 I6
中,因为我稍后会尝试在 sheet 中对完整的 I
列进行平均)
在执行此单元格时 I6
还必须能够 运行 下面显示的 COUNTIFS
和 SUM
公式。
重要说明:这也必须以相反的方式工作。例如如果日期之间没有 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
非常适合从 SUM
和 COUNTIFS
公式中排除单元格而不破坏它们。
请注意,您不能使用其他单元格的值来决定是否填充 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
.
中的条件
已编辑,因为我误解了问题并提供了错误的答案。
我正在尝试获取 sheet MONTHLY STATS - SPREADS
上的单元格 I6
来填充 0
如果没有 L
可以计算1 Mar 21
和 31 Mar 21
的日期 sheet SPREADS LOG
.
但我只希望此 0
在单元格 H6
中存在数据时填充。如果 H6
中没有数据,我希望 I6
为空白。 (请注意,我无法使用数字格式将这些 0
隐藏在单元格 I6
中,因为我稍后会尝试在 sheet 中对完整的 I
列进行平均)
在执行此单元格时 I6
还必须能够 运行 下面显示的 COUNTIFS
和 SUM
公式。
重要说明:这也必须以相反的方式工作。例如如果日期之间没有 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
非常适合从 SUM
和 COUNTIFS
公式中排除单元格而不破坏它们。
请注意,您不能使用其他单元格的值来决定是否填充 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
.
已编辑,因为我误解了问题并提供了错误的答案。