如果唯一值在 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))

工作原理:

  1. C2:C8 - 要求和的值
  2. --(A2:A8="FEBRUARY") 10 匹配月份
  3. --(COUNTIFS(A2:A8,A2:A8,B2:B8,B2:B8,D2:D8,"Waiting")=0) - 10 完全结算代码
    3.1. COUNTIFS(A2:A8,A2:A8,B2:B8,B2:B8,D2:D8,"Waiting") - 每个月和代码的计数,有多少人在等待。
    3.2 COUNTIFS(...) = 0- TrueFalse for count = 0
    3.3 --(...) - 将 True/False 变成 1/0