SumProduct带文本的多个条件

问题描述 投票:-1回答:2

SumProduct

我在左边有银行存折。我想要右边的代码告诉我该月支付“租金”描述的所有时间的总和。我已经尝试过索引,sumproduct和sumif。我找不到按月,年和文本进行搜索的正确方法。

arrays excel product sumifs sumproduct
2个回答
1
投票

尚不清楚表的格式。

SUMIFS是最简单的解决方案,但仅在银行收银机使用Excel日期格式时才有效。如果这些日期的格式设置为文本,则会变得更加复杂]

建立SUMIFS公式以SUM RANGE开始。这是一个可喜的变化,它是从向后的结构转变而来的,错误地命名为SUMIF(如果您问我,它看起来更像是IFSUM

=SUMIFS(SUM RANGE, CRITERIA 1 RANGE, CRITERIA 1, CRITERIA 2 RANGE, CRITERIA 2, CRITERIA 3 RANGE, CRITERIA 3...)

使用您的示例:

  • SUM RANGE,银行寄存器的“借方”列(BankRegisterDebitRange)

  • CRITERIA 1 RANGE,银行注册的'Description'列(BankRegisterDescriptionRange)

  • Criteria 1,字符串“ Rent”

  • Criteria 2 Range,银行注册的'Date'列(BankRegisterDateRange)

  • Criteria 2,此公式字符串">="&EOMONTH(RentTableDate,-1)+1

  • Criteria 3 Range,银行注册的'Date'列(BankRegisterDateRange)

  • [Critera 3,此公式字符串"<="&EOMONTH(RentTableDate,0)

    将它们放在一起:= SUMIFS(BankRegisterDebitRange,BankRegisterDescriptionRange,“ Rent”,BankRegisterDateRange,“ =>”&EOMONTH(RentTableDate,-1)+ 1,BankRegisterDateRange,“ <=”&EOMONTH(RentTableDate,0))

如果您的数据以文本形式删除,那么您需要决定是否要使用帮助器列,或者是否要使用一个公式。如果要使用SUMIFS或使用简单的公式执行其他分析,则可能需要一个辅助列。如果您不想要帮助列,例如SUMPRODUCTSUM,则可能需要基于数组的公式。

已经有很好的答案显示了如何使用SUMPRODUCT,因此,这里有一个示例,说明了当数据被舍弃为文本时如何使用SUM构建数组公式。

=SUM((BankRegisterDebitRange)*(BankRegisterDescriptionRange="Rent")*(DATEVALUE(BankRegisterDateRange)=>(EOMONTH(RentTableDate,-1)+1))*(DATEVALUE(BankRegisterDateRange)<=MONTH(RentTableDate,0))) 

我对测试期间的一些结果感到惊讶。主要是Excel在某些情况下仍将文本视为日期的方式,而在其他情况下则不是。例如,在银行收银机一侧需要DATEVALUE,但在租金表中却不是这种情况,因为EOMONTH没有它就可以很好地工作。我认为这与另一个奇怪的行为有关:当我在A1中创建一个文本格式的单元格,然后输入日期时,无论它前面是否带有撇号,然后在其他任何单元格中输入=A1+1时,该单元格将设置为文本格式,并显示A1中日期后一天的Excel数值。我所期望的是#Value! error。我怀疑这是阻止EOMONTH束缚的原因,而且数组的神秘本质以某种方式阻止了该行为延续到SUMIFS ...,但我真的不知道为什么会这样。

Solution

假设您具有以下命名范围

  • BankDate是您的银行登记表中的日期列;
  • << [Desc是您的银行登记表中的描述列;
  • << [Dr是您的银行登记表中的借方列。
  • 如果查找日期为text,则可以使用以下公式:
  • =SUMPRODUCT((Desc="Rent")*(TEXT(BankDate,"mmm yyyy")=G2)*Dr)

如果查找日期为date,则可以使用以下公式:

=SUMPRODUCT((Desc="Rent")*(TEXT(BankDate,"mmm yyyy")=TEXT(G4,"mmm yyyy"))*Dr)

根据您的实际情况更改以上公式中的G2G4

逻辑是使用

TEXT
函数将BankDate转换为与您的查找日期相同的格式,然后使用

SUMPRODUCT

函数按月归还租金。Ps。使用SUMPRODUCT可能会过大,因为@ProfoundlyOblivious建议的

SUMIFS实际上在excel计算中更快。

让我知道您是否有任何疑问。干杯:)

0
投票

Solution

© www.soinside.com 2019 - 2024. All rights reserved.