如何引用变量范围

时间:2016-07-30 15:38:27

标签: arrays excel excel-formula

我想在excel表中引用一系列可变范围的数据。意味着本月数据有80行,但下个月可能有100行。所以我只想要一个方法来引用变量范围的范围。所以我可以在下面的公式中使用该方法: -

=SUMPRODUCT(Allocation_Updt!$J$2:$J$83*((RIGHT(Allocation_Updt!$F$2:$F$83,6)+0)=$E62))/100

这里83是数据表的最后一行。但下次可以改变。将其设置为10000(我的数据的几乎最大限制)将给我错误。

2 个答案:

答案 0 :(得分:2)

尝试将数据范围转换为表格。它会自动为每列应用名称。这些列名称可用于引用列中的数据,并且该范围的数据将是动态的。

答案 1 :(得分:1)

使用,

match(1e99, Allocation_Updt!$J:$J)

...查找列中最后一个数字或日期的行号。使用J83中的最后一个值,以下三个范围引用都是相同的

Allocation_Updt!$J$2:$J$83
Allocation_Updt!$J$2:index(Allocation_Updt!J:J, match(1e99, Allocation_Updt!$J:$J))
index(Allocation_Updt!J:J, 2)):index(Allocation_Updt!J:J, match(1e99, Allocation_Updt!$J:$J))

因此,您的SUMPRODUCT function可以动态地限制到所需的内容,

=SUMPRODUCT(Allocation_Updt!$J$2:index(Allocation_Updt!$J:$J, match(1e99, Allocation_Updt!$J:$J))*((RIGHT(Allocation_Updt!$F$2:index(Allocation_Updt!$F:$F, match(1e99, Allocation_Updt!$J:$J)),6)+0)=$E62))/100

请注意,J列中的最后一个行号用于获取F列和J列中的最后一个有效条目。

鉴于SUMPRODUCT的持久性,我可能会用

进行一些测试
=sumifs(Allocation_Updt!$J:$J, Allocation_Updt!$F:$F, "*"&$E62)/100

这不是一个'最右边的6个字符匹配';这是'与E62结束'的比赛。对您自己的数据进行一些测试将很快证明这是否是一个可行的选择。它更有效,更宽容,您可以使用完整的列引用而不会受到惩罚。

相关问题