我有一张data
张多个尺寸,如下所示:
A B C D E
1 COUNTRY FLAVOUR SIZE DATE SALES ($)
2 Japan Strawberry 100ml 10/12/14 100
3 Japan Banana 100ml 10/03/15 100
4 China Orange 200ml 14/04/15 30
5 France Strawberry 200ml 11/04/15 400
6 UK 200ml 23/04/15 250
7 ....
我希望在日期范围内汇总这些数据,其中summary
工作表具有每个维度(国家/地区和风格),如果我没有指定维度,则会对该维度的所有行进行求和。
A B C
1 COUNTRY FLAVOUR SALES TOTAL
2 Japan Strawberry 100
3 Japan 200
4 Strawberry 500
如果使用SUMPRODUCT或SUMIFS存在所有尺寸(即上面的第2行),我可以这样做:
=SUMPRODUCT((data!A$2:A$100=A1)*(data!B$2:B$100=B1)*(data!D$2:D$100>[start_date]*(data!D$2:D$100<[end_date])*(data!E$2:E$100))
但是,如果输入单元格为空(例如上面的第3行),我无法弄清楚如何包含维度的所有行。我试过了:
OR(data!A$2:A$100=A1,isblank(A1))
)。 +
作为OR语句,(根据此回答https://stackoverflow.com/a/27536131/1450420)一种解决方案是根据存在的摘要维度,使公式具有不同的分支,但如果我将此相同的行为扩展到Size
这样的更多维度,则很快就会失控。
任何帮助表示赞赏!
(我正在运行Excel Mac 2011)。
修改
Per @ BrakNicku的评论我试过的一个公式是=SUMPRODUCT(((data!A$2:A$100=A2)+ISBLANK(A2))*((data!B$2:B$100=B2)+ISBLANK(B2))*(data!E$2:E$100))
这不起作用的原因是有时我的数据有空白属性(上面编辑过)。出于某种原因,此公式会对存在的属性匹配的行(例如data!A6
)进行双重计数,但缺少其他属性(例如data!B6
)。
编辑2
我可以看到为什么会发生这种重复计算,因为+
正在对匹配进行求和,因为data!A$2:A$100=A2
(它们匹配是因为它们都是空白的)和匹配因为ISBLANK(A2)
(它确实是空白的)。问题仍然是如何在不重复计算的情况下实现这一目标。如果需要,解决方法可能是使用一些占位符值填充数据上的所有空白单元格。