我在 Excel 中有一个表格,通常用于OFFSET
获取相对于另一列的一列。这是允许我动态调整表格大小的必要条件。
因此,例如在D5
a 的单元格中MyTable
,我有一个这样的公式 - 其中 D$2 是表格的第一行
=INDEX(
OFFSET(
D$2,
0,
(- OffsetDistance ),
ROWS(
MyTable
)
),
MATCH(
LARGE(
OFFSET(
D$2,
0,
(- 1 ),
ROWS(
MyTable
)
),
ROW() -
ROW(
MyTable[#Headers]
)
),
OFFSET(
D$2,
0,
(- 1 ),
ROWS(
MyTable
)
),
0
)
)
现在我听说它说“OFFSET
很慢,因为它易变”。这就像说RAND()
很慢;生成随机数并不慢,与排序列表或搜索子字符串相比没有什么 - 缓慢是因为工作表经常重新计算。
我想知道,使用 OFFSET 函数比使用 Range 文字慢多少。基本上,我在灵活性和能够动态调整表格大小与更快的硬编码偏移之间进行权衡。
所以一般来说,OFFSET 本身是否可能是工作表缓慢的根源?我想不是,因为我猜这是一个O(1)
只需将几个数字相加的操作。但我想不出如何量化这个