Ada banyak fungsi-fungsi yang bisa bikin kita garuk-garuk kepala, INDIRECT salah satunya.
Tapi, bila digunakan sebaik-sebaiknya, fungsi INDIRECT di Excel dapat membuat fleksibilitas rumus dalam bentuk di luar dugaan.
File: fungsi-indirect-excel.xlsx.
Apakah Fungsi INDIRECT di Excel Itu?
Fungsi INDIRECT di Excel adalah fungsi untuk mengubah teks referensi menjadi referensi yang sesungguhnya dan mengambil serta mengembalikan nilai yang dikandung oleh referensi tersebut.
Seperti referensi sesungguhnya, teks referensi harus berupa format referensi valid.
Sintaks
INDIRECT(ref_text; [a1])
- ref_text (wajib) adalah teks referensi, baik dalam bentuk A1 atau R1C1.
- Bila struktur referensi menyertakan nama workbook, pastikan file workbook tersebut terbuka.
- Bila struktur referensi tidak valid atau berada di luar cakupan jumlah cell dalam worksheet, pesan error #REF! akan dikembalikan.
- a1 (opsional) adalah nilai logika untuk menentukan apakah ref_text dalam bentuk A1 atau R1C1.
- TRUE (default atau bila tidak disertakan) akan mengasumsikan bahwa ref_text berbentuk A1.
- FALSE akan mengasumsikan bahwa bentuk ref_text adalah R1C1.
Cara Menggunakan Fungsi INDIRECT di Excel
Dalam bentuk paling sederhana, fungsi INDIRECT terlihat seperti berikut:
=INDIRECT("B2")
Rumus di atas akan mengembalikan nilai yang berada di cell B2.
Karena berbentuk teks, kita dapat membuat kombinasi apa pun selama berupa referensi valid.
Pada rumus berikut, referensi adalah kombinasi antara huruf pada cell D2 (mewakili kolom) dan angka pada cell E2 (mewakili baris).
=INDIRECT(D2&E2)

Fungsi INDIRECT di Excel Menggunakan Nama Range
Seperti halnya teks parameter cell tunggal, INDIRECT juga bisa menerima referensi range, bahkan nama range.
=INDIRECT("Penjualan2022")
Penjualan2022 adalah nama range yang mewakili B2:B7.
Artinya, rumus di atas memberikan hasil yang sama dengan rumus di bawah ini.
=INDIRECT("B2:B7")

Gabungan Fungsi INDIRECT dengan Fungsi-fungsi Lain
Teman-teman mungkin sadar bahwa rumus INDIRECT pada bagian sebelumnya menghasilkan array bila parameter adalah range atau nama range (perhatikan garis batas di sekeliling D2:D7 pada Gambar 02).
Pada kelanjutannya, kita dapat mengolah hasil array ini dengan dalam rumus-rumus yang sesuai.
Rumus-rumus di bawah mengolah hasil array yang dikembalikan INDIRECT untuk mencari nilai terkecil, terbesar, rata-rata, dan jumlah.
=MIN(INDIRECT("B2:B9"))
=MAX(INDIRECT("B2:B9"))
=AVERAGE(INDIRECT("B2:B9"))
=SUM(INDIRECT("B2:B9"))

Fungsi INDIRECT Beda Sheet
Referensi, tentunya, tidak hanya berasal dari sheet yang sama.
Excel memperbolehkan kita untuk membuat teks referensi dari sheet, bahkan workbook, yang berbeda.
Selalu ingat bahwa walau pun berbentuk teks, referensi beda sheet yang diterima oleh INDIRECT harus mengikuti struktur referensi yang diijinkan Excel.
Rumus di bawah mengambil nilai (atau nilai-nilai) yang sama dengan Gambar 02. Rumus sendiri berada pada sheet yang berbeda dengan sheet di mana nama range berada. Karenanya, referensi nama sheet terhadap Penjualan2022, yaitu 02, diperlukan.
=INDIRECT("'02'!Penjualan2022")

Membuat Rumus Dinamis dengan Fungsi INDIRECT Excel
Sampai sini mungkin ada teman-teman yang bingung. Semua contoh rumus yang kami berikan di atas pada dasarnya adalah rumus Excel biasa yang dibungkus oleh fungsi INDIRECT. Hasilnya pun sama. Lalu, kenapa perlu pakai INDIRECT?
Ingat bahwa parameter wajib INDIRECT adalah teks.
Referensi dalam bentuk teks leluasa dibongkar pasang selama strukturnya valid.
Perhatikan rumus berikut:
=MIN(INDIRECT(B3&"!Penjualan"&A3))
Pada dasarnya, rumus di atas adalah gabungan dari rumus-rumus pada Gambar 02, Gambar 03, dan Gambar 04. Rumus mengambil array pada sheet dan range tertentu.
Perbedaannya terletak pada worksheet dan nama range sebagai variabel, alih-alih ditulis langsung.
Tanpa INDIRECT, kita perlu akses setiap sheet satu persatu saat membuat rumus. Dengan INDIRECT, kita hanya perlu menjadikan setiap sheet sebagai variabel.
