LibreOffice Calc:如何在 function/formula 中使用变量?
LibreOffice Calc: How to use a variable in a function/formula?
Before
After
我正在尝试根据另一个单元格中的数字动态填充列中的一系列单元格。
因此,用 E4 中设置的值填充 x 个单元格。 x 是单元格 E5 中的值。
如果单元格 E4 = 25,请在特定点下方的所需列中的单元格中用“25”填充 x 行数。如果 E5 = 5,并且起点是 A3,它将用“25”或任何所需的字符串或公式填充 A3 到 A8。
对我来说,它是 ="Layer " & ROW() - 2,我想将该列中的每个单元格填充到 E5 中确定的范围内。该行中的单元格数量将随着 E5
中设置的内容而动态变化
问题是,我找不到在单个单元格的论坛中设置变量并检索它的值的方法,而且我也不能使用嵌套公式 (SUM(Var1:E1),其中 Var1 是字符串E2 或类似的东西)
在这种情况下,从单元格 A3 = 第 1 层开始,它会将每个单元格命名为第 2 层,然后是第 3 层,直到层数与 E5 中的值匹配。
我还需要能够计算下一列中的公式有多少层,这取决于总层数(加 1)
我不太了解 Calc 或 Excel 公式,但它们不遵循对我来说有意义的约定。
我猜测嵌套求和函数的工作方式如下:=SUM(SUM(A1:A5):A6) 或 =SUM((SUM(A1:A5)):A6) 但事实并非如此。而且似乎没有办法在一个单元格的公式中设置变量。
我还尝试创建一个字符串来创建相关的单元格引用,从而创建正确的值,例如 =("E"&E1) 如果 E1 设置为 5,它将创建 E5,但我不能使用它作为单元格引用的值
要获得图像中显示的结果,请在单元格 D3 中输入 =IF(ROW(D1)<=E;"Layer " & ROW(D1);"")
,然后通过拖动角落的黑点向下填充到 D10。然后更改E1中的值以查看差异。
$
表示在别处复制或填写公式时,不更改引用中的1
。否则公式引用将相对于新位置进行调整。
If I use =("E"&E1) to create "E5" based on the value in E1, I want to use the E5 as a cell reference and not a string.
这就是 INDIRECT 所做的。
=SUM(SUM(A1:A5):A6)
应该是=SUM(SUM(A1:A5);A6)
。第一个是一系列单元格,而第二个给出了要包含的附加单元格。你也可以这样做,例如 =SUM(SUM(A1:A5);A6:A10)
.
我真的不明白为什么你会期望 :
在 ;
所在的地方工作。这将定义一个范围,该范围从 SUM
结果的行开始,到我想的一个单元格结束?对我来说没有意义。也许你想要 =SUM(INDIRECT("A"&SUM(A1:A5));A6)
这样的东西。我仍然不明白为什么有人会想要那样做。
电子表格公式不同于编程语言。学习如何有效地使用它们可能需要一些时间。如果您需要一种实际的编程语言,LibreOffice 还提供对宏的广泛支持,尽管在大多数情况下可能有更好的方法来解决问题而无需求助于宏。
Before After
我正在尝试根据另一个单元格中的数字动态填充列中的一系列单元格。
因此,用 E4 中设置的值填充 x 个单元格。 x 是单元格 E5 中的值。
如果单元格 E4 = 25,请在特定点下方的所需列中的单元格中用“25”填充 x 行数。如果 E5 = 5,并且起点是 A3,它将用“25”或任何所需的字符串或公式填充 A3 到 A8。
对我来说,它是 ="Layer " & ROW() - 2,我想将该列中的每个单元格填充到 E5 中确定的范围内。该行中的单元格数量将随着 E5
中设置的内容而动态变化问题是,我找不到在单个单元格的论坛中设置变量并检索它的值的方法,而且我也不能使用嵌套公式 (SUM(Var1:E1),其中 Var1 是字符串E2 或类似的东西)
在这种情况下,从单元格 A3 = 第 1 层开始,它会将每个单元格命名为第 2 层,然后是第 3 层,直到层数与 E5 中的值匹配。
我还需要能够计算下一列中的公式有多少层,这取决于总层数(加 1)
我不太了解 Calc 或 Excel 公式,但它们不遵循对我来说有意义的约定。
我猜测嵌套求和函数的工作方式如下:=SUM(SUM(A1:A5):A6) 或 =SUM((SUM(A1:A5)):A6) 但事实并非如此。而且似乎没有办法在一个单元格的公式中设置变量。
我还尝试创建一个字符串来创建相关的单元格引用,从而创建正确的值,例如 =("E"&E1) 如果 E1 设置为 5,它将创建 E5,但我不能使用它作为单元格引用的值
要获得图像中显示的结果,请在单元格 D3 中输入 =IF(ROW(D1)<=E;"Layer " & ROW(D1);"")
,然后通过拖动角落的黑点向下填充到 D10。然后更改E1中的值以查看差异。
$
表示在别处复制或填写公式时,不更改引用中的1
。否则公式引用将相对于新位置进行调整。
If I use =("E"&E1) to create "E5" based on the value in E1, I want to use the E5 as a cell reference and not a string.
这就是 INDIRECT 所做的。
=SUM(SUM(A1:A5):A6)
应该是=SUM(SUM(A1:A5);A6)
。第一个是一系列单元格,而第二个给出了要包含的附加单元格。你也可以这样做,例如 =SUM(SUM(A1:A5);A6:A10)
.
我真的不明白为什么你会期望 :
在 ;
所在的地方工作。这将定义一个范围,该范围从 SUM
结果的行开始,到我想的一个单元格结束?对我来说没有意义。也许你想要 =SUM(INDIRECT("A"&SUM(A1:A5));A6)
这样的东西。我仍然不明白为什么有人会想要那样做。
电子表格公式不同于编程语言。学习如何有效地使用它们可能需要一些时间。如果您需要一种实际的编程语言,LibreOffice 还提供对宏的广泛支持,尽管在大多数情况下可能有更好的方法来解决问题而无需求助于宏。