Excel问题 – 作为单元格引用计算的值

我对excel编程比较陌生。 我正在制作一个显示指数衰减的电子表格。 我在每个单元格中使用TRUNC(RAND()* 10,0),在1和10之间有1000个随机数的列(A1:A1000)。 下一列(B1:B1000)有一个逻辑掩码= IF(A1 = 0,1,0),如果A单元格中的值为0,则B单元格显示一个1.接下来,查找0的A列,我有下一列取B1:B1000的总和,它返回第一列中出现的0的数量。 我相信有一个更简单的方法来做到这一点,但这似乎工作正常。

这是我的问题,希望很清楚我在问什么:

接下来,我想从B1:B(1000-来自(B1:1000)的和的值)的逻辑列(B)的总和中计算总和(B1:B1000)的单元格下面的单元格中。 有没有一种方法可以在单元格公式中引用一个单元格的代数? 更简单地说,如果我想引用A3,例如,有没有办法input类似A(2 + 1)的东西来获得A3? 这有道理吗?

你可以很容易的在VBA中做到这一点:

ActiveCell.Formula = "=A" & (2+1) & "+15" 

在Excel中:

 =INDIRECT(ADDRESS(2+1, COLUMN(A1)))+15 

这会将公式设置为“= A3 + 15”。 一般来说,最好用variables来完成,所以记住这样做。

在Excel中,正如Eric所指出的那样,由于使用了INDIRECT()函数,您可以像普通string一样将单词写入单元格。

只要确保传递给INDIRECT()的string是一个有效的单元格引用。

例如 :

=SUM(INDIRECT("B" & 2+7*(H2-1)):INDIRECT("B"&(2+7*H2)-1))

在这里,我每周总计7行( H2 )。 它给出B2:B8B9:B15B16:B22等的总和

希望我的例子能帮助你弄清楚如何在真实情况下使用它。