Selasa, 15 November 2011

What is Array Formula?



Posting ini bersumber dari tulisan Mbak Siti Vi di milis XL-Mania.




Array Formula IS:
A formula that performs multiple calculations on one or more sets of values, and then returns either a single result or multiple results. Array formulas are enclosed between braces { } and are entered by pressing CTRL+SHIFT+ENTER.)

Rumus Array, katanya, adalah:
Sebuah rumus yg mengerjakan multi-kalkulasi terhadap satu atau lebih dari satu himpunan nilai, dan kemudian menghasilkan hasil tunggal ataupun hasil multi. Rumus Array selalu dikurung (otomatis oleh excel) dgn sepasang tanda { } (braces/kurung kurawal), KARENA HARUS dimasukkan ke cell dengan menekan tombol CTRL+SHIFT+ENTER. "

array
A set of sequentially indexed elements having the same intrinsic data type. Each element of an array has a unique identifying index number. Changes made to one element of an array don't affect the other elements.

Array atau Larik
adalah: Sekelompok element berindex yg mempunyai typedata yg sama. Setiap elemen mempunyai nomor index yg unik. Pengubahan terhadap satu elemen tidak mempengaruhi elemen lainnya.
Dalam prakteknya di worksheet, sebuah range memenuhi syarat untuk disebut sebagai sebuah ARRAY. Apakah semua datanya = satuType atau tidak, akan mempengaruhi hasil Array Formula dimana range tsb digunakan sbg arguments-nya.


constant:
A value that is not calculated and, therefore, does not change. For example, the number 210, and the text ""Quarterly Earnings"" are constants. An expression, or a value resulting from an expression, is not a constant."

konstanta / tetapan:
sebuah nilai yg bukan suatu kalkulasi, dan oleh karena itu nilainya tetap / tidak berubah. Misalnya: bilangan 113 atau teks ""Selatan Jakarta"" adalah contoh sebuah konstanta.
Sebuah nilai yg berupa ekspresi / kalkulasi / rumus: BUKAN sebuah konstanta."

sebelum mulai bermain-main dgn Formula Array, sebaiknya kita fahami dulu beberapa istilah di bawah ini, meskipun, maafkan daku, banyak yg berupa berita-ulangan.

Formula
Formula (atau 'orang sini' bilang RUMUS), adalah persamaan yg mengkalkulasikan beberapa nilai dalam worksheet. Sebuah formula harus dimulai dengan tanda "samadengan" / equal sign (=).
Contohnya: FORMULA di bawah ini akan mengalikan 2 dgn 4 kemudian hasilnya ditambah dgn 7. Di cell Excel akan muncul hasilnya yaitu 15.
=7+2*4
Mengapa bukan 7 ditambah 2 dikerjakan lebih dahulu, itu termasuk salah satu aturan di excel yg sebaiknya juga kita ketahui.
Dalam formula tsb, selain tanda pembuka formula (=), terdapat dua macam ISI, yaitu operand (yg berupa konstanta 7, 2 dan 4) dan operator (yg berupa penambah (+) dan pengali (*). Kita tidak akan membicarakan bahwa ada banyak operator selain + dan *

Pada prinsip-dasarnya, Formula memang hanya terdiri dari Operand (yg mungkin dapat disebut pula sebagai Argument) dan Operator saja. Tetapi Operand itu dapat berupa banyak pilihan, antara lain:
Konstanta, yaitu nilai tetap yg kita tuliskan langsung
Rujukan / reference ke sebuah cell atau range/array !
Fungsi (Worksheet Functions)

Dalam pekembangannya, Rujukan ke cell / range, cell / range-nya ternyata dapat berisi sebuah FORMULA juga.
Sebuah Fungsi ternyata di dalamnya dapat berisi Fungsi-Fungsi juga (fungsi di dalam fungsi / nested functions)

"Titipan Protes & Pertanyaan dari Adek ""mBeling"":
Di atas, Formula dikatakan sebagai PERSAMAAN. Dalam bahasa matematik PERSAMAAN mengandung dua Ruas, Kiri dan Kanan, yg keduanya harus SAMA nilainya.
Sekarang wahai Mbak Iti-ku yg centil, Bagaimana ini ? Di mana Ruas Kirinya ? Hi hi hikk."
"Kamu mau Ruas Kiri Dek ? Mbak Iti tunjukkan Ruas Kirinya: yaitu Cell itu sendiri.
Cell itu minimal punya dua muka / dua tugas: (1) sebagai tempat menuliskan TEKS FORMULANYA yg dimulai dari batas ruas, berupa EqualSign (=).
Tugas kedua: dia adalah sebagai media penampakan dari Variable Memory yg menampung hasil formula tsb.
Variable=FORMULA, atau F16=FORMULA. ! Sudah kelihatan blum? Ruas Kirinya ??. Dan karena Variable diAssigned dengan Formula maka dia menjadi berisi HASIL formula itu, seperti yg kemudian ditampakkan ketika penulisan formula selesai kita enter. ('gitu aja kok repot to Dek..!
""ihh,... ngarang ! "" .... kaburrrr..)"

Function (Fungsi)
Fungsi sebetulnya juga sebuah formula, tetapi mengandung NAMA Fungsi, DAN cara penulisan (sintaks)nya sudah tertentu. Fungsi akan melakukan kalkulasi berdasarkan nilai-nilai pada argument-argument-nya secara spesifik sesuai yg telah ditentukan.
Contohnya: untuk menjumlah sekelompok bilangan di Excel sudah disediakan fungsi SUM
dgn sintaks =SUM(argument1, argument2,… dst...)
dimana argumentnya dapat berupa tiga jenis OPERAND yg sudah disebutkan di atas.
contoh: =SUM(A1:A13, B4:H4,5,(4*5/2),D21,AVERAGE(F10:F21))
SUM adalah nama fungsi, yg tugasnya hanya menjumlah nilai-nilai yg ada dalam arguments-nya.
A1:A13 adalah rujukan ke range, yg saat ini "kebetulan" menjadi Argument1 pada fungsi SUM
B4:H4 sebagai argument2, penjelasannya sama dgn argument1
5 adalah sebuah konstanta type bilangan, diisikan sebagai argument 4
4*5/2 adalah sebuah formula biasa, diisikan sebagai argument ke 5
D21 adalah juga rujukan ke range (yg kebetulan berupa range tanggal / cell), sbg argument ke 5.
Argument ke 6 berupa sebuah fungsi AVERAGE , yaitu mencari nilai rerata dari nilai-nilai yg ada di range F10:F21
, = tanda pemisah argument; ( ) tanda dimulai dan diakhirinya penulisan argument.

Bahkan di dalam fungsi SUM kita dapat memasukkan argument berupa logikal value (yg akan di "hargai" sebagai nilai 1 atau 0). Selain itu, teks bilangan yg diketikkan secara langsung juga akan dianggap sbg bilangan. =SUM("4",3,TRUE,FALSE) menghasilkan 8.
Untuk diketahui, di worksheet excel (Excel 2003) tersedia tak kurang dari 329 buah Fungsi bawaan.

Catatan Kecil, sebelum lupa: Menuliskan Operand ataupun Argument dalam sebuah Formula atau Fungsi TIDAK PERLU DIBERI TANDA +(Plus) lagi di depannya. Yg perlu diberikan hanya tanda - (minus) bila memang nilai MINUS yg dikehendaki. Ini perlu ditegaskan, karena dari worksheet contoh-contoh kasus masih ada beberapa penulisan seperti itu. Walau pun tidak merubah nilai, penulisan tanda + (plus) yang BUKAN sebagai Operator berarti melakukan sesuatu yg mabazir.
=+E14+F16/+D21 dapat di-perBETUL dgn =E14+F16/D21

Type Data
Di worksheet Excel ada pembedaan Type (jenis) data. Secara garis besar, ada dua Type Data, yaitu Type Bilangan (Numbers) dan Type Teks (String)
Bilangan adalah tyedata yg dapat di-aritmatik-kan (di tambah, kurang, bagi, kali, pangkat dst) dgn bilangan lain, dan akan menghasilkan bilangan baru. Sedangkan type String, tidak punya nilai bilangan, jadi tidak dapat di-aritmatik-kan.

Type Data Bilangan, untuk keperluan-keperluan tertentu dapat diFORMAT untuk dapat tampil sebagai type data TANGGAL / JAM dsb.
Apa pun cara tampilnya di worksheet, dia adalah tetap type bilangan. Tetapi Karakter Numerik (0 s/d 9) dapat dimasukkan ke cell sebagai Teks, secara sengaja maupun tidak sengaja. Hal seperti ini menjadikan Teks berpenampakan Bilangan. Excel 2003 mengangap data spt ini layak untuk diberi bendera hijau. (ErrorChecking: Numbers stored as Text)

Selain kedua type yg telah disebut di atas, ada data type Logikal, yaitu kondisi BENAR atau SALAH, yg di-representasikan dgn TRUE dan FALSE. Dalam kasus-kasus tertentu data type Logikal dapat dianggap (menjadi) data type bilangan, yaitu bernilai 0 atau 1.
Pada Array Formula yg sudah "tingkat lanjut", pemahaman ini sangat diperlukan.

Tatkala memasukkan data ke cell, hendaknya kita memperhatikan TYPE DATA yg kita kehendaki. Ada beberapa cara / kiat untuk memasukkan data ke cell agar oleh excel dianggap sbg type Bilangan (Numbers), terutama subType TANGGAL.
Tidak jarang kesulitan timbul dan ternyata berawal dari data kita yg kita SANGKA bilangan / Tanggal ternyata: bertype String.
Teks yg berpenampakan SEPERTI Bilangan atau SEPERTI Tanggal / Time, jika tidak disadari "ke-TYPE-an"-nya sering menjengkelkan karena menggagalkan HASIL YG DIKEHENDAKI dalam rumus.
SALAH TYPE ini sudah sering dibicarakan di milis XL-mania, harapan kita tidak diulang (JANGAN tidak disadari) oleh members lain, agar kita dapat segera meningkat ke pemikiran lain yg bukan sekedar SALAH TYPE saja.

Kapan kita perlu menulis Array Formula ?
Array Formula diperlukan: Jika dalam formula yg akan kita buat mengandung Evaluasi terhadap (minimal) SEKELOMPOK DATA (range / array) dengan syarat tertentu, dan hasil evaluasi itu (yg tentunya berupa BANYAK HASIL evaluasi) ingin kita ketahui secara individual, baik nantinya ditampilkan dalam BANYAK cell atau pun hanya ditampilkan dalam cell tunggal (setelah dirangkum dengan fungsi perangkum, misal SUM, AVERAGE, PRODUCT, MAX, MIN, SMALL, LARGE, AND, OR dsb)
NOTE: Array formula yg menghasilkan MULTI-HASIL, jika dituliskan hanya dalam satu cell akan hanya menampakkan HASIL-PERTAMA saja, atau bila MULTI HASIL tsb berupa sebuah RUJUKAN RANGE, akan menampakkan ErrorValue."
Yg siti maksud dgn Evaluasi terhadap sekelompok data, kira-kira begini (dalam kasus paling sederhana): range A1:A1000 berisi data-data bilangan. Anda ingin mengetahui Ada berapa buah bilangan yg Nilainya < 100. Maka Jawabannya hanya dapat dimunculkan bila kita TELAH MELIHAT SETIAP CELL dalam Range tsb SATU-PERSATU dan mencatat hasil tiap EVALUASI tsb.

Jika kasus yg kita hadapi minimal seperti itu, maka Array formula sudah mulai dapat dipertimbangkan penggunaannya. Tetapi dalam beberapa kasus sederhana yg sudah melibatkan array seperti itu; Excel sebetulnya SUDAH menyediakan fungsi-fungsi yg penulisannya tidak perlu di-enter dengan CSE. Misalnya Fungsi COUNTIF, SUMIF, SUMPRODUCT dan mungkin masih ada beberapa lagi.

Saya kira, minimal Ketiga fungsi ini sebaiknya kita ubek-ubek sampai kita faham "jalan ceritak"-nya. Berdasarkan pemahaman "fungsi ber-Aragument array sederhana" inilah kita punya pengalaman main array untuk masuk ke Formula Array yg lebih tinggi kompleksitasnya.

Fungsi semacam COUNTIF dan SUMIF, MATCH, hanya mampu diberi satu syarat, Jika syarat evaluasi sudah lebih dari satu, harus ada cara lain untuk mencari solusinya. Array formula adalah salah satu jawabannya.
Fungsi Fungsi lain yg argumennya dapat berupa Array, tidak harus dituliskan secara array formula (dan oleh karena itu: bukan Array Formula), misalnya fungsi SUM dan AVERAGE, MIN, MAX, INDEX dsb.."
Walau pun fungsi-fungsi semacam itu mengandung argument berupa array, misal SUM(A1:A1000), di sini tidak ada pekerjaan mengevaluasi dgn syarat tertentu terhadap setiap data di A1 s/d A1000. Yg terjadi hanyalah SEMUA nilai yg ada di Range tsb TANPA SYARAT dijumlahkan. Hasilnya pun selalu hanya Hasil Tunggal, bukan Multi Hasil. O.k.i. Fungsi SUM sederhana bukan termasuk Array Formula

Maafkan (lagi) daku, kalimat yg dimaksudkan sbg usaha menjelaskan itu kayaknya tidak mudah ditangkap maksudnya. Mungkin malah membuat hal yg ingin Anda ketahui menjadi semakin kabur. (yg menulis pun juga ndak mudeng jeee.., lha wong Cuma nulis dowang..) Oleh karena itu mempraktekkannyadalam beberapa contoh : hukumnya adalah "wajib dan halal" ! (begitu kata pak Syafril dari Seksi Kerohanian XL maniak... ya kan pak?!)

Pada wokbuk (terlampir), di beberapa sheets kita akan mencoba mempraktekkan array formula pada tingkat yg paling sederhana. (pasalnya mau membuat contoh yg tingkat yg canggih belum bisa..). Pengembangan ke tingkat yg lebih sofistiketed, kuncinya tentu ada pada diri kita masing-masing.., komponennya: kesempatan, waktu dan kemauan & ke-ngeyel-an.. Masih ingatkah Anda, bang & mpok Momods pernah bilang bahwa Array Formula dapat bekerja sebagai Looping ? Sehingga dalam kasus tertentu Array Formula adalah PseudoLooping ?

Di Help Excel, ada beberapa topik yg bagoes mengenai Array formula. Pada boks "Search For" ketikkan Array Formula, dan help akan menyajikan daftar topik terkait. Di Excel 2003, dlm kondisi OffLine, tersaji 20 results, tetapi yg benar-2 beraroma array formula hanya 5 bijik. Sikat semua aja blèh !!

.

lampiran Workbook bisa didownload di Boxnet pada sidebar di samping kanan tulisan ini atau di sini


Artikel Terkait:

2 komentar:

Anonim mengatakan...

wah, agak sulit juga ya...?
btw, contoh-contohnya sangat jelas dan menarik. Walau butuh waktu untuk paham.

banyubening mengatakan...

"nderek nyimak pak guru...semoga ilmu njenengan bisa mengantarkan njenengan ke surga.