如果唯一值在 Excel 中不处于相同状态,则在 sumifs 中排除添加
Exclude addition in sumifs if unique value is not in the same status in Excel
我正在尝试获取以下数据的总和,但我一直在制定逻辑。基本上,我想要得到的是每月 已结算 金额 的总和。我已经使用 SUMIFS 完成了这项工作。但是,我希望能够考虑代码列。请参阅下面的示例数据。
MONTH |CODE |CONTRIBUTION|STATUS
JANUARY |CS-111|500 |Settled
JANUARY |CS-121|500 |Settled
FEBRUARY|CS-131|200 |Settled
FEBRUARY|CS-131|200 |Waiting
FEBRUARY|CS-141|300 |Settled
MARCH |CS-151|400 |Waiting
MARCH |CS-161|700 |Settled
请查看二月份的数据。我们有两个代码,CS-131 和 CS-141。对于 CS-131,只有第一个条目被结算,而第二个条目正在等待。对于 CS-141 的唯一条目,状态已确定。鉴于此,我希望公式忽略计算 CS-131 的金额,因为两个条目都未结算但继续添加 CS-141 的金额,因为它已结算。
到目前为止,这是我的公式。
=SUMIFS($C:$C, $A:$A,"February", $D:$D, "Settled")
知道我可以在其中加入什么样的功能吗?
如果之前有人问过这个问题,我们深表歉意。提前谢谢你。
如果我理解你的数据并且问题正确,那么你可以用 "waiting".
减去总和
=SUMIFS($C:$C, B2:B8,"CS-131", $A:$A,"February", $D:$D, "Settled")-SUMIFS($C:$C, B2:B8,"CS-131", $A:$A,"February", $D:$D, "Waiting")
如果有等待,则从结算金额中减去该金额,结果为 0。
如果你想使负数为 0,因为没有结算,只能等待,那么你可以用 max() 包裹 sumifs()-sumifs()。
=MAX(0,SUMIFS($C:$C, B2:B8,"CS-131", $A:$A,"February", $D:$D, "Settled")-SUMIFS($C:$C, B2:B8, "CS-131", $A:$A,"February", $D:$D, "Waiting"))
如果结果为负则显示 0,否则显示总和。
编辑:添加了它应该只求和 "CS-131" 的条件。它在公式中进行了硬编码,但很容易成为单元格引用。
切换到 SUMPRODUCT
'
=SUMPRODUCT(C2:C8,--(A2:A8="FEBRUARY"),--(COUNTIFS(A2:A8,A2:A8,B2:B8,B2:B8,D2:D8,"Waiting")=0))
工作原理:
C2:C8
- 要求和的值
--(A2:A8="FEBRUARY")
1
或 0
匹配月份
--(COUNTIFS(A2:A8,A2:A8,B2:B8,B2:B8,D2:D8,"Waiting")=0)
- 1
或 0
完全结算代码
3.1. COUNTIFS(A2:A8,A2:A8,B2:B8,B2:B8,D2:D8,"Waiting")
- 每个月和代码的计数,有多少人在等待。
3.2 COUNTIFS(...) = 0
- True
或 False
for count = 0
3.3 --(...)
- 将 True
/False
变成 1
/0
我正在尝试获取以下数据的总和,但我一直在制定逻辑。基本上,我想要得到的是每月 已结算 金额 的总和。我已经使用 SUMIFS 完成了这项工作。但是,我希望能够考虑代码列。请参阅下面的示例数据。
MONTH |CODE |CONTRIBUTION|STATUS
JANUARY |CS-111|500 |Settled
JANUARY |CS-121|500 |Settled
FEBRUARY|CS-131|200 |Settled
FEBRUARY|CS-131|200 |Waiting
FEBRUARY|CS-141|300 |Settled
MARCH |CS-151|400 |Waiting
MARCH |CS-161|700 |Settled
请查看二月份的数据。我们有两个代码,CS-131 和 CS-141。对于 CS-131,只有第一个条目被结算,而第二个条目正在等待。对于 CS-141 的唯一条目,状态已确定。鉴于此,我希望公式忽略计算 CS-131 的金额,因为两个条目都未结算但继续添加 CS-141 的金额,因为它已结算。
到目前为止,这是我的公式。
=SUMIFS($C:$C, $A:$A,"February", $D:$D, "Settled")
知道我可以在其中加入什么样的功能吗?
如果之前有人问过这个问题,我们深表歉意。提前谢谢你。
如果我理解你的数据并且问题正确,那么你可以用 "waiting".
减去总和=SUMIFS($C:$C, B2:B8,"CS-131", $A:$A,"February", $D:$D, "Settled")-SUMIFS($C:$C, B2:B8,"CS-131", $A:$A,"February", $D:$D, "Waiting")
如果有等待,则从结算金额中减去该金额,结果为 0。
如果你想使负数为 0,因为没有结算,只能等待,那么你可以用 max() 包裹 sumifs()-sumifs()。
=MAX(0,SUMIFS($C:$C, B2:B8,"CS-131", $A:$A,"February", $D:$D, "Settled")-SUMIFS($C:$C, B2:B8, "CS-131", $A:$A,"February", $D:$D, "Waiting"))
如果结果为负则显示 0,否则显示总和。
编辑:添加了它应该只求和 "CS-131" 的条件。它在公式中进行了硬编码,但很容易成为单元格引用。
切换到 SUMPRODUCT
'
=SUMPRODUCT(C2:C8,--(A2:A8="FEBRUARY"),--(COUNTIFS(A2:A8,A2:A8,B2:B8,B2:B8,D2:D8,"Waiting")=0))
工作原理:
C2:C8
- 要求和的值--(A2:A8="FEBRUARY")
1
或0
匹配月份--(COUNTIFS(A2:A8,A2:A8,B2:B8,B2:B8,D2:D8,"Waiting")=0)
-1
或0
完全结算代码
3.1.COUNTIFS(A2:A8,A2:A8,B2:B8,B2:B8,D2:D8,"Waiting")
- 每个月和代码的计数,有多少人在等待。
3.2COUNTIFS(...) = 0
-True
或False
for count = 0
3.3--(...)
- 将True
/False
变成1
/0