可以根据另一个单元格中的内容动态更改公式中的输入单元格地址吗?
假设我有一个包含这些单元格值的电子表格(excel或libreoffice):
A1: 10
A5: 9
C1: 5
我想做类似这样的事情:=A1-A5
,而不是硬编码=A1-A(C1)
,它会在运行时进行评估,以便使用单元格A5
作为第二个输入。
答案 0 :(得分:4)
非挥发性¹溶液是INDEX function。
'for Excel
=A1-INDEX(A:A, C1)
'for OpenOffice
=A1-INDEX(A$1:A$1048576; C1)
¹当整个工作簿中的任何内容发生变化时,不仅在影响其结果的某些内容发生变化时,挥发性函数都会重新计算。 易失性函数的示例包括,INDIRECT,OFFSET,TODAY,NOW和RAND。 RANDBETWEEN和CELL工作表函数的某些子函数也会使它们变得不稳定。
答案 1 :(得分:1)
使用INDIRECT将C1中的值作为指向A列中所需行的指针: -
=A1-INDIRECT("A"&C1)
(在Open Office和Excel 2010中测试)
答案 2 :(得分:1)
对于这种动态参考,您需要INDIRECT
函数。它需要两个参数INDIRECT(reference,style)
参考,包含单元格,一系列单元格文本或命名范围的文本字符串
和样式一个布尔值,如果省略或为TRUE,表示引用为A1样式,而当为FALSE时,引用使用R1C1样式。
所以在你的情况下你可以使用
INDIRECT("A"&C1)
或
INDIRECT("R1C"&C1,FALSE)