如何在 LibreOffice Calc 中创建值数组?

如何在 LibreOffice Calc 中创建值数组?

我在用着LibreOffice 5.1.4.2 Calc并需要计算内部收益率对于特定的付款(例如,在单元格中A1),特定的次数(例如,100)。

如果我将值重复 100 次(例如,在 中A1:A100),我可以这样做:

=IRR(A1:A100)

但这看起来很奇怪(如果是 100,000 次呢?)。

问题是,该函数IIR期望“包含值的数组”

我如何才能重复地将IRR值传递给数组?A1100

答案1

我认为您正在要求 Libreoffice Calc 做一些它无法做的事情。

在 LibreOffice Calc 中,数组是“电子表格中包含值的单元格链接范围”(根据帮助文章数组函数)。有“内联数组常量”这样的东西,但它用于将值放入数组中。IRR()不是数组函数,它是一个以数组为参数的单值函数。

我认为 LibreOffice Calc 希望您为这 100 个(或 100,000 个)单元格分配相同的值。

您可以通过多种方式填充单元格。我会将值放入第一个单元格,然后为第二个单元格提供一个公式,该公式从第一个单元格中读取绝对引用,然后将第二个单元格向下填充 100(或 100,000)次以获得我需要的数组。我所需要更改的只是第一个单元格中的值,然后它会通过数组传播。

如果你真的想输入一个简洁的公式来计算 100,000 笔相同金额付款的内部收益率,那么 LibreOffice 可能不是最好的工具。它只是一个电子表格。编程语言,如 Python 语言和numpy.irr()功能,可能会效果更好。

答案2

是的,可以直接在公式中写入数组。Calc
将此称为“内联数组常量”

一个简单的 3x2 示例是

{1;2;3|"a";"b";"c"}.

Calc 的文档有完整详细信息...

答案3

编写一个函数,根据电子表格中的单元格创建重复数组。

我没有为 Calc 编写任何代码,因此我不熟悉所使用的语法,但在伪代码中:

function repeat( value, amount ) -> { value | value | value ... value } 

...然后从 IRR 调用此代码。

或者,创建一个完成所有事情的函数:

function repeatIrr( value, amount ) -> value

...并从电子表格中调用它。

相关内容