Analisis Data

4 Pola Sheet Formula untuk Model Keuangan Multi-Tab

ModelMonkey4 Mei 20266 menit baca

Hal ini sangat penting dalam skala besar. Sebuah DCF sindikasi bank standar dengan 8 tab yang terhubung (Assumptions, P&L, Balance Sheet, Cash Flow, FCFF, Returns, Sensitivity, Cover) dapat mencapai lebih dari 50.000 sel. Pada ukuran itu, dua atau tiga rumus yang dipilih dengan buruk akan bertambah menjadi sesuatu yang akan diperhatikan oleh atasan Anda.

4 Pendekatan Sheet Formula Sekilas

PolaSintaksisRusak saat penggantian nama tab?Jenis kalkulasiTerbaik untuk
Direct reference='P&L'!C12YaNon-volatilPenarikan sel tunggal, link hardcode
INDIRECT=INDIRECT("'"&TabName&"'!C12")TidakVolatilSeleksi tab dinamis, toggle skenario
Named range=Revenue_FY26TidakNon-volatilJejak audit, asumsi yang dapat digunakan kembali
QUERY=QUERY('P&L'!A:G,"SELECT C WHERE B='"&Assumptions!$B$3&"'")YaNon-volatilPenarikan multi-baris, agregasi terfilter

Volatil berarti fungsi akan melakukan perhitungan ulang pada setiap perubahan sel apa pun dalam workbook — termasuk perubahan yang sama sekali tidak ada hubungannya dengan formula itu. Perbedaan ini adalah tempat kebanyakan masalah performa dimulai.

Direct References: Cepat, Rapuh

Referensi lintas tab langsung (='P&L'!C12) adalah non-volatil dan diselesaikan hampir secara instan. Untuk menarik satu sel — misalnya, baris EBITDA ke tab Returns — ini adalah pilihan yang tepat.

Kerentanannya memang nyata. Ubah nama "P&L" menjadi "Income Statement" dan setiap rumus yang menunjuk ke 'P&L'! akan rusak dengan error #REF!. Dalam model di mana tab sering diganti nama selama saat-saat mendesak penyusunan board pack kuartalan, itu adalah risiko nyata.

Lebih praktis lagi, direct reference tidak bekerja baik dengan logika dinamis. Jika Anda ingin menarik baris yang sama dari tab berbeda bergantung pada toggle skenario, Anda terjebak menduplikasi rumus. Inilah saatnya INDIRECT menjadi menggoda — dan di sini trade-off menjadi lebih tajam.

INDIRECT: Kuat, Mahal

INDIRECT memungkinkan Anda membangun referensi dari string, yang berarti Anda dapat menggerakkan seleksi tab dari sel Assumptions:

=INDIRECT("'"&Assumptions!$B$2&"'!C"&MATCH("Revenue",'P&L'!$A:$A,0))

Ini bertahan terhadap penggantian nama tab (selama Anda memperbarui string di Assumptions) dan membuat switching skenario bersih. Satu dropdown mengubah tab mana yang memberi makan seluruh model.

Biayanya: dokumentasi Google Sheets secara eksplisit mengklasifikasikan INDIRECT sebagai fungsi volatil. Fungsi ini melakukan perhitungan ulang setiap kali sel apa pun dalam workbook berubah. Dalam model 50.000 sel, segelintir rumus INDIRECT dapat mendorong waktu perhitungan ulang melampaui 4 detik per penekanan tombol. Itu bukan masalah teoretis — itu adalah hal yang membuat seorang analis membuka file kedua dan mulai copy-paste, yang lebih buruk.

Jika Anda akan menggunakan INDIRECT, lokalisasikan. Satu tabel pencarian yang menyelesaikan nama tab menjadi nilai, dengan setiap rumus hilir yang menarik dari tabel itu melalui direct reference. Dampak volatilitas tetap terbatas.

Named Ranges: Kurang Digunakan, Dihargai Rendah

Named range adalah non-volatil, bertahan terhadap penggantian nama tab, dan membuat audit trail dapat dibaca. =WACC_Base lebih jelas dalam rumus board pack daripada =Assumptions!$G$14, dan ketika CFO bertanya dari mana angka itu berasal, Anda klik Name Manager daripada berburu melalui 8 tab.

Batas praktisnya adalah pemeliharaan. Model FP&A yang matang dapat mengumpulkan 150-200 named range di seluruh asumsi, driver FCFF, dan parameter skenario. Google Sheets tidak memiliki cara native untuk mendokumentasikan apa yang setiap nama wakili, dan nama basi (menunjuk ke sel yang tujuannya berubah) menghasilkan jawaban yang salah tanpa error. Beri nama mereka dengan konvensi awalan (Assum_, Driver_, TV_) dan dokumentasikan di tab Inputs khusus.

Untuk DCF dengan exit multiple EBITDA 14,2x sebagai jangkar nilai terminal, pola named range terlihat seperti ini:

// Named range: TV_EBITDAMultiple → Assumptions!$B$22
// Named range: EBITDA_Year5     → 'P&L'!$G$45

=TV_EBITDAMultiple * EBITDA_Year5

Itu dapat dibaca enam bulan kemudian. =Assumptions!$B$22 * 'P&L'!$G$45 tidak.

QUERY: Untuk Penarikan Multi-Baris Dengan Kondisi

QUERY menjadi berguna ketika Anda memerlukan agregasi terfilter di seluruh tab — margin kontribusi menurut SKU, headcount menurut departemen, revenue menurut region. Direct reference tidak dapat melakukan itu tanpa SUMIFS, yang bekerja tetapi menjadi sulit dalam penarikan multi-kondisi.

=QUERY('P&L'!A:G,
  "SELECT B, SUM(C) WHERE D='" & Assumptions!$B$3 & "' GROUP BY B",
  1)

Ini menarik margin kontribusi tingkat departemen untuk periode yang ditandai di Assumptions, dengan baris header. Versi SUMIFS yang setara akan menjadi 3-4 rumus dan kolom pembantu.

QUERY adalah non-volatil dan 2-4x lebih cepat daripada array SUMIFS yang setara untuk range data besar (sesuai pengujian Mei 2026 pada dataset di atas 5.000 baris). Trade-off: sintaksis QUERY berdekatan dengan SQL tetapi bukan SQL, dan pesan error ketika rusak tidak membantu. Bangun dalam isolasi, konfirmasikan output, kemudian sambungkan.

Perhatikan bahwa QUERY tidak bekerja lintas file — untuk itu Anda memerlukan IMPORTRANGE, yang dokumentasi Google catat refresh paling banyak setiap 30 menit dan menambahkan latensi mereka sendiri. Dalam board pack langsung, lag itu bisa menggigit Anda.

Pajak Volatilitas Sheet Formula: Mengapa Model Anda Lambat

Masalah performa dalam sebagian besar model besar bukanlah rumus tunggal yang buruk — ini adalah kombinasi. INDIRECT volatil yang mendorong 20 SUMIFS hilir, masing-masing mereferensikan seluruh kolom, dalam workbook 50.000 sel, melakukan perhitungan ulang pada setiap keystroke. Pajak bertambah.

Perbaikannya membosankan tetapi efektif: audit fungsi volatil Anda. Di Google Sheets, tidak ada tracker fungsi volatil bawaan, jadi Anda berburu secara manual. Tersangka biasanya adalah INDIRECT, OFFSET, NOW, TODAY, dan RAND. Gantikan di mana pun Anda bisa:

  • OFFSET(A1,n,0)INDEX(A:A,n+1) (INDEX adalah non-volatil)
  • INDIRECT("'P&L'!A"&row) → selesaikan pencarian sekali di sel pembantu, referensi langsung hilir
  • Batas range dinamis → hitung batas di sel named range, referensi dengan A$1:A & BoundCell

Jenis refactor ini biasanya mengurangi waktu perhitungan ulang sebesar 60-80% dalam model yang telah mengumpulkan volatilitas selama beberapa kuartal. Model empat detik per keystroke menjadi model setengah detik. Layak untuk sore hari.

Di Mana AI Masuk dalam Ini

Bagian membosankan dari pekerjaan rumus lintas tab bukanlah mengetahui pola mana yang digunakan — ini adalah eksekusi: merangkai SUMIFS di 8 tab dengan referensi kolom yang konsisten, berburu fungsi volatil, memformat ulang output QUERY untuk cocok dengan struktur board pack.

ModelMonkey menangani lapisan itu. Anda mendeskripsikan pull dalam bahasa biasa ("jumlah revenue dari P&L di mana periode cocok Assumptions B3, pecah menurut region"), dan itu menulis rumus yang menargetkan tab dan kolom yang tepat. Ini adalah asisten AI yang tertanam di sidebar Google Sheets — lebih cepat daripada membangun dengan tangan, dan tidak akan meletakkan INDIRECT di mana direct reference akan dilakukan. Hingga Mei 2026, fitur ini bekerja di Google Sheets dan Excel, yang penting jika mitra bank Anda mengirim file .xlsx dan mengharapkan model returns terformat kembali pada hari Jumat.

Singkatnya: direct references untuk penarikan sel tunggal sederhana di mana nama tab stabil; named ranges untuk apa pun yang memerlukan audit trail atau penggunaan kembali; QUERY untuk agregasi multi-baris terfilter; INDIRECT hanya ketika seleksi tab dinamis benar-benar diperlukan, dan hanya terlokalisir. Fungsi volatil bertambah. Audit mereka sebelum model mencapai 50.000 sel, bukan sesudahnya.


Pertanyaan Umum