具有 XOR 条件的 SUMIF 数据对

SUMIF pairs of data with XOR conditional

我绞尽脑汁思考如何做到这一点,在使用 SUMIF、数组、SUMPRODUCT 进行了多次试验后,我无法找到任何解决方案,所以我希望有人能提供帮助。

鉴于下面的数据,我想在每个 "Week" 列的底部有一个总和,该总和是该周第一列中每个项目的值的总和。要注意的是,它应该只计算一次每个项目的价值,如果它们可用,则采用实际值或预测值(但绝不是两者)。如果两者都可用,则应使用实际值而不是预测值。

最后一行表示每列的正确总计以及我想要的计算公式。

请注意,由于 sheet 的结构,我需要在没有辅助列的情况下执行此操作,并且项目可能并不总是以正确的顺序添加(即它可能会变为实际、预测、实际、预测) 。此外,将有多达 50 个独特的项目,所以我真的需要一个适用于许多项目的更通用的公式。

                 Week1  Week2   Week3   Week4   Week5
Item1   Actual    500    0       100    0   
Item2   Actual    400   100             0   
Item1   Forecast  200   200      300             200
Item2   Forecast  100    0                       100

                  900    100     100    0        300

我认为完全使用公式而不使用辅助列是不可能做到这一点的。我想出了一个使用公式和一个辅助列的解决方案。

假设 sheet 是这样设置的...

...您需要执行以下操作:

  • 在 I2 中输入 =OR(COUNTIF(A:A,A2)=1,B2="Actual")
  • 向下复制公式以覆盖所有项目
  • 在C9中输入=SUMIF($I2:$I7,TRUE,C2:C7)
  • 将公式复制到右侧以覆盖所有周

I2中的公式统计了匹配当前项的项数。如果一共是或者一共是两个但是当前是"Actual",那么就放TRUE,否则放FALSE. (我在这里假设您每件商品只有一个 "Forecast" 和一个 "Actual"。如果不是这样,请告诉我。)

有了这个辅助列,SUMIF 公式就非常简单了——它只是将那一周的第 I 列中有 TRUE 的值相加。

单独工作的辅助专栏sheet

如果您绝对不能在 Sheet1(或您的 sheet 的任何名称)上放置辅助公式,您可以添加一个新的 sheet(Sheet2) 并将辅助列放在 sheet 上。在这种情况下,您需要执行以下操作:

  • =OR(COUNTIF(Sheet1!A:A,Sheet1!A2)=1,Sheet1!B2="Actual"))输入Sheet2,A2(将Sheet1替换为您已有的sheet名称)
  • 向下复制公式以覆盖所有项目
  • 在 C9 中输入 =SUMIF(Sheet2!$A2:$A7,TRUE,C2:C7)(将 Sheet2 替换为您的新 sheet 的名称)
  • 将公式复制到右侧以覆盖所有周

这应该在没有辅助列的情况下完成。

=SUMPRODUCT((COUNTIFS($A:$A,$A:$A,C2:C5,"")+($B:$B="Actual")>0)*1,C2:C5)

用 ctrl+alt+enter 确认

这是第 1 周的公式,即单元格 C7。