如何引用一个variables范围

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

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

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

使用,

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

…查找列中最后一个数字或date的行号。 使用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函数可以被dynamic地限制到需要的地方,

 =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的独特性,我可能会进行一些testing,

 =sumifs(Allocation_Updt!$J:$J, Allocation_Updt!$F:$F, "*"&$E62)/100 

这不是一个“最右边的6个字符匹配”。 这是一个“与E62结束”的比赛。 对自己的数据进行一些testing将很快certificate这是否是一个可行的select。 这是更有效率,更宽容,你可以使用完整的列引用没有惩罚。

尝试将数据范围转换为表格。 它会自动为每个列应用一个名称。 这些列名称可以用来引用列中的数据,并且该数据范围将是dynamic前进的。