Analisis Data

OKR Sheets di Google Sheets: Panduan Scenario Routing

Marc Sean18 April 20268 menit baca

OKR sheet di Google Sheets adalah tracker berbasis formula yang menggabungkan target kuartalan, baseline awal, dan skenario kepercayaan dalam satu file - dan artikel ini menjelaskan cara membangunnya dari nol, termasuk bagian yang jarang dibahas tutorial lain: penanganan data aktual yang kotor saat pertama kali tiba dari CRM atau ERP Anda.

Arsitektur intinya menggunakan satu sel kepercayaan - Bear, Base, atau Bull - dan formula CHOOSE untuk memuat asumsi yang sesuai ke seluruh kalkulasi hilir secara otomatis. Tidak ada penggantian sel manual saat proyeksi berubah, tidak ada referensi rusak ketika seseorang memperbarui tab target. Kerumitannya bukan pada formula itu sendiri, melainkan pada bentuk data sumber Anda yang sesungguhnya saat Senin pagi tiba.

Sebagian besar tutorial OKR menampilkan 4 baris angka bersih yang diketik manual. Artikel ini membahas pola lengkapnya: scenario routing, progres berbasis baseline, dan apa yang terjadi ketika kolom Current Anda diimpor sebagai string teks dengan non-breaking space.

Tata Letak Tab yang Membuat OKR Sheet Berfungsi

OKR sheet yang minimal membutuhkan 3 tab. Satu untuk pelacakan, satu untuk asumsi, satu untuk pemilih skenario.

OKR_Tracker - tab yang Anda buka setiap hari:

KolHeaderContoh
AObjectiveTingkatkan Pendapatan Segmen UKM
BKey ResultARR Baru
COwnerTim Penjualan
DBaselineRp 6,5 miliar
ETargetRp 14 miliar
FCurrentRp 10,87 miliar
GConfidenceBase
HProgress%=formula

Revenue_Assumptions - 3 kolom skenario, satu baris per pendorong:

DriverBearBaseBull
Tingkat penutupan logo baru18%24%31%
Nilai kontrak rata-rataRp 28 jutaRp 34 jutaRp 41 juta
Siklus penjualan (hari)725844
Tingkat churn6,2%4,1%2,8%

Scenario - satu sel, B1, berisi dropdown yang divalidasi ke Bear,Base,Bull.

Formula CHOOSE di sel kalkulasi mana pun membaca dropdown tersebut dan merutekan ke kolom yang tepat:

=CHOOSE(MATCH(Scenario!$B$1,{"Bear","Base","Bull"},0),
  Revenue_Assumptions!B2,
  Revenue_Assumptions!C2,
  Revenue_Assumptions!D2)

Ketika CFO atau kepala operasional Anda berkata "jalankan skenario pesimistis," mereka cukup mengubah satu sel. Setiap proyeksi hilir langsung diperbarui. Itulah seluruh mekanismenya - dan butuh sekitar 20 menit untuk merangkainya begitu tab asumsi Anda sudah terstruktur.

Alasan memilih CHOOSE langsung ke referensi sel daripada named range: named range rusak setiap kali seseorang mengganti nama tab. Referensi sel eksplisit tidak. Ini pola yang lebih tahan banting untuk lingkungan di mana banyak orang menyentuh file yang sama.

Formula Progres OKR Sheet yang Benar-Benar Akurat

Formula progres yang naif adalah =F2/E2 - Current dibagi Target. Angkanya keluar, tetapi hasilnya menyesatkan.

Jika baseline Anda adalah Rp 6,5 miliar dan target Rp 14 miliar, sementara posisi saat ini Rp 10,87 miliar, formula naif ini mengatakan Anda berada di 77,6% dari target. Tetapi Anda mulai dari Rp 6,5 miliar, bukan dari nol. Sebenarnya Anda baru menutup 58,3% dari selisih yang perlu dicapai:

=(F2-D2)/(E2-D2) = (10,87 - 6,5) / (14 - 6,5) = 58,3%

Perbedaannya bukan soal kosmetik. Menggunakan progres naif pada target ARR Rp 50 miliar dengan baseline Rp 43,5 miliar mengubah headline 77% menjadi angka progres nyata 52%. Menurut survei PwC CFO Pulse 2024, 67% pemimpin keuangan menyebut metrik progres yang menyesatkan sebagai kontributor utama kejutan perencanaan di tahap akhir. Membangun penyebut yang benar hanya membutuhkan 4 karakter tambahan.

Tulis ini di H2 pada OKR_Tracker:

=IFERROR((F2-D2)/(E2-D2), "-")

IFERROR itu penting. Ketika E2 dan D2 identik - seseorang menetapkan target sama dengan baseline, yang lazim terjadi pada objective baru sebelum target difinalkan - Anda mendapat pembagian dengan nol. Tanpa pembungkus itu, sel akan merah dan kolom progres Anda terlihat rusak. Dengan IFERROR, Anda mendapat tanda hubung yang bersih.

Apa yang Terjadi Ketika Data Aktual Anda Benar-Benar Berantakan

Kolom Current (F) adalah titik di mana OKR sheet sering rusak dalam praktik. Jika aktual Anda diketik manual, tidak ada masalah. Jika diimpor dari CRM, ERP, atau sistem apa pun yang mengekspor CSV - SAP, Salesforce, dashboard internal - Anda akan menemui ini secara rutin:

Sel terbaca 1087000, namun =F2-D2 mengembalikan #VALUE!.

Sel tersebut adalah string teks. Tampilannya seperti angka, tetapi bukan angka. Pemeriksaan cepat: =ISNUMBER(F2) mengembalikan FALSE. Biasanya Anda bisa memperbaiki seluruh kolom dengan:

=VALUE(TRIM(SUBSTITUTE(F2, CHAR(160), " ")))

Bagian SUBSTITUTE-lah yang paling sering dilewatkan panduan pembersihan data. CHAR(160) adalah non-breaking space - tampilannya identik dengan spasi biasa di dalam sel, dan TRIM saja tidak akan menghapusnya. Menurut dokumentasi Google Sheets, TRIM hanya menghapus karakter spasi ASCII standar (kode 32). Spasi tak-putus (kode 160) lolos begitu saja. Jika aktual Anda diimpor dari sistem ERP, CRM, atau aplikasi apa pun yang menghasilkan output Unicode, kemungkinan besar ini sudah terjadi pada sheet Anda.

Untuk kasus lengkap - format campuran, baris kosong, teks yang terbaca "108 %" dengan spasi sebelum tanda persen - bungkus semuanya:

=IFERROR(
  VALUE(
    TRIM(
      SUBSTITUTE(
        SUBSTITUTE(F2, CHAR(160), ""),
        "%", ""
      )
    )
  ) / IF(SEARCH("%", F2&""), 100, 1),
  ""
)

Formula ini menangani: string persentase dengan spasi, non-breaking space, sel kosong, dan nilai numerik langsung. Letakkan di kolom pembantu (beri nama Current_Clean) dan arahkan formula progres Anda ke sana, bukan langsung ke kolom impor.

Untuk baris yang rating kepercayaannya belum diisi - objective baru tanpa nilai G2 - routing CHOOSE akan error. Bungkus seperti ini:

=IFERROR(
  CHOOSE(
    MATCH(G2, {"Bear","Base","Bull"}, 0),
    Revenue_Assumptions!B2,
    Revenue_Assumptions!C2,
    Revenue_Assumptions!D2
  ),
  Revenue_Assumptions!C2
)

Jika kepercayaan belum diisi, defaultnya adalah Base. Itu fallback yang masuk akal, dan artinya tracker yang setengah terisi tidak akan merusak setiap baris di bawah celah tersebut.

Formula OKR Sheet yang Gagal dengan Elegan

Jika digabungkan, sebuah baris siap-produksi di OKR_Tracker terlihat seperti ini:

H2 - Progres berbasis baseline:

=IFERROR((Current_Clean-D2)/(E2-D2), "-")

Target berdasarkan skenario (jika target bervariasi per skenario):

=IFERROR(
  CHOOSE(MATCH(G2,{"Bear","Base","Bull"},0),
    Targets!B2, Targets!C2, Targets!D2),
  Targets!C2
)

Selisih ke target dalam Rupiah:

=IFERROR(E2 - Current_Clean, "-")

Pembungkus IFERROR bukan sekadar formalitas pemrograman defensif - inilah perbedaan antara tracker yang gagal diam-diam (menampilkan tanda hubung) dan yang gagal dengan keras (menyebarkan error ke 40 baris sekaligus dan membuat seluruh sheet tidak bisa digunakan sebelum rapat direksi).

Per April 2026, pola CHOOSE-dengan-MATCH adalah cara terbersih untuk melakukan scenario routing di Google Sheets tanpa harus menggunakan Apps Script atau named range yang rusak ketika tab diganti nama. Satu dropdown kepercayaan yang terhubung ke 3 kolom asumsi akan menangani setiap skenario OKR yang diminta tim kepemimpinan Anda.

Di Mana ModelMonkey Berperan

Formula-formula di atas butuh sekitar satu jam untuk dibangun. Pemeliharaan berkelanjutannya - memperbarui aktual, memverifikasi bahwa kolom Current_Clean masih mem-parsing dengan benar setelah format CSV baru masuk, menambah baris ketika objective berubah di tengah kuartal - itulah yang menghabiskan 5 jam berikutnya setiap kuartal.

Jika OKR tracker Anda tinggal di Google Sheets, ModelMonkey bisa membaca tab OKR_Tracker dan Revenue_Assumptions, memperbarui aktual, menambah objective baru, atau menulis ulang formula Current_Clean jika format impor Anda berubah. Ketik "perbarui aktual Q2 dari tabel ini" lalu tempel hasil ekspor Anda - ModelMonkey menangani inspeksi formula tanpa mengharuskan Anda mendeskripsikan struktur sheet dari awal setiap kali.

FAQ: OKR Sheets di Google Sheets

Apa itu OKR sheet dan apa bedanya dengan tracker biasa? OKR sheet adalah spreadsheet yang menyimpan Objectives dan Key Results beserta baseline, target, dan data aktual dalam satu file terstruktur. Bedanya dengan tracker biasa: OKR sheet memiliki formula progres berbasis baseline (bukan sekadar persentase dari target), dan umumnya mendukung scenario routing untuk memproyeksikan hasil di berbagai kondisi bisnis.

Berapa banyak tab yang dibutuhkan OKR sheet yang efektif? Minimal 3 tab: satu tab tracker utama (OKR_Tracker), satu tab asumsi skenario (Revenue_Assumptions atau setara), dan satu tab pemilih skenario yang berisi dropdown Bear/Base/Bull. Tab tambahan bisa ditambahkan untuk target per divisi atau historis kuartal sebelumnya.

Mengapa formula progres saya menunjukkan angka yang berbeda dari ekspektasi tim? Kemungkinan besar Anda menggunakan =Current/Target alih-alih =(Current-Baseline)/(Target-Baseline). Formula pertama mengukur persentase dari target absolut; formula kedua mengukur berapa persen dari selisih yang perlu dicapai sudah ditutup - angka yang jauh lebih relevan untuk pelaporan OKR.

Bagaimana menangani data aktual yang diimpor dari CRM atau ERP yang tampak angka tapi menyebabkan error? Buat kolom pembantu bernama Current_Clean dengan formula =VALUE(TRIM(SUBSTITUTE(F2, CHAR(160), " "))). Karakter CHAR(160) (non-breaking space) adalah penyebab paling umum error ini pada data ekspor dari sistem seperti SAP atau Salesforce - tampilannya identik dengan spasi biasa tetapi tidak dihapus oleh TRIM standar.

Apakah scenario routing di Google Sheets memerlukan Apps Script? Tidak. Pola CHOOSE-dengan-MATCH menangani scenario routing sepenuhnya dengan formula standar. =CHOOSE(MATCH(Scenario!$B$1,{"Bear","Base","Bull"},0), ...) cukup untuk merutekan ke kolom asumsi yang tepat tanpa satu baris pun kode Apps Script.