Lewati ke konten utama

Excel INDIRECT(): Cara Membangun Referensi Dinamis di Rumus Anda

Temukan bagaimana fungsi INDIRECT() di Excel mengubah teks menjadi referensi aktif. Pelajari cara menggunakannya untuk lembar kerja dinamis, referensi sel yang stabil, named range, dan lainnya.
· 8 mnt Baca

Jelajahi bersama AI

Fungsi INDIRECT() adalah salah satu alat Excel yang paling kuat tetapi sering disalahpahami. Berbeda dengan fungsi yang melakukan perhitungan secara langsung, INDIRECT() mengonversi string teks menjadi referensi sel yang aktif. Ini memungkinkan pengguna membuat rumus yang dinamis dan fleksibel yang beradaptasi dengan masukan variabel. Baik Anda membuat dasbor ringkasan, mereferensikan lembar yang berbeda berdasarkan pilihan pengguna, atau mengubah referensi sel secara dinamis, INDIRECT() bisa menjadi pengubah permainan.

Dalam panduan ini, saya akan menunjukkan cara menggunakan fungsi INDIRECT() untuk mereferensikan sel dan memecahkan masalah umum, termasuk kapan sebaiknya menghindari penggunaan fungsi tersebut. Jika Anda belum familiar dengan beberapa dasar, saya merekomendasikan mengikuti kursus Introduction to Excel kami untuk membangun fondasi yang kuat. 

Apa yang Dilakukan Fungsi INDIRECT()

Fungsi INDIRECT() di Excel mengambil nilai dari sebuah sel atau rentang berdasarkan referensi yang diberikan sebagai string teks. Alih-alih menulis alamat sel seperti "A1" langsung di dalam rumus, INDIRECT() memungkinkan Anda mendefinisikan alamat tersebut secara dinamis menggunakan teks, yang ditafsirkan Excel sebagai referensi aktif.

Sintaks fungsi INDIRECT() ditunjukkan di bawah ini:

INDIRECT(ref_text, [a1])

Di mana:

  • ref_text (wajib): String teks yang merepresentasikan referensi sel atau rentang yang valid. Ini dapat merujuk ke sel seperti "A1", named range, atau bahkan referensi pada lembar lain seperti "Sheet2!B5".

  • [a1]: Argumen opsional yang menentukan tipe referensi dalam ref_text. Jika a1 bernilai TRUE atau diabaikan, ref_text ditafsirkan sebagai referensi gaya A1. Jika a1 bernilai FALSE, ref_text diperlakukan sebagai referensi gaya R1C1.

Cara Menggunakan Fungsi INDIRECT()

Contoh berikut menunjukkan bagaimana fungsi INDIRECT() secara dinamis mengonversi teks menjadi referensi sel.

Misalkan sel C2 berisi teks "A2" dan sel A2 berisi nilai 100. Fungsi di bawah juga akan mengembalikan 100 karena Excel membaca konten C2 dan INDIRECT() memperlakukannya sebagai referensi.

=INDIRECT(C2)

Menggunakan INDIRECT() untuk mereferensikan berdasarkan sel lain di Excel.

Menggunakan INDIRECT() untuk mereferensikan berdasarkan sel lain di Excel. Gambar oleh Penulis.

Jika sel A5 berisi angka 5, Anda dapat membangun referensi dinamis menggunakan rumus di bawah ini:

=INDIRECT("B"&A5)

Rumus ini menggabungkan "B" dengan nilai di A5 (6), membentuk "B6". INDIRECT() kemudian mengembalikan nilai di sel B6, yaitu "Product A".

Menggunakan INDIRECT() dengan & untuk referensi dinamis di Excel.

Menggunakan INDIRECT() dengan & untuk referensi dinamis di Excel. Gambar oleh Penulis.

Penggunaan Dinamis INDIRECT() di Excel

Kekuatan sesungguhnya dari fungsi INDIRECT() adalah kemampuannya membangun referensi dinamis. Ini menjadikannya ideal untuk pemodelan lanjutan, dasbor, dan laporan yang digerakkan pengguna. Di bawah ini tiga kasus penggunaan utama yang menunjukkan fleksibilitasnya.

Mereferensikan lembar kerja lain

Anda dapat menggunakan INDIRECT() untuk menarik data secara dinamis dari lembar berbeda berdasarkan input sebuah sel. Misalnya, jika Anda memiliki sel A1 yang berisi nama lembar, seperti "Sales". Anda ingin mengambil nilai dari sel B2 pada lembar tersebut.

Rumus di bawah membangun referensi seperti 'Sales'!B2 dan mengembalikan nilai dari sel tersebut.

=INDIRECT("'" & A1 & "'!B2")

Menggunakan INDIRECT() untuk mereferensikan lembar kerja lain secara tidak langsung di Excel.

Menggunakan INDIRECT() untuk mereferensikan lembar kerja lain secara tidak langsung di Excel. Gambar oleh Penulis.

Selalu apit nama lembar dengan tanda petik tunggal menggunakan ' jika ada kemungkinan mengandung spasi atau karakter khusus, seperti 'Sales 2023'!A1.

Mereferensikan named range

Anda juga dapat menggunakan fungsi INDIRECT() untuk mereferensikan named range secara dinamis, yang menjadi kuat bila dipadukan dengan dropdown atau input pengguna.

Misalkan Anda memiliki named range, Sales_2023 dan Sales_2023, di mana sel “A1” berisi "Sales_2023"

Menamai rentang sel di Excel.

Menamai rentang sel di Excel. Gambar oleh Penulis.

Rumus di bawah ini akan menjumlahkan nilai dalam named range Sales_2023, meskipun tidak mereferensikannya secara langsung. Metode ini sangat cocok untuk dasbor atau model yang digerakkan pengguna dengan banyak skenario.

=SUM(INDIRECT(A1))

Menggunakan INDIRECT() untuk mereferensikan named range di Excel.

Menggunakan INDIRECT() untuk mereferensikan named range di Excel. Gambar oleh Penulis.

Referensi tetap yang tidak berubah

Biasanya, jika Anda menyisipkan atau menghapus baris atau kolom, referensi sel dalam rumus akan menyesuaikan secara otomatis. Namun fungsi INDIRECT() membuat referensi absolut yang tidak bergeser.

Sebagai contoh, jika Anda memiliki sel “A1” berisi 100, rumus =A1 dan =INDIRECT("A1") akan sama-sama mengembalikan 100. Namun, jika Anda menggeser nilai

Referensi sel langsung di Excel.

Referensi sel langsung di Excel. Gambar oleh Penulis.

Menggunakan INDIRECT() untuk referensi sel di Excel.

Menggunakan INDIRECT() untuk referensi sel di Excel. Gambar oleh Penulis.

Namun, jika Anda menyisipkan baris baru di atas baris 1, D3 (sebelumnya B2) sekarang menampilkan =A3 karena nilainya bergeser mengikuti baris. Sel E3 dengan fungsi INDIRECT() masih menampilkan A2 yang asli, yang mungkin sekarang kosong atau memiliki nilai berbeda (UID).

Menggunakan INDIRECT() untuk referensi tetap di Excel.

Menggunakan INDIRECT() untuk referensi tetap di Excel. Gambar oleh Penulis.

Contoh Lanjutan dan Kasus Penggunaan

Setelah Anda nyaman dengan dasarnya, fungsi INDIRECT() semakin bersinar dalam skenario Excel yang lebih lanjut, terutama saat dipadukan dengan fungsi seperti VLOOKUP(), ROW(), dan array dinamis. Kombinasi ini membuka model yang lebih dinamis dan fleksibel.

Gunakan INDIRECT() dengan VLOOKUP()

Anda dapat menggabungkan INDIRECT() dengan VLOOKUP() untuk mengubah tabel pencarian secara dinamis berdasarkan input pengguna.

Misalkan Anda memiliki dua tabel, Prices_2022 dan Prices_2023. Di sel terpisah, G1: Prices_2022 dan G2: Apple`. Rumus di bawah ini secara dinamis mencari "Apple" di tabel tahun yang dipilih berdasarkan nilai di A1 dan mengembalikan harganya.

=VLOOKUP(G2, INDIRECT(G1), 2, FALSE)

Menggunakan INDIRECT() dengan VLOOKUP() di Excel.

Menggunakan INDIRECT() dengan VLOOKUP() di Excel. Gambar oleh Penulis.

Lihat tutorial VLOOKUP() from Another Sheet: A How-to in Excel kami untuk mempelajari lebih lanjut tentang pencarian dan pengambilan data dari lembar Excel yang berbeda.

INDIRECT() dengan referensi R1C1

INDIRECT() juga dapat menggunakan notasi R1C1, yang sangat membantu saat menyusun rumus secara dinamis dalam makro atau mereferensikan posisi secara terprogram.

Sebagai contoh, rumus di bawah mengembalikan nilai di baris 2, kolom 3 (sel C2). Argumen kedua (FALSE) memberi tahu Excel bahwa Anda menggunakan gaya R1C1, bukan A1.

=INDIRECT("R2C3", FALSE)

Menggunakan INDIRECT() dengan R1C1 di Excel.

Menggunakan INDIRECT() dengan R1C1 di Excel. Gambar oleh Penulis.

Rumus berikut mencakup penggunaan dinamis ROW() dan COLUMN(). Rumus ini akan selalu mengembalikan nilai dari kolom 3 pada baris yang sama tempat rumus dituliskan.

=INDIRECT("R" & ROW() & "C3", FALSE)

Menggunakan INDIRECT() dengan ROW() dan COLUMN() di Excel.

Menggunakan INDIRECT() dengan ROW() dan COLUMN() di Excel. Gambar oleh Penulis.

INDIRECT() dan array dinamis

Sebelum Excel memperkenalkan array dinamis, INDIRECT() adalah metode umum untuk menghasilkan perilaku mirip array.

Sebagai contoh, rumus di bawah mengembalikan sebuah array: {1; 2; 3; 4; 5}. Ini mensimulasikan array dari 1 hingga 5 dengan mereferensikan baris secara tidak langsung.

=ROW(INDIRECT("1:5"))

Menggunakan INDIRECT() dengan ROW() untuk array dinamis di Excel.

Menggunakan INDIRECT() dengan ROW() untuk array dinamis di Excel. Gambar oleh Penulis.

Metode alternatif modern adalah menggunakan fungsi SEQUENCE().

=SEQUENCE(5)

Menggunakan SEQUENCE() untuk array dinamis di Excel.

Menggunakan SEQUENCE() untuk array dinamis di Excel. Gambar oleh Penulis.

Menggunakan INDIRECT() untuk array dinamis masih berfungsi, tetapi dianggap kurang efisien dan kurang mudah dibaca dibandingkan SEQUENCE(), FILTER(), dan fungsi array dinamis lainnya yang tersedia di Excel modern (Office 365 dan Excel 2021+).

Peringatan dan Kekhawatiran Kinerja

Fungsi INDIRECT() memiliki beberapa keterbatasan penting, terutama saat digunakan dalam buku kerja Excel yang besar atau kompleks. Masalah-masalah ini mencakup hal-hal berikut:

  • Fungsi volatil (beban perhitungan ulang): INDIRECT() adalah fungsi volatil, artinya ia menghitung ulang setiap kali ada perubahan di mana pun di buku kerja, bahkan jika perubahan tersebut tidak ada hubungannya dengan rumus. Ini dapat menyebabkan kinerja lebih lambat.

  • Debugging bisa menantang: Karena INDIRECT() membangun referensi dari teks, Excel tidak dapat dengan mudah menelusurinya seperti referensi sel standar. Hal itu menyulitkan audit rumus dengan trace precedents/dependents, atau menangkap referensi rusak ketika sesuatu berubah.

  • Pertimbangkan alternatif modern: Jika memungkinkan, sering kali lebih baik menggunakan fungsi non-volatil yang menawarkan kinerja dan kejelasan yang lebih baik. Metode ini mencakup INDEX() untuk pencarian sel dinamis, CHOOSE() untuk memilih dari rentang atau opsi yang sudah ditentukan secara dinamis, dan SEQUENCE() untuk menghasilkan array numerik dinamis.

Kapan sebaiknya menghindari penggunaan INDIRECT()

Meskipun INDIRECT() menawarkan fleksibilitas yang kuat, ini tidak selalu menjadi pilihan terbaik. Sering kali memperkenalkan kompleksitas yang tidak perlu, masalah kinerja, atau masalah perawatan. Di bawah ini beberapa situasi yang sebaiknya dihindari dan metode alternatif terbaiknya.

  • Referensi sel dinamis dalam lembar yang sama: Gunakan INDEX() alih-alih INDIRECT() untuk kinerja dan kemampuan telusur yang lebih baik.

  • Array dinamis atau deret angka: Hindari =ROW(INDIRECT("1:10")). Gunakan =SEQUENCE(10) yang lebih cepat, lebih bersih, dan non-volatil.

  • Saat keterlacakan penting: Rumus yang menggunakan INDIRECT() tidak dapat ditelusuri secara efektif dengan “Trace Precedents” atau “Evaluate Formula”.

  • Mereferensikan sel atau rentang statis: Jangan gunakan INDIRECT("A1") jika Anda bisa langsung menulis =A1.

  • Penggunaan berat di spreadsheet besar: Karena INDIRECT() bersifat volatil, ia terus menghitung ulang dan dapat memperlambat kinerja secara signifikan.

Alternatif untuk INDIRECT()

Tabel berikut merangkum alternatif terbaik untuk INDIRECT().

Tujuan

Pilih Ini Alih-alih INDIRECT()

Referensi sel dinamis

INDEX()

Menghasilkan deret

SEQUENCE()

Logika kondisional atau rumus yang lebih rapi

LET()

Pencarian multi-skenario

CHOOSE() atau XLOOKUP()

Rumus lembar yang fleksibel

XLOOKUP() dengan data terstruktur atau Power Query

Inti Pembelajaran

INDIRECT() mengubah string teks menjadi referensi aktif, menjadikannya alat yang kuat untuk membangun spreadsheet yang dinamis dan fleksibel. Ini berguna untuk mereferensikan lembar yang berbeda, named range, atau sel tetap yang tidak boleh bergeser saat terjadi perubahan. Namun, ini adalah fungsi volatil yang sering menghitung ulang dan dapat memperlambat buku kerja besar. Fungsi ini juga lebih sulit ditelusuri dan di-debug dibandingkan fungsi tradisional. Gunakan INDIRECT() secara selektif, dan pertimbangkan alternatif yang lebih aman serta lebih efisien.

Saya merekomendasikan mengikuti kursus Data Analysis in Excel kami untuk mempelajari wawasan dalam data B2B dan jalur keterampilan Excel Fundamentals untuk mempelajari lebih lanjut tentang fungsi-fungsi yang tersedia di versi Excel terbaru. Kursus Advanced Excel Functions kami sangat cocok jika Anda mengeksplorasi referensi dan pencarian tingkat lanjut.

Allan Ouko

Penulis

Allan Ouko

Penulis teknis Data Science dengan pengalaman langsung dalam analitik data, business intelligence, dan data science. Saya menulis konten praktis berfokus industri tentang SQL, Python, Power BI, Databricks, dan rekayasa data, yang berakar pada pekerjaan analitik dunia nyata. Tulisan saya menjembatani kedalaman teknis dan dampak bisnis, membantu para profesional mengubah data menjadi keputusan yang meyakinkan.

Excel FAQs

Apa yang dilakukan INDIRECT()?

INDIRECT() mengonversi string teks menjadi referensi sel atau rentang.

Apakah INDIRECT() memperbarui secara otomatis?

Ya, INDIRECT() menghitung ulang saat sel yang direferensikan berubah kecuali referensinya tidak valid.

Bagaimana INDIRECT() memengaruhi kinerja?

INDIRECT() menghitung ulang setiap kali sel mana pun di buku kerja berubah, yang dapat memperlambat buku kerja besar atau kompleks karena perhitungan ulang yang sering.

Apa alternatif untuk INDIRECT()?

Gunakan INDEX(), CHOOSE(), SEQUENCE(), atau LET() untuk kinerja yang lebih aman dan lebih cepat.

Mengapa INDIRECT() mengembalikan #REF!?

Referensi yang coba diakses tidak ada atau salah eja.

Topik

Terkait

blogs

Tutorial Korelasi di R

blogs

Spaghetti Plot dan Jalur Badai

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026