如何根据电子表格中另一个单元格中的值dynamic更改公式中的input单元格?

可以根据另一个单元格中的内容dynamic地更改公式中的input单元格地址?

比方说,我有一个电子表格(excel或libreoffice)与这些单元格值:

A1: 10 A5: 9 C1: 5 

而不是hardcoding =A1-A5 ,我想要这样做: =A1-A(C1) ,这将在运行时评估使用单元格A5的第二个input。

使用INDIRECT将C1中的值作为指向您在列A中所需行的指针: –

 =A1-INDIRECT("A"&C1) 

(在Open Office和Excel 2010中testing)

非易失性解决scheme将是INDEXfunction 。

 'for Excel =A1-INDEX(A:A, C1) 'for OpenOffice =A1-INDEX(A$1:A$1048576; C1) 

nonvolatile_index
nonvolatile_index_oo


¹ 只要整个工作手册中的任何内容发生变化,挥发性函数就会重新计算,而不仅仅是当影响结果的内容发生变化时。 易失性函数的例子是间接 , 偏移 , 今天 , 现在 , 兰德和兰德维恩 。 CELL和INFO工作表函数的一些子函数也会使它们变得不稳定。

对于这种dynamic参考,您需要INDIRECTfunction。 它有两个参数INDIRECT(reference,style)

引用 ,包含单元格的文本string,单元格文本范围或命名范围

并设置一个布尔型,如果省略或为TRUE,则表示引用为A1样式,而当为FALSE时,引用将使用R1C1样式。

所以在你的情况下,你可以使用

 INDIRECT("A"&C1) 

要么

 INDIRECT("R1C"&C1,FALSE)