将多个范围汇总为Excel中的条件语句

时间:2014-01-20 14:15:13

标签: excel vba conditional

我试图避免使用VBA,如果这是可能的,我当然认为它是!

如果满足某个条件,我目前正在尝试总结一个范围。当范围有限且很小时,我的功能起作用,但当我包含实际所需的范围时,我的功能不起作用。以下是一些代码片段:

=SUMIF(B13:M13,P23, B15:M15)   

如果B13和M13与P23之间存在任何匹配,则该功能当前从B15到M15相加。它就像一个魅力。如果B13和M13之间存在差异,那么只会对匹配进行求和,这正是我想要它做的。

我希望它涵盖更广泛的范围,所以我改变了我的公式如下:

=SUMIF(B13:M13:B32:M32:B51:M51,P23, B15:M15:B34:M34:B53:M53)

我希望它能像以前那样做同样的事情。我希望它分析B13:M13以及B32:M32以及B51:M51并将其与P23进行比较。如果有匹配,我希望它总和B15:M15以及B34:M34以及B53:M53。如果有不匹配,我希望它们被省略,就像我之前的函数中的情况一样。

谁能告诉我我的配方有什么问题?

1 个答案:

答案 0 :(得分:2)

实际上,您的公式=SUMIF(B13:M13:B32:M32:B51:M51,P23, B15:M15:B34:M34:B53:M53)会转换为=SUMIF(B13:M51,P23, B15:M53)(例如,您可以使用“公式”功能区中的“评估公式”工具或输入单元格B18值来检查它, euqals为P23,另一个值为B20 - 您的公式会将B20的值添加到结果中。并且它不会计算属性,因为您在B16:M33, B35:M52

中有一些文本值

因此,您可以使用以下公式:

=SUMPRODUCT((B13:M13=P23)*(B15:M15)+(B32:M32=P23)*(B34:M34)+(B51:M51=P23)*(B53:M53))

以下是评估公式的结果=SUMIF(B13:M13:B32:M32:B51:M51,P23, B15:M15:B34:M34:B53:M53)):

enter image description here


enter image description here


enter image description here


enter image description here