我想在excel表中引用一系列可变范围的数据。意味着本月数据有80行,但下个月可能有100行。所以我只想要一个方法来引用变量范围的范围。所以我可以在下面的公式中使用该方法: -
=SUMPRODUCT(Allocation_Updt!$J$2:$J$83*((RIGHT(Allocation_Updt!$F$2:$F$83,6)+0)=$E62))/100
这里83是数据表的最后一行。但下次可以改变。将其设置为10000(我的数据的几乎最大限制)将给我错误。
答案 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结束'的比赛。对您自己的数据进行一些测试将很快证明这是否是一个可行的选择。它更有效,更宽容,您可以使用完整的列引用而不会受到惩罚。