如何在 LibreOffice Calc 中建立值數組?

如何在 LibreOffice Calc 中建立值數組?

我在用著LibreOffice 5.1.4.2 計算並需要計算內部報酬率對於特定付款(例如,在儲存格 中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

...並從電子表格中調用它。

相關內容