Rumus array adalah rumus yang dapat melakukan beberapa perhitungan pada satu atau beberapa item dalam array. Anda dapat menganggap array sebagai baris atau kolom nilai, atau kombinasi baris dan kolom nilai. Rumus array dapat menghasilkan beberapa hasil, atau satu hasil.
Dimulai dengan pembaruan Bulan September 2018 untuk Microsoft 365, rumus apa pun yang dapat mengembalikan beberapa hasil akan secara otomatis menumpahkannya, atau melintasi sel-sel yang berdekatan. Perubahan perilaku ini juga disertai dengan beberapa fungsi array dinamis baru. Rumus array dinamis, baik yang menggunakan fungsi yang ada atau fungsi array dinamis, hanya perlu dimasukkan ke dalam satu sel, lalu dikonfirmasi dengan menekan Enter. Sebelumnya, rumus array legasi mengharuskan terlebih dahulu memilih seluruh rentang output, lalu mengonfirmasi rumus dengan Ctrl+Shift+Enter. Rumus ini biasanya disebut sebagai rumus CSE.
Anda dapat menggunakan rumus array untuk melakukan tugas kompleks, seperti:
- Membuat himpunan data sampel dengan cepat.
- Menghitung jumlah karakter yang terdapat dalam rentang sel.
- Menjumlahkan angka yang memenuhi syarat tertentu saja, seperti nilai terendah dalam rentang, atau angka yang berada di antara batas atas dan bawah.
- Menjumlahkan setiap nilai ke-N dalam rentang nilai.
Contoh berikut menunjukkan cara membuat rumus array multisel dan sel tunggal. Jika memungkinkan, kami telah menyertakan contoh dengan beberapa fungsi array dinamis, serta rumus array yang sudah ada yang dimasukkan sebagai array dinamis dan legasi.
Mengunduh contoh kami
Unduh buku kerja contoh dengan semua contoh rumus array dalam artikel ini.
Array multisel dan sel tunggal
Latihan ini menunjukkan cara menggunakan rumus array multisel dan sel tunggal untuk menghitung serangkaian angka penjualan. Rangkaian langkah pertama menggunakan rumus multisel untuk menghitung rangkaian subtotal. Rangkaian kedua menggunakan rumus sel tunggal untuk menghitung jumlah total.
Rumus array multisel
Di sini kami menghitung Total Penjualan coupe dan sedan untuk setiap staf penjualan dengan memasukkan =F10:F19*G10:G19 di sel H10.
Saat menekan Enter, Anda akan melihat hasil meluap ke bawah ke sel H10:H19. Perhatikan bahwa rentang luapan disorot dengan batas saat Anda memilih sel mana pun dalam rentang luapan. Anda mungkin juga melihat bahwa rumus di sel H10:H19 berwarna abu-abu. Rumus tersebut hanya ada untuk referensi, jadi jika Anda ingin menyesuaikan rumus, Anda harus memilih sel H10, tempat rumus master berada.Rumus array sel tunggal
Di sel H20 buku kerja contoh, ketik atau salin dan tempel =SUM(F10:F19*G10:G19), lalu tekan Enter.
Dalam kasus ini, Excel mengalikan nilai dalam array (rentang sel F10 sampai G19), lalu menggunakan fungsi SUM untuk menjumlahkan totalnya. Hasilnya adalah jumlah total penjualan $1.590.000,00.
Contoh ini menunjukkan betapa canggihnya tipe rumus ini. Sebagai contoh, misalnya Anda memiliki 1.000 baris data. Anda dapat menjumlahkan sebagian atau semua data itu dengan membuat rumus array di sel tunggal sebagai ganti menyeret rumus menuruni 1.000 baris. Perhatikan juga bahwa rumus sel tunggal di sel H20 independen sepenuhnya terhadap rumus multisel (rumus di sel H10 sampai H19). Ini adalah keunggulan lain penggunaan rumus array — fleksibilitas. Anda dapat mengubah rumus lain di kolom H tanpa memengaruhi rumus di H20. Hal ini juga merupakan praktik yang baik untuk memiliki total yang independen seperti ini, karena membantu memvalidasi keakuratan hasil.Rumus array dinamis juga menawarkan keunggulan berikut:
- Konsistensi Jika Anda mengklik salah satu sel dari H10 ke bawah, Anda akan melihat rumus yang sama. Konsistensi ini dapat membantu memastikan akurasi yang lebih tinggi.
- Keselamatan Anda tidak bisa menimpa komponen rumus array multisel. Misalnya, klik sel H11, lalu tekan Delete. Excel tidak akan mengubah output array. Untuk mengubahnya, Anda harus memilih sel kiri atas dalam array, atau sel H10.
- Ukuran file yang lebih kecil Anda bisa sering menggunakan rumus array tunggal dan bukan beberapa rumus menengah. Misalnya, contoh penjualan mobil menggunakan satu rumus array untuk menghitung hasil di kolom E. Jika Anda telah menggunakan rumus standar seperti =F10*G10, F11*G11, F12*G12, dll., Anda akan menggunakan 11 rumus yang berbeda untuk menghitung nilai yang sama. Itu bukan masalah besar, tetapi bagaimana jika Anda memiliki ribuan baris? Maka itu dapat membuat perbedaan besar.
- Efisiensi Fungsi array bisa menjadi cara yang efisien untuk menyusun rumus kompleks. Rumus array =SUM(F10:F19*G10:G19) sama dengan ini: =SUM(F10*G10,F11*G11,F12*G12,F13*G13,F14*G14,F15*G15,F16*G16,F17*G17,F18*G18,F19*G19).
- Menumpahkan Rumus array dinamis akan secara otomatis meluap ke dalam rentang output. Jika data sumber ada dalam tabel Excel, rumus array dinamis akan secara otomatis mengubah ukurannya saat Anda menambahkan atau menghapus data.
- Kesalahan #LUAPAN! . Array dinamis memperkenalkan kesalahan #SPILL!, yang menunjukkan bahwa rentang luapan yang dimaksud diblokir karena beberapa alasan. Saat Anda mengatasi penghalang, rumus akan meluap secara otomatis.
Membuat barisan tetap satu atau dua dimensi
Barisan tetap adalah komponen dari rumus array. Anda membuat barisan tetap dengan memasukkan daftar item, lalu menutup daftar itu secara manual dengan tanda kurung kurawal ({ }), seperti ini:
={1,2,3,4,5} atau ={"January","Februari","March"}
Jika memisahkan item dengan koma, Anda membuat array horizontal (baris). Jika memisahkan item dengan titik koma, Anda membuat array vertikal (kolom). Untuk membuat array dua dimensi, batasi item di setiap baris dengan koma, dan batasi setiap baris dengan titik koma.
Prosedur berikut akan memberi Anda beberapa latihan dalam membuat konstanta horizontal, vertikal, dan dua dimensi. Kami akan menunjukkan contoh penggunaan fungsi SEQUENCE untuk membuat barisan tetap secara otomatis, serta memasukkan barisan tetap secara manual.
-
Membuat konstanta horizontal
Gunakan buku kerja dari contoh sebelumnya, atau buat buku kerja baru. Pilih sel kosong, lalu masukkan =SEQUENCE(1,5). Fungsi SEQUENCE menyusun array kolom 1 baris kali 5 sama seperti ={1,2,3,4,5}. Hasil berikut akan ditampilkan:
-
Membuat konstanta vertikal
Pilih sel kosong dengan ruang di bawahnya, lalu masukkan =SEQUENCE(5), atau ={1;2;3;4;5}. Hasil berikut akan ditampilkan:
-
Membuat konstanta dua dimensi
Pilih sel kosong dengan ruang di sebelah kanan dan di bawahnya, lalu masukkan =SEQUENCE(3,4). Anda akan melihat hasil berikut:
Anda juga dapat memasukkan: atau ={1\2\3\4;5\6\7\8;9\10\11\12}, tetapi Anda perlu memperhatikan tempat meletakkan titik koma versus koma.
Seperti yang Anda lihat, opsi SEQUENCE menawarkan keuntungan yang signifikan dibandingkan memasukkan nilai barisan tetap secara manual. Terutama, menghemat waktu Anda, tetapi juga dapat membantu mengurangi kesalahan dari entri manual. Ini juga lebih mudah dibaca, terutama karena titik koma sulit dibedakan dari pemisah koma.
Sintaksis barisan tetap
Berikut adalah contoh yang menggunakan barisan tetap sebagai bagian dari rumus yang lebih besar. Dalam contoh buku kerja, masuk ke Konstanta dalam lembar kerja rumus, atau buat lembar kerja baru.
Di sel D9, kami memasukkan =SEQUENCE(1,5,3,1), tetapi Anda juga dapat memasukkan 3, 4, 5, 6, dan 7 di sel A9:H9. Tidak ada hal khusus dari pemilihan nomor tersebut, kami hanya memilih nomor selain 1-5 agar berbeda.
Dalam sel E11, masukkan =SUM(D9:H9*SEQUENCE(1,5)), atau =SUM(D9:H9*{1,2,3,4,5}). Rumus menghasilkan 85.
Fungsi SEQUENCE menyusun setara dengan konstanta {1,2,3,4,5}array . Karena Excel mengoperasikan ekspresi yang diapit tanda kurung terlebih dahulu, dua elemen berikutnya yang dioperasikan adalah nilai sel di D9:H9, dan operator perkalian (*). Pada titik ini, rumus mengalikan nilai dalam array yang tersimpan dengan nilai yang terkait dalam konstanta. Ini ekuivalen dengan:
=SUM(D9*1,E9*2,F9*3,G9*4,H9*5), atau =SUM(3*1,4*2,5*3,6*4,7*5)
Terakhir, fungsi SUM menambahkan nilai, dan menghasilkan 85.
Untuk menghindari penggunaan array tersimpan dan mempertahankan seluruh operasi dalam memori, Anda dapat menggantinya dengan barisan tetap lain:
=SUM(SEQUENCE(1,5,3,1)*SEQUENCE(1,5)), atau =SUM({3,4,5,6,7}*{1,2,3,4,5})
Elemen yang dapat Anda gunakan dalam barisan tetap
- Barisan tetap dapat berisi angka, teks, nilai logis (seperti TRUE dan FALSE), dan nilai kesalahan seperti #N/A. Anda dapat menggunakan angka dalam format bilangan bulat, desimal, dan notasi ilmiah. Jika menyertakan teks, Anda harus menutupnya dengan tanda kutip ("teks”).
- Konstanta array tidak boleh berisi array, rumus, atau fungsi tambahan. Dengan kata lain, konstanta array hanya boleh berisi teks atau angka yang dipisahkan dengan koma atau titik koma. Excel menampilkan pesan peringatan apabila Anda memasukkan rumus seperti {1\2\A1:D4} atau {1\2\SUM(Q2:Z8)}. Nilai numerik juga tidak boleh berisi tanda persen, tanda dolar, koma, atau kurung.
Memberi nama konstanta array
Salah satu cara terbaik untuk menggunakan barisan tetap adalah dengan memberinya nama. Konstanta bernama lebih mudah digunakan, dan dapat menyembunyikan kerumitan rumus array Anda dari orang lain. Untuk memberi nama konstanta array dan menggunakannya dalam rumus, lakukan hal berikut:
Masuk keNama>yang> Ditentukan RumusTentukan Nama. Di kotak Nama, ketik Quarter1. Di kotak Merujuk ke, masukkan konstanta berikut (ingatlah untuk mengetikkan tanda kurung kurawal secara manual):
={"January"\"February"\"March"}
Kotak dialog kini akan terlihat seperti ini:
Klik OK, lalu pilih baris apa pun dengan tiga sel kosong, lalu masukkan =Quarter1.
Hasil berikut akan ditampilkan:
Jika Anda ingin hasilnya luap secara vertikal dan bukan horizontal, Anda bisa menggunakan =TRANSPOSE(Quarter1).
Jika ingin menampilkan daftar 12 bulan, seperti yang mungkin Anda gunakan saat membuat laporan keuangan, Anda dapat mendasarkannya pada tahun ini dengan fungsi SEQUENCE. Hal yang menarik dari fungsi ini adalah meskipun hanya bulan yang ditampilkan, ada tanggal valid di belakangnya yang dapat Anda gunakan dalam perhitungan lain. Anda akan menemukan contoh ini pada lembar kerja kumpulan data sampel cepat dan konstanta array bernama dalam buku kerja contoh.
=TEXT(DATE(YEAR(TODAY()),SEQUENCE(1,12),1),"mmm")
Ini menggunakan fungsi DATE untuk membuat tanggal berdasarkan tahun ini, SEQUENCE membuat barisan tetap dari 1 sampai 12 untuk Januari sampai Desember, lalu fungsi TEXT mengubah format tampilan menjadi "mmm" (Jan, Feb, Mar, dll.). Jika ingin menampilkan nama lengkap bulan, seperti Januari, Anda perlu menggunakan "mmmm".
Jika menggunakan konstanta bernama sebagai rumus array, ingatlah untuk memasukkan tanda sama dengan, seperti =Quarter1, bukan hanya Quarter1. Jika tidak, Excel akan menafsirkan array tersebut sebagai string teks dan rumus Anda tidak akan bekerja seperti yang diharapkan. Terakhir, ingatlah bahwa Anda dapat menggunakan kombinasi fungsi, teks dan angka. Semua tergantung pada seberapa kreatif yang Anda inginkan.
Konstanta array dalam praktik
Contoh berikut menggambarkan beberapa cara penempatan konstanta array untuk digunakan dalam rumus array. Beberapa contoh menggunakan fungsi TRANSPOSE untuk mengubah baris menjadi kolom dan sebaliknya.
-
Mengalikan setiap item dalam array
Masukkan =SEQUENCE(1,12)*2, atau ={1\2\3\4;5\6\7\8;9\10\11\12}*2
Anda juga dapat membagi dengan (/), menambahkan dengan (+), dan mengurangi dengan (-). -
Memangkatkan item dalam array
Masukkan =SEQUENCE(1,12)^2, atau ={1\2\3\4;5\6\7\8;9\10\11\12}^2 -
Menemukan akar kuadrat dari item kuadrat dalam array
Masukkan =SQRT(SEQUENCE(1,12)^2), atau =SQRT({1,2,3,4; 5,6,7,8; 9,10,11,12}^2) -
Mengubah urutan baris satu dimensi
Masukkan =TRANSPOSE(SEQUENCE(1,5)), atau =TRANSPOSE({1,2,3,4,5})
Meskipun Anda memasukkan barisan tetap horizontal, fungsi TRANSPOSE akan mengubah barisan tetap tersebut menjadi kolom. -
Transpose kolom satu dimensi
Masukkan =TRANSPOSE(SEQUENCE(5,1)), atau =TRANSPOSE({1;2;3;4;5})
Meskipun Anda memasukkan barisan tetap vertikal, fungsi TRANSPOSE akan mengubah barisan tetap tersebut menjadi baris. -
Transpose konstanta dua dimensi
Masukkan =TRANSPOSE(SEQUENCE(3,4)), atau =TRANSPOSE({1\2\3\4;5\6\7\8;9\10\11\12})
Fungsi TRANSPOSE mengubah setiap baris menjadi serangkaian kolom.
Menerapkan rumus array dasar ke pekerjaan
Bagian ini menyediakan contoh rumus array dasar.
Membuat array dari nilai yang ada
Contoh berikut menjelaskan cara menggunakan rumus array untuk membuat array baru dari array yang sudah ada.
Masukkan =SEQUENCE(3,6,10,10), atau ={10\20\30\40\50\60;70\80\90\100\110\120;130\140\150\160\170\180}
Pastikan untuk mengetik { (tanda kurung kurawal buka) sebelum mengetik 10, dan } (tanda kurung kurawal tutup) setelah mengetik 180, karena Anda sedang membuat array angka.
Berikutnya, masukkan =D9#, atau =D9:I11 di sel kosong. Arrat 3 x 6 dari sel muncul dengan niilai yang sama yang Anda lihat di D9:D11. Tanda # disebut operator rentang luapan, dan ini merupakan cara Excel dalam mereferensikan seluruh rentang array daripada harus mengetiknya.
Membuat barisan tetap dari nilai yang ada
Anda dapat mengambil hasil rumus array yang meluap dan mengubahnya menjadi bagian-bagian komponennya. Pilih sel D9, lalu tekan F2 untuk beralih ke mode edit. Berikutnya, tekan F9 untuk mengonversi referensi sel menjadi nilai, yang kemudian dikonversi Excel menjadi konstanta array. Saat Anda menekan Enter, rumus, =D9#, kini seharusnya menjadi ={10\20\30;40\50\60;70\80\90}.Menghitung karakter dalam rentang sel
Contoh berikut menunjukkan cara menghitung jumlah karakter dalam rentang sel. Ini termasuk spasi.
=SUM(LEN(C9:C13))
Dalam kasus ini, fungsi LEN menghasilkan panjang setiap string teks di setiap sel dalam rentang tersebut. Fungsi SUM kemudian menjumlahkan semua nilai tersebut dan menampilkan hasilnya (66). Jika ingin mendapatkan jumlah karakter rata-rata, Anda dapat menggunakan:
=AVERAGE(LEN(C9:C13))Isi sel terpanjang dalam rentang C9:C13
=INDEX(C9:C13,MATCH(MAX(LEN(C9:C13)),LEN(C9:C13),0),1)
Rumus ini hanya berfungsi jika rentang data hanya berisi satu kolom sel.
Mari periksa lebih dekat rumus ini, mulai dari elemen dalam ke arah luar. Fungsi LEN menghasilkan panjang setiap item dalam rentang sel D2:D6. Fungsi MAX menghitung nilai terbesar di antara item tersebut, yang sesuai dengan string teks terpanjang, yang ada di sel D3.
Di sini akan mulai terlihat sedikit kompleks. Fungsi MATCH menghitung offset (posisi relatif) sel yang berisi string teks terpanjang. Untuk melakukannya, diperlukan tiga argumen: nilai pencarian, array pencarian, dan tipe yang cocok. Fungsi MATCH mencari array pencarian untuk nilai pencarian yang ditetapkan. Dalam kasus ini, nilai pencarian adalah string teks terpanjang:
MAX(LEN(C9:C13)
dan bahwa string itu terdapat dalam array ini:
LEN(C9:C13)
Argumen tipe yang cocok dalam kasus ini adalah 0. Tipe yang cocok dapat berupa nilai 1, 0, atau -1.- 1 - menghasilkan nilai terbesar yang kurang dari atau sama dengan val pencarian
- 0 - menghasilkan nilai pertama yang sama persis dengan nilai pencarian
- -1 - menghasilkan nilai terkecil yang lebih besar atau sama dengan nilai pencarian yang ditentukan
- Jika Anda menghilangkan tipe yang cocok, Excel mengasumsikan 1.
Terakhir, fungsi INDEX memperhitungkan argumen ini: array, serta nomor baris dan kolom dalam array tersebut. Rentang sel C9:C13 memberikan array, fungsi MATCH memberikan alamat sel, dan argumen akhir (1) menentukan bahwa nilai berasal dari kolom pertama dalam array.
Jika ingin mendapatkan isi string teks terkecil, Anda perlu mengubah MAX pada contoh di atas dengan MIN.Menemukan n nilai terkecil dalam rentang
Contoh ini memperlihatkan cara menemukan tiga nilai terkecil dalam rentang sel, di mana array data sampel di sel B9:B18 telah dibuat dengan: =INT(RANDARRAY(10,1)*100). Perhatikan bahwa RANDARRAY adalah fungsi yang mudah berubah, jadi Anda akan mendapatkan kumpulan angka acak baru setiap kali Excel menghitung.
Masukkan =SMALL(B9#,SEQUENCE(D9), =SMALL(B9:B18,{1;2;3})
Rumus ini menggunakan barisan tetap untuk mengevaluasi fungsi SMALL tiga kali dan menghasilkan 3 anggota terkecil dalam array yang terdapat di sel B9:B18, dengan 3 adalah nilai variabel di sel D9. Untuk menemukan lebih banyak nilai, Anda dapat menambah nilai dalam fungsi SEQUENCE, atau menambahkan lebih banyak argumen ke konstanta. Anda juga dapat menggunakan fungsi tambahan dengan rumus ini, seperti SUM atau AVERAGE. Misalnya:
=SUM(SMALL(B9#,SEQUENCE(D9))
=AVERAGE(SMALL(B9#,SEQUENCE(D9))Menemukan n nilai terbesar dalam satu rentang
Untuk mencari nilai terbesar dalam satu rentang, Anda dapat mengganti fungsi SMALL dengan fungsi LARGE. Selain itu, contoh berikut menggunakan fungsi ROW dan INDIRECT.
Masukkan =LARGE(B9#,ROW(INDIRECT("1:3"))), atau =LARGE(B9:B18,ROW(INDIRECT("1:3")))
Pada tahap ini, mengetahui sedikit tentang fungsi ROW dan INDIRECT mungkin akan berguna untuk Anda. Anda dapat menggunakan fungsi ROW untuk membuat array bilangan bulat berurutan. Misalnya, pilih kolom kosong, lalu masukkan:
=ROW(1:10)
Rumus ini membuat kolom 10 bilangan bulat berurutan. Untuk melihat kemungkinan masalah, sisipkan satu baris di atas rentang yang memuat rumus array (yaitu, di atas baris 1). Excel menyesuaikan referensi baris, dan kini rumus menghasilkan bilangan bulat dari 2 sampai 11. Untuk mengatasinya, tambahkan fungsi INDIRECT pada rumus:
=ROW(INDIRECT("1:10"))
Fungsi INDIRECT menggunakan string teks sebagai argumennya (itulah sebabnya rentang 1:10 ditutup dengan tanda kutip). Excel tidak menyesuaikan nilai teks apabila Anda menyisipkan baris atau memindahkan rumus array. Akibatnya, fungsi ROW selalu menghasilkan array bilangan bulat yang Anda inginkan. Anda dapat dengan mudah menggunakan SEQUENCE:
=SEQUENCE(10)
Mari periksa rumus yang Anda gunakan sebelumnya — =LARGE(B9#,ROW(INDIRECT("1:3"))) — dimulai dari tanda kurung dalam ke arah luar: Fungsi INDIRECT menghasilkan sekumpulan nilai teks, dalam kasus ini nilai 1 sampai 3. Fungsi ROW kemudian menghasilkan array kolom tiga sel. Fungsi LARGE menggunakan nilai dalam rentang sel B9:B18, dan dievaluasi tiga kali, satu kali untuk setiap referensi yang dihasilkan oleh fungsi ROW. Jika ingin mencari nilai lainnya, Anda dapat menambahkan rentang sel yang lebih besar ke fungsi INDIRECT. Terakhir, seperti contoh SMALL, Anda dapat menggunakan rumus ini dengan fungsi lain, seperti SUM dan AVERAGE.
Mengatasi kesalahan
-
Menjumlahkan rentang yang berisi nilai kesalahan
Fungsi SUM di Excel tidak berfungsi apabila Anda mencoba menjumlahkan rentang yang berisi nilai kesalahan, misalnya #VALUE! atau #N/A. Contoh ini menunjukkan cara menjumlahkan nilai dalam rentang bernama Data yang berisi kesalahan:
-
=SUM(IF(ISERROR(Data),"",Data))
Rumus ini membuat array baru yang berisi nilai aslinya dikurangi setiap nilai kesalahan. Dimulai dari fungsi dalam ke arah luar, fungsi ISERROR mencari rentang sel (Data) untuk kesalahan. Fungsi IF menghasilkan nilai tertentu jika kondisi yang Anda tetapkan dievaluasi TRUE dan nilai lain jika dievaluasi FALSE. Dalam kasus ini, fungsi akan mengembalikan string kosong ("") untuk semua nilai kesalahan karena dievaluasi ke TRUE, dan mengembalikan nilai yang tersisa dari rentang (Data) karena dievaluasi ke FALSE, yang berarti tidak berisi nilai kesalahan. Fungsi SUM kemudian menghitung jumlah total untuk array yang difilter. -
Menghitung jumlah nilai kesalahan dalam rentang
Contoh ini serupa dengan rumus sebelumnya, tetapi menghasilkan jumlah nilai kesalahan dalam rentang bernama Data dan bukan memfilternya:
=SUM(IF(ISERROR(Data),1,0))
Rumus ini membuat array yang berisi nilai 1 untuk sel yang berisi kesalahan dan nilai 0 untuk sel yang tidak berisi kesalahan. Anda dapat menyederhanakan rumus dan mendapatkan hasil yang sama dengan menghapus argumen ketiga untuk fungsi IF, seperti ini:
=SUM(IF(ISERROR(Data),1))
Jika Anda tidak menentukan argumen, fungsi IF menghasilkan FALSE jika sel tidak berisi nilai kesalahan. Anda dapat menyederhanakan lagi rumus tersebut:
=SUM(IF(ISERROR(Data)*1))
Versi ini bekerja karena TRUE*1=1 dan FALSE*1=0.
Menjumlahkan nilai berdasarkan kondisi
Anda mungkin perlu menjumlahkan nilai berdasarkan kondisi.
Misalnya, rumus array ini menjumlahkan bilangan bulat positif saja dalam rentang yang bernama Sales, yang mewakili sel E9: E24 pada contoh di atas:
=SUM(IF(Sales>0,Sales))
Fungsi IF membuat array nilai positif dan salah. Fungsi SUM pada dasarnya mengabaikan nilai salah karena 0+0=0. Rentang sel yang Anda gunakan dalam rumus ini dapat terdiri dari jumlah baris dan kolom berapa pun.
Anda juga dapat menjumlahkan nilai yang memenuhi lebih dari satu kondisi. Misalnya, rumus array ini menghitung nilai yang lebih besar dari 0 AND kurang dari 2500:
=SUM((Sales>0)*(Sales<2500)*(Sales))
Perhatikan bahwa rumus ini mengembalikan kesalahan jika rentang berisi satu atau beberapa sel nonnumerik.
Anda juga dapat membuat rumus array yang menggunakan tipe atau kondisi OR. Misalnya, Anda bisa menjumlahkan nilai yang lebih besar dari 0 OR kurang dari 2500:
=SUM(IF((Sales>0)+(Sales<2500),Sales))
Anda tidak dapat menggunakan fungsi AND dan OR langsung dalam rumus array karena fungsi itu memberi hasil tunggal, baik TRUE maupun FALSE, dan fungsi array memerlukan array hasil. Anda dapat mengatasinya dengan menggunakan logika yang ditampilkan dalam rumus sebelumnya. Dengan kata lain, Anda menjalankan operasi matematika, seperti penambahan atau perkalian pada nilai yang memenuhi kondisi OR dan AND.
Contoh ini menunjukkan cara mengeluarkan nol dari rentang apabila Anda perlu menghitung nilai rata-rata dalam rentang tersebut. Rumus ini menggunakan rentang data bernama Sales:
=AVERAGE(IF(Sales<>0,Sales))
Fungsi IF membuat array nilai yang tidak sama dengan 0, lalu meneruskan nilai tersebut ke fungsi AVERAGE.
Menghitung jumlah selisih antara dua rentang sel
Rumus array ini membandingkan nilai dalam dua rentang sel bernama MyData dan YourData dan mengembalikan jumlah perbedaan antara keduanya. Jika konten kedua rentang itu identik, rumus ini akan mengembalikan 0. Untuk menggunakan rumus ini, rentang sel harus memiliki ukuran dan dimensi yang sama. Misalnya, jika MyData adalah rentang 3 baris kali 5 kolom, YourData juga harus 3 baris kali 5 kolom:
=SUM(IF(MyData=YourData,0,1))
Rumus ini membuat array baru dengan ukuran yang sama sebagai rentang yang dibandingkan. Fungsi IF mengisi array dengan nilai 0 dan nilai 1 (0 bila tidak cocok dan 1 untuk sel yang identik). Fungsi SUM kemudian menghasilkan jumlah nilai dalam array tersebut.
Anda dapat menyederhanakan rumus seperti ini:
=SUM(1*(MyData<>YourData))
Seperti rumus yang menghitung nilai kesalahan dalam rentang, rumus ini berfungsi karena TRUE*1=1, dan FALSE*1=0.
Rumus array ini mengembalikan nomor baris nilai maksimum dalam rentang kolom tunggal yang bernama Data:
=MIN(IF(Data=MAX(Data),ROW(Data),""))
Fungsi IF membuat array baru yang terkait dengan rentang bernama Data. Jika sel yang terkait berisi nilai maksimum dalam rentang, array akan berisi nomor baris. Jika tidak, array berisi string kosong (""). Fungsi MIN menggunakan array baru sebagai argumen kedua dan mengembalikan nilai terkecil, yang terkait dengan nomor baris dari nilai maksimum dalam Data. Jika rentang yang bernama Data berisi nilai maksimum yang identik, rumus akan mengembalikan baris nilai pertama.
Jika Anda ingin mengembalikan alamat sel sebenarnya dari nilai maksimum, gunakan rumus ini:
=ADDRESS(MIN(IF(Data=MAX(Data),ROW(Data),"")),COLUMN(Data))
Anda akan menemukan contoh serupa di buku kerja contoh pada lembar kerja Perbedaan antara himpunan data.
Pengakuan
Bagian artikel ini didasarkan pada rangkaian kolom Excel Power User yang ditulis oleh Colin Wilcox, dan diadaptasi dari bab 14 dan 15 Excel 2002 Formulas, buku yang ditulis oleh John Walkenbach, mantan Excel MVP.
Perlu bantuan lainnya?
Anda selalu dapat bertanya kepada pakar dalam Komunitas Teknologi Excel atau mendapatkan dukungan di Komunitas.
Lihat Juga
Aray dinamis dan perilaku aray luapan