如何根据电子表格中另一个单元格中的值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)
¹ 只要整个工作手册中的任何内容发生变化,挥发性函数就会重新计算,而不仅仅是当影响结果的内容发生变化时。 易失性函数的例子是间接 , 偏移 , 今天 , 现在 , 兰德和兰德维恩 。 CELL和INFO工作表函数的一些子函数也会使它们变得不稳定。
对于这种dynamic参考,您需要INDIRECT
function。 它有两个参数INDIRECT(reference,style)
引用 ,包含单元格的文本string,单元格文本范围或命名范围
并设置一个布尔型,如果省略或为TRUE,则表示引用为A1样式,而当为FALSE时,引用将使用R1C1样式。
所以在你的情况下,你可以使用
INDIRECT("A"&C1)
要么
INDIRECT("R1C"&C1,FALSE)