7

假设我有一个 Libreoffice.org Calc(也许这也适用于 MS Excel)对象定义为 range $Sheet1.$A$1:$A$4

我还声明了一个值为 1 的常量。出于这个模型的目的,我们称它为startingLine

这两个对象都在“定义名称”对话框中正确定义(快捷键:Ctrl+F3)。

我想做的是将定义范围的行变成变量。在我看来,只需像这样定义它:$Sheet1.$A$startingLine:$A$4,但这不起作用。:-/

我正在寻找一个简单的电子表格解决方案,不幸的是,这次宏不会为我做这件事。不过,使用 R1C1 参考的解决方案就足够了。:)

任何帮助将不胜感激!

4

2 回答 2

12

您将需要使用此公式的一个版本 (excel) =CELL("contents",INDIRECT(CONCATENATE("A",startingLine)))
这将为您提供单元格 A1 的内容,其中startingLine是常数 1。此外,如果我们定义endingLine为 A,我们可以替换公式中的 A:
=CELL("contents",INDIRECT(CONCATENATE(endingLine,startingLine)))

例如,为您定义一个范围可能是=INDIRECT(CONCATENATE("$sheet1.$A$",startingLine,":$A$4"))
求和(在 excel 中)=SUM((INDIRECT(CONCATENATE("$A$",startingLine,":$A$4")))),但我不熟悉 libreoffice 中的定义范围

于 2012-02-07T16:58:36.870 回答
1

为了利用 LibreOffice calc 中列表的结果作为二级列表的定义,以下工作:

在例如“Breakfast”、“Dinner”中定义的第一个列表DATA>DEFINE RANGE,其中每个项目是一个包含许多行的列表,并且统称为“Breakfast”或“Dinner”。
详细的菜单选择

名为“早餐”的列表的定义可能包括:培根、豆类、鸡蛋、薯饼、蘑菇等……这个列表最好在单独的表格中定义。

如果要根据“早餐”或“晚餐”的选择从每个列表中选择菜单选项,则需要在 data>validity 中使用这两个选项定义的列表。假设这是在 cell 中定义的A2
顶级选择

要将名为“早餐”或“晚餐”的两个详细菜单选项​​与两者之间的选择联系起来,请使用以下公式:

=indirect(A2)

在说单元格C2。

当您从 A2 中定义的列表中选择一个选项时,电子表格现在将使用单元格 A2 中的条目在单元格 C2 中提供正确的选项列表。

我希望这是有道理的——非常感谢 Waldir Leoncio 的提醒!

于 2016-09-21T00:24:54.717 回答