答案1
如果您的数据在单元格 A1:D13 中,看起来与上面显示的数据一样,并且您使用 G2 输入所需的月份,使用 H2 输入所需的项目,则以下公式可以解决问题:
=SUMIFS(D2:D13, B2:B13, "="& G2, C2:C13,"="& H2)
如果您不想输入所需的查找并获取结果,而是想要一个包含所有可能组合的表格,则以下内容将为您完成此操作,而无需弄清楚如何排除某些事物:
=SUMIFS(D2:D13, B2:B13, "="&LEFT( UNIQUE(B2:B13 &"|"& C2:C13), 3),
C2:C13, "="&RIGHT(G5#, LEN(UNIQUE(B2:B13 &"|"& C2:C13))-4) )
由于它仅使用您的数据实际包含的组合,因此您不会发现自己使用所有可能性的列表并排除缺失元素或将其归零。例如,“二月”和“项目 3”不存在。这种方式甚至不必考虑组合,但将所有月份和所有可能的项目编号配对的预设列表会将其包括在内,您必须处理它。
LEFT()
对于这样的输出表可能具有的三列,提取上述公式的和子句部分RIGHT()
,并用这些结果填充输出表的月份和项目列,用整个公式计算的总和将是第 3 列。
由于您使用三个字母的日期缩写,上面的公式会更简单一些,因为您知道月份需要三个字符,而不需要,例如,FIND()
字符|
并将其左侧的所有内容都取下来以获取月份。简单多了!此外,您知道|
是字符四,因此您可以在函数中使用“4”,RIGHT()
而不是使用FIND()
in。同样,简单多了。
缺点?嗯,根据用途,您的用户可能会重视那些带有零或空白的行,以帮助发现没有销售的产品。嗯,任何事情都有好有坏,对吧?您必须根据需要进行选择。包容或排斥(上述)方法本身没有对错之分,只是取决于您的使用设置。
最后的想法:当像这样组合单元格时,您当然可以只使用,A2&B2
但实际内容中的异常可能会导致错误的结果。这主要围绕空格以及结果如何欺骗 Excel。|
在中间放置一些不常用的字符(如),有助于防止出现这些结果。当这些用于比较(如这里)而不是结果时,这一点尤其重要。
另一个“最后的想法”...如果您使用真实日期,只需将它们格式化为“mmm”即可按原样显示,您可以将上述公式的一部分(即函数UNIQUE()
及其内容)包装起来SORT()
,这样您的数据表就不需要排序了,因为排序将在这里完成。但是,如果日期列中有文本条目,“Jan”将排在“Feb”和“Mar”之后,而我们通常不希望这种情况发生。