Bagaimana cara membuat array nilai di LibreOffice Calc?

3

Saya menggunakan LibreOffice 5.1.4.2 Calc dan perlu menghitung tingkat pengembalian internal untuk pembayaran tertentu (katakanlah, dalam sel A1), beberapa kali (katakanlah 100).

Jika nilai saya diulang 100 kali (katakanlah, dalam A1:A100), saya bisa melakukan:

=IRR(A1:A100)

Tapi sepertinya aneh (bagaimana kalau 100.000 kali?).

Masalahnya adalah, fungsi IIRmengharapkan "array yang mengandung nilai-nilai" .

Bagaimana saya bisa meneruskan ke IRRarray nilai dalam waktu yang A1berulang 100?

tripu
sumber
Saya yakin saya bingung apa yang Anda cari di sini, maaf tentang itu. Dalam contoh Anda di atas, apakah sel A1: A100 semuanya berisi pembayaran tetap tunggal? Artinya, setara dengan spreadsheet {7 | 7 | 7 | 7 ... 95x ... 7}. Apakah pertanyaan Anda "Bagaimana jika saya membutuhkan {7 | 7 | 7 | 7 ... 100.995x ... 7} sebagai gantinya"? Sekarang saya membaca dengan lebih seksama, sepertinya Jim DeLaHunt telah menafsirkan pertanyaan itu.
kwutchak

Jawaban:

2

Saya pikir Anda meminta Libreoffice Calc untuk melakukan sesuatu yang tidak bisa dilakukan.

Dalam LibreOffice Calc, array adalah "rentang sel tertaut pada spreadsheet yang berisi nilai" (per artikel Bantuan Fungsi Array ). Ada yang namanya "Inline Array Constant", tapi itu untuk menempatkan nilai ke dalam array. IRR()bukan fungsi array, itu adalah fungsi bernilai tunggal yang mengambil array sebagai argumen.

Saya pikir LibreOffice Calc ingin Anda mengalokasikan 100 (atau 100.000) sel dengan nilai yang sama.

Anda dapat mengisi sel dengan berbagai cara. Saya akan meletakkan nilainya di sel pertama, lalu memberikan sel kedua formula yang membaca dari sel pertama dengan referensi absolut, kemudian mengisi sel kedua turun 100 (atau 100.000) kali untuk mendapatkan array yang saya butuhkan. Yang harus saya ubah adalah nilai di sel pertama, dan itu disebarkan melalui array.

Jika Anda benar-benar ingin mengetikkan rumus ringkas untuk menghitung Tingkat Pengembalian Internal untuk 100.000 pembayaran dengan jumlah yang sama, mungkin LibreOffice bukan alat terbaik untuk pekerjaan itu. Ini spreadsheet. Bahasa pemrograman, seperti bahasa Python dan numpy.irr()fungsinya, mungkin bekerja lebih baik.

Jim DeLaHunt
sumber
Terima kasih, @ jim-delahunt. Saya masih merasa aneh bahwa tidak ada cara yang elegan untuk melakukan apa yang saya butuhkan (tanpa benar-benar menggunakan n sel), jadi saya belum menerima jawaban Anda sebagai yang baik dulu, kalau-kalau ada orang lain yang membebani ini.
tripu
1

Ya, dimungkinkan untuk menulis array secara langsung dalam rumus Anda.
Calc menyebut ini sebagai "konstanta array inline" .

Contoh 3x2 sederhana adalah

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

Dokumentasi Calc memiliki detail lengkap ...

kwutchak
sumber
Sekali lagi, masalah saya adalah bahwa saya mungkin perlu menggunakan array yang sangat panjang. Bayangkan 300x2.000 sebagai gantinya. Sintaks ini tidak membantu dengan itu.
tripu
0

Tulis fungsi yang membuat larik berulang berdasarkan sel dalam spreadsheet.

Saya belum menulis kode untuk Calc, jadi saya tidak familiar dengan sintaks yang digunakan, tetapi dalam pseudo-code:

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

... lalu panggil kode ini dari IRR.

Atau, buat fungsi yang melakukan segalanya:

function repeatIrr( value, amount ) -> value

... dan panggil itu dari spreadsheet.

kwutchak
sumber
@ Tripu Saya menganggap ini bukan apa yang Anda cari secara pribadi (jangan ragu untuk memperbaikinya!). Saya menambahkan jawaban ini sebagai solusi, dan mungkin dapat diterima oleh seseorang dalam situasi yang sama.
kwutchak
... secara pribadi jika orang lain tertarik untuk mengisi rincian implementasi untuk Calc dalam solusi ini, saya ingin sekali melihatnya!
kwutchak