考虑一些 libreoffice-calc 函数,MYFUNC
它以单元格范围A2:B40
作为参数,因此我可以调用MYFUNC(A2:B40)
。
现在我希望能够将A2:B40
文本写入另一个单元格D4
,并将中定义的单元格范围D4
作为参数传递给MYFUNC
。也就是说,我希望能够编写类似这样的内容MYFUNC(GETCELLRANGEFROM(D4)
,它应该等同于MYFUNC(A2:B40)
。
答案1
替换GETCELLRANGEFROM(D4)
为INDIRECT(D4)
应该可以实现您想要实现的目标(假设 D4 包含字符串A2:B40
)。间接函数将字符串“翻译”为引用。
以下是其工作原理的一个简短示例:
- A1 到 A9 保存一些数字,
- B1 有一个
string
值,代表对 A 列的引用; - C1 的公式为
=SUM(INDIRECT(B1))
因此,C1 根据 B1 中的引用字符串计算总和。修改 B1 也会A1:A7
更改 C1(结果为 28)。这样,INDIRECT 会将字符串“翻译”为可在另一个(周围)公式中使用的引用。