是从一个命名范围指定一个列比在一个完整的列上计算更有效?
在Excel
的引擎下,你认为如果我使用命名范围,比如说MAX
计算,那么效率会更高
我有一个名为范围myNmdRang
是A1:Z20000
没有数据在工作表的其余部分。 列A包含一些数字值。 指定范围明天可能会调整到500k行或100行。
我最好在第1列中findMAX
:
Max("A:A")
以下是更有效率和/或占用较less的存储? (这可以certificate)
Max(index(myNmdRang,0,1))
据我了解,您正在计划使用的命名范围比查看整列更有效,因为您只需查看较less的条目。
为了节省手动更新字段的时间,您可以执行以下操作:
您可以dynamic分配名称范围的长度。 也就是说,它的长度将根据条目的数量自动调整。
假设没有条目,并且列A中唯一的数字是数字,而不是使用= A1:Z2000作为您创build指定范围的定义范围,则可以使用:
=offset($A$1,0,0,counta(A:A),26)
计数器(A:A)将查看数字条目的数量并定义命名范围的长度。
所以不是使用查看第1列的max(A:A),可以为第1列创build另一个命名范围,比如MyFirstRange,或者您可以将其定义的范围放在max命令中,我会做一些事情喜欢这个:
define a named range as: MyFirstRange = offset($A$1,0,0,counta(A:A),1) =Max(MyFirstRange) OR if you dont want to name another range =max(offset($A$1,0,0,counta(A:A),1))
我知道这并不完全说明这两种方法的效率。 这样可以节省您每天手动重新定义您的命名范围。 我希望能帮助你。
这可能对TS没有帮助,因为我的答案迟了一年多,但是为了将来的参考,我倾向于使用:
MAX(myNmdRang A:A)
这将给出myNmdRang的子集和列A的最大值。
一些优点:
- 子集明显less于A:A,实际上等于INDEX(myNmdRang; 1; 0)
- 参考是相对的
- 我在INDEX重新计算的时候遇到了问题,我不知道为什么(另一个话题),所以我倾向于select
缺点是,如果命名范围位于另一个工作表上,则公式不起作用,因为A:A始终是活动工作表上的A列。