Excel 更改SUMIF标准的单元格引用?

Excel 更改SUMIF标准的单元格引用?,excel,excel-formula,worksheet-function,sumifs,vba,Excel,Excel Formula,Worksheet Function,Sumifs,Vba,我试图告诉Excel根据每行中包含值的最后一个单元格更改SUMIF公式的单元格引用。现在,我知道我可以编写一个嵌套的if语句来为我实现这一点,但这太难了,不可能是一个长期的解决方案 例如: 在一个单独的报告中,此列表中的每个人都有多行记录其每日销售额。在小范围内,我只需编写一个使用A2、B3和C4作为标准的SUMIF。规模要大得多,因此我当前的解决方案是编写一个逻辑检查,其中包含SUMIF公式 在这种情况下,E2中的公式为: =IF(C2=),IF(B2=),SUMIF('range',A2,

我试图告诉Excel根据每行中包含值的最后一个单元格更改SUMIF公式的单元格引用。现在,我知道我可以编写一个嵌套的if语句来为我实现这一点,但这太难了,不可能是一个长期的解决方案

例如:

在一个单独的报告中,此列表中的每个人都有多行记录其每日销售额。在小范围内,我只需编写一个使用A2、B3和C4作为标准的
SUMIF
。规模要大得多,因此我当前的解决方案是编写一个逻辑检查,其中包含
SUMIF
公式

在这种情况下,E2中的公式为:

=IF(C2=),IF(B2=),SUMIF('range',A2,'range'),SUMIF('range',B2,'range')),SUMIF('range',C2,'range'))

是否有其他方法告诉Excel使用每行中找到的最后一个值运行
SUMIF

我希望我可以为每一行使用COUNTA,然后让SUMIF公式使用COUNTA值来更改标准单元格引用。我在这里遗漏了一些东西

=SUMIF('range',索引(A2:C2,MATCH('zzzzz',A2:C2)),'range')

看来值得一试

编辑的评论太长:

我真的不知道=MATCH()是如何工作的,但我认为它是在搜索时从左向右遍历的。当它找不到匹配项时,它恰好一直在查看最后一个条目,并且(方便地!)提供了它。因此,关键是寻找一些找不到的东西


对于人们的名字,我选择“zzzzz”作为不太可能出现的名字。对于数字来说,9.9999999999999999 E+307在理论上是可能的,因此有些人使用它(例如一小时前),但我更喜欢googol(1E+100),它看起来足够大,短得多,而且更容易记住,即使稍微多一些
9
s也不会有什么区别,也不可能是
+
后面的整数对

这是有效的,我不知道怎么做。请您解释一下匹配函数如何影响正在查找的单元格,好吗?谢谢你,顺便说一句,这很好。你也可以对文本使用查找方法,例如
=查找(“zzzz”,A2:C2)
-通常相当于“bignum”9.9999999999e+307是“bigtext”=报告(“z”,255),但“zzzz”通常足以说明这些工作是excel的“怪癖”。在查找或匹配/VLOOKUP with TRUE/1/省略的最后一个参数中,excel使用“二进制搜索”,例如with=LOOKUP(100,A1:Y1)excel希望A1:Y1按升序排序-因此它可以查看中间值,即M1,看看它是否>100-如果是,它可以放弃后一个值,如果不是,它可以放弃A1:L1值,所以查找很快,因为它只需要检查有限数量的值……但这会“欺骗”函数,使其在找不到查找值时始终返回最后一个值。。。。。。。