需要使用数学公式来确定单元格引用


0

我希望能够使用此公式,但根据另一个单元格中的值更改范围。

SUMPRODUCT(1/COUNTIF(B5:B15,B5:B15)

例如,如果宏写为:

SUMPRODUCT(1/COUNTIF(B5:B(15-k3),B5:B(15-k3))

我会传递值k3 = 2得到:

SUMPRODUCT(1/COUNTIF(B5:B13,B5:B13)

你知道如何实现这个目标吗?

Answers:


2

我会用INDEX这样的:

=SUMPRODUCT(1/COUNTIF(B5:INDEX(B:B,15-K3),B5:INDEX(B:B,15-K3))

INDEX通常优于使用INDIRECT,这是实现此目的的替代方法


为什么INDEX比INDIRECT更受欢迎?

1
有两个原因 - INDIRECT是一个“易失性”函数,这意味着每次重新计算工作表时都会重新计算,这会减慢计算速度(虽然它对一个公式没有任何显着影响)。此外,如果您使用INDIRECT,您需要“硬编码”列字母,如“B”,如果您删除或添加列,这是一个问题(OFFSET是另一种选择,但也是不稳定的)
barry houdini 2013年

我想我很困惑,你为什么想要你的功能volatile呢?如果他们每次都没有重新计算,那么non-volatile函数计算的时间是多少?

与非易失性函数不同,即使它们的先例不变,易失性函数也会重新计算。波动性可以显着增加Excel的计算时间
brettdj 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.