Sintaks Indirect adalah sebagi berikut:
Indirect( string_reference, ref_style )
string_reference adalah referensi sel dalam bentuk teks, misalnya B2, A25, IV23 atau R1C2.
ref_style adalah pilihan bentuk referensi yang berisi nilai TRUE atau FALSE. TRUE jika string_reference akan diintepretasikan sebagai bentuk
referensi
A1. FALSE menunjukkan bahwa string_reference dalam bentuk referensi R1C1. Jika pilihan ini dikosongkan maka, fungsi Indirect akan menganggap bahwan string_reference sebagai bentuk A1.
Contoh berikut berlaku untuk Excel 2007, Excel 2003, Excel XP, Excel 2000
Let’s take a look at an example:
Dengan menggunakan spreadsheet Excel di atas, maka:
Formula | Hasil |
=Indirect(“$B$4″) | menghasilkan angka 3 |
=Indirect(“A5″) | menghasilkan 10570 |
=Indirect(“A5″, TRUE) | menghasilkan 10570 |
=Indirect(“R2C3″, FALSE) | Menghasilkan $3.50 |
=SUM(A5:A10)
Yang menjumlahkan nilai dalam range A5:A10. Akan tetapi, misalnya anda ingin dapat menentukan range baris yang dijumlahkan segera tanpa mengubah formula, maka dengan fungsi INDIRECT anda dapat melakukan hal ini. Misalnya anda meletakkan awal baris pada sel B1, dan akhir baris di C1. Maka, Formula anda menjadi
=SUM(INDIRECT(“A”&B1&”:A”&C1))
“A”&B1&”:A”&C1
Jika B1 berisi nilai 5 dan C1 berisi nilai 10, maka argumen tersebut di atas this akan menghasilkanstring “A5:A10″. Fungsi INDIRECT mengubah string tersebut menjadi range reference sebenarnya, yang selanjutnya akan dimasukkan sebagai referensi bagi fungsi SUM.
Fitur yang sangat berguna lainnya dari fungsi INDIRECT disebabkan oleh perlakuan fungsi ini yang menggunakan argumen string, sehingga anda dapat menggunakan dengan referensi sel yang tidak berubah jika anda ingin menginsert dan mendelete baris. Biasanya, Excel akan mengubah referensi sel (cell references) pada saat anda meng- Insert atau Men- Delete baris atau kolom, bahkan jika anda menggunakan Referensi Absolut. Jika anda memiliki formula =SUM($A$1:$A$10), kemudian anda meng-Insert baris pada baris ke 5, maka Excel akan mengubah formulanya menjadi =SUM($A$1:$A$11). Hal ini tidak akan terjadi jika anda menggunakan fungsi INDIRECT function sebagai referensi sel/range:
=SUM(INDIRECT(“A1:A10″))
Karena Excel menganggap bahwa “A1:A10″ sebagai text string bukannya sebagai range reference, maka referensi ini tidak akan berubah jika baris atau kolom di-delete atau di-insert.
Fitur ini juga sangat penting jika kita menggunakannya dengan array formulas. Seringkali, formula array menggunakan fungsi ROW(), yaitu fungsi yang menghasilkan deret (array) angka-angka. Sebagai contoh, formula berikut akan menghasilkan rata-rata dari 10 angka terbesar dalam sebuah range A1:A60 :
=AVERAGE(LARGE(A1:A60,ROW(1:10)))
Akan tetapi. Jika anda menambahkan baris dengan meng-insert diantara baris 1 dan 10, maka Excel akan mengubah formula menjadi
=AVERAGE(LARGE(A1:A60,ROW(1:11)))
Tentunya hasil formula ini menjadi salah karena akan menghasilkan rata-rata 11 angka terbesar. Jika kita menggunakan fungsi ROW() dengan argumen string, maka Excel tidak akan mengubah referensi tersebut, jadi formula akan tetap menghasilkan perhitungan yang benar, walaupun ada baris yang di-insert atau di-delete.
=AVERAGE(LARGE(A1:A60,ROW(INDIRECT(“1:10″))))
Anda dapat pula menggunakan fungsi INDIRECT bersama dengan fungsi ADDRESS. Fungsi ADDRESS menggunakan angka baris dan kolom untuk membuat alamat sel sebagai string. Sebagai contoh, formula =ADDRESS(5,6) menghasilkan $F$5, karena $F$5 adalah baris ke 5 dari kolom ke 6. Anda dapat memasukkan formula ini ke INDIRECT untuk mendapatkan nilai F5. Sebagai contoh, =INDIRECT(ADDRESS(5,6)) .
Memang kelihatannya fungsi-fungsi diatas biasa-biasa saja, namun dalam kenyataannya fungsi diatas akan sangat membantu dalam pengembangan formula yang lebih rumit.
sumber; http://excel.aurino.com/?p=239