SUMOR与XOR条件的数据对
我在绞尽脑汁谈论如何做到这一点,经过多次使用SUMIF,arrays,SUMPRODUCT的试验后,我无法接近任何解决scheme,所以我希望有人可以协助。
鉴于下面的数据,我想有一个总和在每周“每周”列的底部总计了每周的第一列的每个项目的价值。 值得注意的是,它只应该计算每个项目的价值,如果它们可用(但从来都不是),则通过采取实际或预测。 如果两者都可用,实际值应该用于预测值。
最下面的一行显示了每列的正确总数,我希望有一个公式可以计算出来。
请注意,由于工作表的结构,我需要这样做没有帮手列和项目可能并不总是以正确的顺序(即它可以去实际,预测,实际,预测)添加。 此外,将有多达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
我不相信这完全可以用公式和辅助列来完成。 我想出了一个使用公式和只有一个帮助列的解决scheme。
鉴于表格是这样设置的…
…您需要执行以下操作:
- Enter
=OR(COUNTIF(A$2:A$7,A2)=1,B2="Actual")
到I2 - 复制公式以涵盖所有项目
- 在C9中input
=SUMIF($I2:$I7,TRUE,C2:C7)
- 复制公式到右边来覆盖所有星期
I2中的公式计算与当前项目匹配的项目数量。 如果总共有一个或者总共有两个,但是当前的是“实际”,那么它置为TRUE
,否则置为FALSE
。 (我在这里假设你只有一个“预测”和一个“实际”每个项目,如果不是这样,请让我知道)。
有了这个帮助栏, SUMIF
公式就相当简单了 – 它只是将那一周在第一列中有TRUE
值的值加起来。
助理专栏在单独的工作表上
如果您绝对不能在Sheet1上放置帮助器公式(或者您的工作表名称),则可以添加一个新工作表(Sheet2),然后将帮助器列放在该工作表上。 在这种情况下,您需要执行以下操作:
- input
=OR(COUNTIF(Sheet1!A$2:A$7,Sheet1!A2)=1,Sheet1!B2="Actual"))
到工作表2,A2(用Sheet1replace现有工作表的名称) - 复制公式以涵盖所有项目
- input
=SUMIF(Sheet2!$A2:$A7,TRUE,C2:C7)
到C9中(使用新工作表的名称replaceSheet2) - 复制公式到右边来覆盖所有星期
这应该没有帮手列。
=SUMPRODUCT((COUNTIFS($A$2:$A$5,$A$2:$A$5,C2:C5,"")+($B$2:$B$5="Actual")>0)*1,C2:C5)
用Ctrl + Alt + Enter确认
这是Week1的公式,即单元格C7。