Excel // Sum函数中的动态范围

时间:2014-07-17 11:22:09

标签: vba excel-formula excel-2010

如果功能更可靠,我会尝试使用相当复杂的Sum。情况是我正在使用该公式(见下文)来对工作簿中单独工作表中两个日期之间的值进行求和。

=SUMIFS(wochen!$F11:$BM11;wochen!$F$8:$BM$8;">="&DATE(YEAR(T$8);1;1);wochen!$F$8:$BM$8;"<="&DATE(YEAR(T$8);MONTH(T$8);DAY(T$8)))

障碍是我希望实现某种查找函数或匹配函数以始终从正确的行获取值。 到目前为止,sum_range是静态的,我无法确保它选择正确的行。

我已经玩过这种地址/匹配功能了 =ADDRESS(MATCH($B13;'F_P&L'!$B$1:$B$267;0);MATCH(T$6;'F_P&L'!$F$6:$CP$6;0);;;"wochen!") 到Sum If Formular的Sum_Range,但是它不能用作Text

我很高兴能通过excel Formulas或VBA实现任何想法

我希望我能清楚地解释一切,如果不是,我很乐意提供更多信息

非常感谢提前

丹尼斯

1 个答案:

答案 0 :(得分:0)

这是一个简单的例子,您可以扩展到您的案例。它使用=INDIRECT()公式。

如果您通过某种方式知道正确的行是什么,请说您知道您感兴趣的范围是line 11,...

将以下内容放入单元格

A1:    = 11                   ' You can use VLOOKUP etc. to generate the row number
B1:    = "F" & A1 & ":BM"&A1  ' That makes B1 read: F11:BM11
C1:    = SUM(INDIRECT(B1))    ' This will make it the equivalent of writing =SUM(F11:BM11)

=function(INDIRECT(*anything*))其中*anything*是描述范围地址的字符串,相当于写=function(** selecting the range **)

关于效果的说明:请注意INDIRECT易失性函数,因此计算设置为自动的工作簿中的任何更改都会导致它重新计算。因此,在某些情况下可能会有性能影响。