Rumus AVERAGEIF Untuk Rata-Rata Bersyarat
Pembuka — Kenapa AVERAGEIF itu penting?
Kalau kamu biasa kerja dengan data nilai, penjualan, survey atau laporan tugas, pasti sering butuh cari rata-rata khusus. Misal: rata-rata nilai buat siswa kelas 10A, atau rata-rata transaksi untuk produk X di wilayah JKT. Nah, fungsi AVERAGEIF (dan saudara lanjutannya AVERAGEIFS) diciptain supaya tugas itu bisa otomatis dan rapi.
Di artikel ini kita bahas dari nol sampai mahir:
Sintaks gampang dipahami.
Banyak contoh nyata dengan tabel.
Trik wildcard, tanggal, dan kriteria dinamis.
Bagaimana handle kasus spesial (kosong, angka sebagai teks, weighted average).
Alternatif ketika AVERAGEIF nggak cukup.
Cocok buat remaja Indonesia, gaya santai, paragraf pendek biar gampang diserap. Yuk langsung praktek.
#1 Apa itu AVERAGEIF? (konsep singkat)
`AVERAGEIF` adalah fungsi Excel & Google Sheets yang menghitung rata-rata nilai dari sebuah range, hanya untuk sel yang memenuhi satu kriteria.
Kalau butuh lebih dari satu kriteria (misal produk = X dan region = Y), gunakan `AVERAGEIFS`. Di artikel ini kita fokus ke `AVERAGEIF`, lalu jelasin juga `AVERAGEIFS` sebagai ekstensi.
Kata kunci: AVERAGEIF, rata-rata bersyarat, rumus Excel, rumus Google Sheets.
#2 Sintaks AVERAGEIF (mudah)
Sintaks umum:
text=AVERAGEIF(range, criteria, [average_range])
`range` = area yang diperiksa kriteria (mis. kolom produk atau kelas).
`criteria` = syaratnya (mis. "Pensil" atau ">=75" atau cell reference seperti H1).
`[average_range]` = (opsional) area yang mau dirata-rata. Kalau diisi, Excel menghitung rata-rata pada `average_range` untuk baris yang memenuhi `criteria` di `range`. Kalau tidak diisi, Excel akan rata-rata dari `range` itu sendiri (berguna kalau `range` memang berisi angka).
Contoh singkat:
text =AVERAGEIF(C2:C11, "10A", D2:D11)
Artinya: rata-rata nilai (D2:D11) untuk baris di mana kolom kelas (C2:C11) = "10A".
#3 Contoh dasar — tabel nilai siswa (langsung praktek)
Tabel contoh (salin ke sheet, header di baris 1):
No | Nama | Kelas | Nilai |
---|---|---|---|
1 | Andi | 10A | 92 |
2 | Budi | 10A | 78 |
3 | Citra | 10B | 85 |
4 | Deni | 10A | 60 |
5 | Evi | 10B | 75 |
6 | Fajar | 10A | 88 |
7 | Gita | 10B | (kosong) |
8 | Hani | 10B | 95 |
9 | Iwan | 10A | 70 |
10 | Joko | 10B | 80 |
Soal: Berapa rata-rata nilai siswa kelas 10A?
Rumus:
text =AVERAGEIF(C2:C11, "10A", D2:D11)
Penjelasan: C2:C11 adalah range kelas; criteria "10A" ; D2:D11 adalah nilai yang dirata-rata.
Hasil perhitungan manual: nilai 10A = {92,78,60,88,70} → jumlah 388 → rata-rata = 388 / 5 = 77.6.
Catatan: sel yang kosong (Gita di 10B) otomatis diabaikan oleh AVERAGEIF.
#4 AVERAGEIF dengan operator >, <, >=, <=
Kamu juga bisa pakai operator perbandingan. Karena operator harus dikirim sebagai teks, gabungkan dengan `&` kalau merujuk ke sel.
Contoh: rata-rata nilai yang lebih besar atau sama dengan 75:
text =AVERAGEIF(D2:D11, ">=75")
Karena kita tidak memberi `average_range`, Excel akan rata-rata dari D2:D11 untuk nilai yang >=75 (Cukup praktis).
Jika ingin kriteria dinamis (mis. ambil batas dari sel H1):
text =AVERAGEIF(D2:D11, ">=" & H1)
Pastikan H1 berisi angka, mis. 75.
#5 AVERAGEIF dengan teks & wildcard (partial match)
Fitur ini berguna kalau kamu mau rata-rata berdasarkan kata sebagian.
Wildcard:
`*` = nol atau lebih karakter
`?` = satu karakter
Contoh: rata-rata nilai untuk siswa dengan nama yang diawali "A" (Andi):
text =AVERAGEIF(B2:B11, "A*", D2:D11)
Contoh mencari produk yang mengandung kata "Pen":
text =AVERAGEIF(C2:C100, "*Pen*", G2:G100)
(AVERAGEIF tidak case sensitive — huruf besar/kecil tidak masalah.)
#6 AVERAGEIF dengan kriteria tanggal
Tanggal di spreadsheet adalah angka juga, jadi bisa dipakai operator.
Contoh: rata-rata transaksi total dalam rentang tanggal.
Tabel penjualan sederhana (A:H):
No | Tanggal | Kode | Produk | Region | Qty | Harga | Total |
---|---|---|---|---|---|---|---|
1 | 2025-09-01 | P001 | Pensil | JKT | 2 | 3000 | 6000 |
2 | 2025-09-01 | P002 | Buku | BDG | 1 | 5500 | 5500 |
3 | 2025-09-02 | P001 | Pensil | JKT | 5 | 3000 | 15000 |
4 | 2025-09-02 | P003 | Penghapus | JKT | 3 | 2500 | 7500 |
5 | 2025-09-03 | P002 | Buku | JKT | 4 | 5500 | 22000 |
6 | 2025-09-04 | P001 | Pensil | BDG | 1 | 3000 | 3000 |
7 | 2025-09-05 | P004 | Pulpen | JKT | 10 | 2000 | 20000 |
Misal, rata-rata `Total` untuk tanggal antara 2025-09-01 dan 2025-09-03:
Gunakan `AVERAGEIFS` (karena dua kondisi tanggal) — nanti kita bahas AVERAGEIFS:
text =AVERAGEIFS(H2:H8, B2:B8, ">=" & DATE(2025,9,1), B2:B8, "<=" & DATE(2025,9,3))
Hasil: ambil Total baris 1,2,3,4,5 → rata-rata = (6000+5500+15000+7500+22000)/5 = 56000/5 = 11200.
Untuk rentang tanggal AVERAGEIF sendiri kurang cocok karena butuh dua syarat (>= & <=), sehingga `AVERAGEIFS` lebih tepat.
#7 AVERAGEIF vs AVERAGEIFS (kapan pakai AVERAGEIFS)
`AVERAGEIFS` untuk lebih dari satu kriteria (AND logic). Sintaks:
text =AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
Contoh: rata-rata `Total` untuk Produk "Pensil" dan Region "JKT":
text =AVERAGEIFS(H2:H8, D2:D8, "Pensil", E2:E8, "JKT")
Hasil: untuk Pensil+JKT baris 1 & 3 → Totals {6000,15000} → rata = 10500.
Kalau cuma satu kriteria, AVERAGEIF lebih ringkas. Tapi AVERAGEIFS fleksibel untuk kombinasi.
#8 Ketika AVERAGEIF tidak menemukan data — #DIV/0! dan penanganannya
Kalau tak ada sel yang cocok, fungsi akan menghasilkan error `#DIV/0!` karena tidak ada nilai untuk dirata-rata.
Contoh:
text =AVERAGEIF(C2:C11, "12C", D2:D11)
Kalau tidak ada siswa di kelas 12C → error.
Solusi tampil rapi:
text =IFERROR(AVERAGEIF(C2:C11, "12C", D2:D11), "Tidak ada data")
Atau cek count dulu:
text =IF(COUNTIF(C2:C11, "12C")=0, "Tidak ada data", AVERAGEIF(C2:C11, "12C", D2:D11))
Ini lebih informatif untuk user.
#9 Perbedaan `AVERAGEIF(range, criteria)` tanpa average_range
Jika kamu pakai AVERAGEIF hanya dengan dua argumen:
text =AVERAGEIF(D2:D11, ">=75")
Excel akan rata-rata dari range D2:D11 untuk nilai >=75 karena `average_range` otomatis adalah range itu sendiri. Ini praktis kalau kriteria berlaku pada kolom yang sama dengan nilai yang mau dirata-rata.
#10 Kriteria yang diambil dari cell (dinamis)
Biasanya kita taruh kriteria di cell agar user tinggal ganti. Contoh:
H1 berisi "10A". Rumus:
text =AVERAGEIF(C2:C11, H1, D2:D11)
H2 berisi 75 sebagai batas. Rumus:
text =AVERAGEIF(D2:D11, ">=" & H2)
Ini memudahkan dashboard interaktif.
#11 Menangani angka yang tersimpan sebagai teks
Masalah umum: nilai/angka diimpor jadi teks (mis. "3000"). AVERAGEIF/AVERAGEIFS tidak akan menghitung teks sebagai angka.
Solusi:
Konversi data: `VALUE(A2)` atau `--A2` di helper column.
Atau gunakan `AVERAGE(IF(...VALUE...))` dalam array formula (lebih advanced).
Contoh konversi di helper kolom `HargaNum`:
text =VALUE(G2)
Lalu `AVERAGEIF` bisa pakai `HargaNum` sebagai `average_range`.
#12 Weighted average (rata-rata berbobot) — AVERAGEIF nggak bisa langsung
Kalau kamu ingin menghitung rata-rata harga berbobot oleh qty (mis. average price weighted by quantity), `AVERAGEIF` tidak mendukung bobot. Gunakan `SUMPRODUCT` + `SUMIF`.
Contoh: rata-rata harga untuk Produk P001 berbobot qty:
text =SUMPRODUCT((C2:C8="P001") * (G2:G8) * (F2:F8)) / SUMIF(C2:C8, "P001", F2:F8)
Penjelasan:
Pembilang = total nilai (harga * qty) hanya untuk baris P001.
Penyebut = total qty untuk P001.
Hasil = weighted average price.
Ini penting buat laporan penjualan.
#13 Multi-criteria OR (salah satu dari beberapa) — gimana caranya?
`AVERAGEIFS` memakai AND (semua harus terpenuhi). Untuk OR (mis. produk = Pensil atau Buku), ada beberapa cara:
Metode A — gabung beberapa AVERAGEIF dan SUM/COUNT
text =(AVERAGEIF(C2:C100,"Pensil",H2:H100)*COUNTIF(C2:C100,"Pensil") + AVERAGEIF(C2:C100,"Buku",H2:H100)*COUNTIF(C2:C100,"Buku")) /( COUNTIF(C2:C100,"Pensil") + COUNTIF(C2:C100,"Buku") )
Atau lebih simpel:
text =(SUMIF(C2:C100,"Pensil",H2:H100) + SUMIF(C2:C100,"Buku",H2:H100)) /( COUNTIF(C2:C100,"Pensil") + COUNTIF(C2:C100,"Buku") )
Metode B — SUMPRODUCT (lebih elegan)
text =SUMPRODUCT(((C2:C100="Pensil")+(C2:C100="Buku")) * H2:H100) / SUMPRODUCT(((C2:C100="Pensil")+(C2:C100="Buku")) * (H2:H100<>"" ))
Catatan: di denominator kita hitung jumlah baris valid (atau gunakan sum of indicators). Sumproduct versi ini agak teknis tapi powerful.
Metode C — Excel 365 dynamic array
Jika pakai Excel 365:
text =AVERAGE(FILTER(H2:H100, (C2:C100="Pensil") + (C2:C100="Buku")))
FILTER mengembalikan array cocok, lalu AVERAGE hitung rata-rata.
#14 AVERAGEIF dengan fungsi lain — kombinasi berguna
Beberapa kombinasi yang sering dipakai:
`IFERROR` → tampilkan teks “Tidak ada data” bila error.
`ROUND(AVERAGEIF(...), 2)` → bikin hasil 2 desimal.
`AVERAGEIFS` → multiple conditions (AND).
`FILTER` + `AVERAGE` → (Sheets / Excel 365) untuk fleksibilitas.
`SUMPRODUCT` → weighted average atau kasus OR kompleks.
Contoh rounding:
text =ROUND(AVERAGEIF(C2:C11, "10A", D2:D11), 2)
#15 Contoh nyata lengkap — studi kasus step-by-step
Studi Kasus A — Rata-rata nilai per kelas & per rentang nilai
Tabel siswa seperti contoh di awal.
1. Rata-rata nilai 10A:
text =AVERAGEIF(C2:C11, "10A", D2:D11)
2. Rata-rata nilai 10B:
text =AVERAGEIF(C2:C11, "10B", D2:D11)
3. Rata-rata nilai yang ≥ 80:
text =AVERAGEIF(D2:D11, ">=80")
4. Rata-rata untuk nama yang mulai huruf “C”:
text =AVERAGEIF(B2:B11, "C*", D2:D11)
Studi Kasus B — E-commerce: rata-rata order value per produk
Tabel penjualan di atas (OrderID, Tanggal, Kode, Produk, Region, Qty, Harga, Total).
Rata-rata `Total` untuk kode P001:
text =AVERAGEIF(C2:C8, "P001", H2:H8)
Hasil: (6000,15000,3000) → rata = 8000.
Rata-rata `Total` untuk region JKT:
\
text =AVERAGEIF(E2:E8, "JKT", H2:H8)
Rata-rata `Total` untuk produk yang mengandung "Pen" (Pensil & Pulpen jika ada):
text =AVERAGEIF(D2:D8, "*Pen*", H2:H8)
Rata-rata `Harga` per produk (harga per unit) untuk P001:
text =AVERAGEIF(C2:C8, "P001", G2:G8)
Tapi hati-hati: kalau harga sama tiap baris, AVERAGEIF akan mengembalikan harga yang identik; jika harga berbeda gunakan weighted average by qty.
#16 Penggunaan dalam dashboard — tips UX friendly
Letakkan kriteria di sel tertentu (dropdown) dan gunakan `AVERAGEIF` memakai reference ke sel tersebut.
Tambahkan label hasil yang jelas: "Rata-rata Nilai (Kelas 10A): 77.6" bukan cuma angka.
Tambahkan `IFERROR` supaya user tidak melihat `#DIV/0!`.
Tambahkan small helper table yang menjelaskan kriteria (mis. H1=kelas, H2=batas nilai).
Contoh rumus dinamis:
text =IF(COUNTIF(C2:C11, H1)=0, "Tidak ada data", AVERAGEIF(C2:C11, H1, D2:D11))
H1 berisi kelas pilihan user.
#17 Case sensitivity — AVERAGEIF tidak case-sensitive
Kalau kamu perlu case-sensitive (membedakan "pensil" dan "Pensil"), AVERAGEIF tidak bisa. Solusinya menggunakan kombinasi `SUMPRODUCT` + `EXACT`.
Contoh case-sensitive:
text =SUMPRODUCT(--EXACT(D2:D8,"Pensil"), H2:H8) / SUMPRODUCT(--EXACT(D2:D8,"Pensil"))
`EXACT` membandingkan case, dan `SUMPRODUCT` melakukan average manual.
#18 Troubleshooting — masalah umum & cara atasi
Masalah A: Hasil = `#DIV/0!`
Penyebab: tidak ada baris yang cocok. Solusi: pakai `IFERROR` atau cek `COUNTIF` dulu.
Masalah B: AVERAGEIF mengabaikan angka yang tampak sebagai angka
Penyebab: angka sebenarnya teks. Solusi: gunakan `VALUE()` di helper column atau `Text to Columns`.
Masalah C: Range panjang berbeda ukuran
Penyebab: jika `average_range` dan `range` panjangnya tidak sama, fungsi error. Pastikan ukuran harus match.
Masalah D: Format tanggal bikin bingung
Penyebab: tanggal disimpan sebagai teks. Solusi: konversi dengan `DATEVALUE()`.
Masalah E: Hasil beda antara AVERAGEIF dan FILTER+AVERAGE
Periksa apakah ada `""` (hasil formula kosong) yang dihitung berbeda. `FILTER` biasanya lebih jelas karena mengembalikan hanya nilai nyata.
#19 Performa & best practice untuk workbook besar
Batasi range (mis. D2:D1000 bukan D:D) agar kalkulasi lebih cepat.
Gunakan helper columns untuk transform data berat (TRIM, VALUE) supaya fungsi agregat tidak hitung ulang banyak kali.
Jika butuh banyak rumus kondisional kompleks, pertimbangkan `Pivot Table`, `Power Query` (Excel), atau `QUERY` (Google Sheets) untuk preprocessing.
Untuk dashboard interaktif, gunakan named ranges atau Excel Table supaya formula lebih readable: `=AVERAGEIF(Table1[Kelas],$H$1,Table1[Nilai])`.
#20 Latihan (praktekin biar nempel)
Salin tabel siswa & penjualan di atas ke sheet dan coba soal-soal ini:
Latihan Siswa
1. Rata-rata nilai kelas 10B.
2. Rata-rata nilai siswa yang nilainya > 80.
3. Rata-rata nilai untuk nama yang berakhiran "i" (pakai wildcard).
4. Tampilkan pesan "Tidak ada siswa" kalau kelas yg diminta kosong.
Latihan Penjualan
5. Rata-rata Total untuk Produk "Buku".
6. Rata-rata Harga (unit) untuk Produk P001.
7. Rata-rata Total untuk region "JKT" dan tanggal antara 2025-09-01 sampai 2025-09-03. (pakai AVERAGEIFS)
8. Rata-rata harga tertimbang (weighted average) untuk P001 menurut qty.
#21 Kunci jawaban & penjelasan singkat
Jawaban Latihan Siswa
1.text =AVERAGEIF(C2:C11, "10B", D2:D11)
text =AVERAGEIF(D2:D11, ">80")
text =AVERAGEIF(B2:B11, "*i", D2:D11)
text =IF(COUNTIF(C2:C11, H1)=0, "Tidak ada siswa", AVERAGEIF(C2:C11, H1, D2:D11))
H1 = sel input kelas.
Jawaban Latihan Penjualan
5.text =AVERAGEIF(D2:D8, "Buku", H2:H8)
text =AVERAGEIF(C2:C8, "P001", G2:G8)
text =AVERAGEIFS(H2:H8, E2:E8, "JKT", B2:B8, ">=" & DATE(2025,9,1), B2:B8, "<=" & DATE(2025,9,3))
text =SUMPRODUCT((C2:C8="P001") * (G2:G8) * (F2:F8)) / SUMIF(C2:C8, "P001", F2:F8)
#22 Ringkasan praktis & checklist sebelum publikasi
Gunakan `AVERAGEIF` untuk 1 kriteria; `AVERAGEIFS` untuk banyak kriteria (AND).
Jika butuh OR di satu kolom, pakai kombinasi SUMIF/COUNTIF atau SUMPRODUCT atau FILTER+AVERAGE (Excel 365 / Sheets).
Tangani `#DIV/0!` dengan `IFERROR` atau `COUNTIF` pengecekan.
Pastikan `range` dan `average_range` sama ukuran.
Untuk weighted average, gunakan `SUMPRODUCT`.
Bersihkan data (TRIM, VALUE) sebelum analisis.
Sehat sehat ...
Kalau kamu serius mau jago spreadsheet, latihan itu kuncinya. Buka Excel/Google Sheets, bikin copy tabel latihan di sini, dan coba semua rumus.
Mulai dari AVERAGEIF sederhana, lalu naik ke AVERAGEIFS, wildcard, sampai weighted average pakai SUMPRODUCT. Kalau ada error, baca bagian troubleshooting lagi — biasanya masalahnya cuma soal format data atau ukuran range.
Kalau kamu mau, abis ini coba buat mini-dashboard: satu sel untuk pilih kelas (dropdown), satu sel untuk pilih batas nilai, dan beberapa cell yang menampilkan rata-rata otomatis.
Praktik yang begini bikin skill kamu langsung naik level.
Selamat ngoprek — semoga rumus AVERAGEIF ini jadi senjata andalan kamu buat analisis data!
Gabung dalam percakapan