Excel嵌套IF在SumIfs中

好。 所以我想在我的SUMIFS公式中嵌套IF 。 我遇到的唯一问题是当我的一个引用的单元格显示FALSE ,公式不再起作用。 我如何获得公式从SUMIFS公式中完全删除标准,并仍然工作?

我用过的代码

 =SUMIFS(R:R,IF(BE4=TRUE,I:I),IF(BE4=TRUE,BD4),J:J,BD5) =IF(BE4=TRUE,SUMIFS(R:R,I:I,BD4),0)+IF(BE5=TRUE,SUMIFS(R:R,J:J,BD5),0) 

我甚至尝试将SUMIFS公式分解为多个单元格,并使用IFINDIRECT来创build一个工作代码。 只是不断popup#REF错误。

这是代码

 =INDIRECT(CONCATENATE(BK1,IF(BE2=TRUE,BK2,""),IF(BE3=TRUE,BK3,""),IF(BE4=TRUE,BK4,""),IF(BE5=TRUE,BK5,""),BK6)) 

这是在IF之前无法使用的代码。

 =INDIRECT(CONCATENATE(BK1,BK2,BK3,BK4,BK5,BK6)) 

任何帮助将不胜感激。 谢谢

模拟表https://www.dropbox.com/s/tl64vbsalcqxqdm/CriteriaIFS.xlsx?dl=0

试试这个公式:

 =SUMIFS(BK1:BK6,BK1:BK6,">=0") 

请尝试这个公式,

 =IF(BE4=TRUE,SUMIFS(R:R,I:I,BD4,J:J,BD5),SUMIFS(R:R,J:J,BD5)) 

你的公式

 =SUMIFS(R:R,IF(BE4=TRUE,I:I),IF(BE4=TRUE,BD4),J:J,BD5) 

你说的是:从column R求和的一切,如果在BD5J相匹配, THEN IFBD5匹配, THEN IF BE4 is TRUE THEN 。 那么,错误是因为,如果BE4是真的是返回一个string不是一个范围。 相反,你可以使用这个:

 =SUMIFS(R:R,INDIRECT(IF(BE4=TRUE,I:I)),INDIRECT(IF(BE4=TRUE,BD4)),J:J,BD5) 

这样就可以了,直到BE4FALSE 。 因为INDIRECT函数返回一个#REF! …将是一个烂摊子。

我不确定我是否能够理解整个想法,但请告诉我是否需要改进。

编辑#1

阅读您的意见我认为这可以帮助:

 =IF(BE4=TRUE,SUMIFS(R:R,I:I,BD4),0)+IF(BE4=TRUE,SUMIFS(R:R,J:J,BD5)) 

尝试发布一些dummie数据库(使用文本表格格式)给你一个更好的帮助…并记住阅读这个: 如何问,因为你的问题是模糊的,许多评论和答案是“猜测”你真的想要什么

试试这个数组公式:

  =SUMIFS(N:N,IF($A$2,E:E,T:T),IF($A$2,$C$2,""),IF($A$3,F:F,T:T),IF($A$3,$C$3,""),IF($A$4,H:H,T:T),IF($A$4,$C$4,""),IF($A$5,I:I,T:T),IF($A$5,$C$5,"")) 

这是一个数组公式,并且必须用Ctrl-Shift-Enter确认。

这是基于您提供的数据表。 您将需要更改对工作表的引用。 列T引用应该是一个空的列。

![在这里输入图片描述