TL;DR
Analisis nilai dan kehadiran siswa di Google Sheets butuh dua tabel rapi: satu baris per siswa per mata pelajaran, dan satu baris per siswa per hari absen. Dari situ AVERAGEIFS dan COUNTIFS ngasih rata-rata per kelas, persentase kehadiran, dan daftar siswa yang nilainya turun. Di data 184 siswa kelas 8, siswa dengan kehadiran di bawah 85% punya rata-rata nilai 10,7 poin lebih rendah.
Data nilai dan absen di sekolah biasanya berhenti jadi angka rata-rata di rapor. Padahal dua tabel itu, kalau disusun rapi, bisa nunjukin siswa mana yang mulai tertinggal dua bulan sebelum rapor keluar.
Aku olah data latihan 184 siswa kelas 8 semester ganjil di Google Sheets. Yang kehadirannya di bawah 85% punya rata-rata nilai 68,4. Yang kehadirannya 95% ke atas punya rata-rata 79,1. Selisih 10,7 poin.
Di bawah ini cara nyusun datanya, rumus yang kepakai, dan tiga angka yang paling berguna buat wali kelas.
Dua sheet terpisah, masing-masing dalam bentuk tabel panjang. Sheet nilai isinya satu baris per siswa per mata pelajaran per penilaian. Sheet absen isinya satu baris per siswa per hari. Jangan bikin satu kolom per mata pelajaran, karena nambah mata pelajaran berarti ngubah semua rumus.
Bentuk sheet nilai:
| nis | nama | kelas | mapel | jenis | tanggal | nilai |
|---|---|---|---|---|---|---|
| 8A-014 | Rani Puspita | 8A | Matematika | UH-1 | 2025-08-12 | 78 |
| 8A-014 | Rani Puspita | 8A | Matematika | UH-2 | 2025-09-16 | 71 |
| 8B-003 | Dimas Aryo | 8B | IPA | UH-1 | 2025-08-14 | 84 |
Bentuk sheet absen:
| tanggal | nis | kelas | status |
|---|---|---|---|
| 2025-08-12 | 8A-014 | 8A | Hadir |
| 2025-08-12 | 8B-003 | 8B | Sakit |
| 2025-08-13 | 8A-014 | 8A | Alfa |
Kolom nis jadi kunci yang nyambungin dua sheet. Nama siswa jangan dipakai sebagai kunci, soalnya di satu angkatan gampang banget ada dua Putri atau dua Muhammad.
Status absen aku batasi jadi empat: Hadir, Sakit, Izin, Alfa. Empat kategori itu cukup, dan bikin rumus hitungnya pendek.
Pakai AVERAGE versi berkondisi, yaitu AVERAGEIFS. Rumus ini ngerata-ratain kolom nilai cuma buat baris yang cocok sama kelas dan mapel yang kamu sebut.
=AVERAGEIFS(nilai!G:G; nilai!C:C; $A2; nilai!D:D; B$1)
Kolom A isinya nama kelas, baris 1 isinya nama mapel. Tarik ke kanan dan ke bawah, jadilah matriks rata-rata per kelas per mapel.
Hasil dari data 184 siswa:
| Kelas | Matematika | IPA | B. Indonesia | Rata-rata |
|---|---|---|---|---|
| 8A | 72,8 | 76,4 | 81,2 | 76,8 |
| 8B | 69,1 | 74,9 | 80,5 | 74,8 |
| 8C | 66,3 | 71,2 | 78,8 | 72,1 |
| 8D | 74,5 | 77,1 | 82,0 | 77,9 |
Matematika 8C paling rendah, 66,3. Selisihnya 8,2 poin dari 8D. Angka ini yang layak dibawa ke rapat guru, bukan rata-rata sekolah yang 75,4 dan nggak nunjukin apa-apa.
Rata-rata doang gampang nyesatin kalau ada satu dua siswa yang nilainya ekstrem. Cek juga nilai tengahnya pakai MEDIAN. Kalau rata-rata dan median beda jauh, berarti ada outlier yang narik angkanya.
Bagi jumlah hari Hadir sama total hari yang tercatat. Dua-duanya pakai COUNTIFS.
=IFERROR(
COUNTIFS(absen!B:B; $A2; absen!D:D; "Hadir") /
COUNTIFS(absen!B:B; $A2);
"")
Bungkus IFERROR penting di sini. Siswa yang baru pindah dan belum punya satu pun baris absen bakal bikin pembagian nol, dan sheet kamu penuh #DIV/0!.
Buat rincian alasan absen, ganti kriteria statusnya:
=COUNTIFS(absen!B:B; $A2; absen!D:D; "Alfa")
=COUNTIFS(absen!B:B; $A2; absen!D:D; "Sakit")
Pisahin Alfa dari Sakit itu wajib. Siswa yang absen 12 hari gara-gara tipes butuh penanganan yang beda banget dari siswa yang alfa 12 hari.
Daftar rumus lengkap yang bisa dipakai di Sheets ada di daftar fungsi resmi Google Sheets.
Bikin sheet rekap yang barisnya satu siswa satu baris. Kolom identitas ditarik pakai XLOOKUP, kolom angka dihitung pakai rumus di atas.
Langkahnya:
=UNIQUE(nilai!A2:A).=XLOOKUP($A2; nilai!$A:$A; nilai!$B:$B; "") lalu ganti kolom hasilnya buat kelas.=AVERAGEIFS(nilai!G:G; nilai!A:A; $A2).=IF(D2<0,85; "Perhatian"; IF(C2<70; "Nilai turun"; "Aman")).Fungsi IF bertingkat di langkah 5 sengaja nyari kehadiran dulu, baru nilai. Alasannya kehadiran biasanya bergerak duluan sebelum nilai ikut turun.
Hasil sheet rekap kelihatan gini:
| NIS | Nama | Rata-rata nilai | Kehadiran | Alfa | Status |
|---|---|---|---|---|---|
| 8C-021 | Bagas Nugroho | 62,4 | 78% | 14 | Perhatian |
| 8A-014 | Rani Puspita | 74,5 | 96% | 1 | Aman |
| 8B-009 | Sinta Maharani | 68,1 | 92% | 3 | Nilai turun |
Terakhir, pasang conditional formatting di kolom Status biar baris Perhatian langsung kelihatan merah. Wali kelas nggak perlu baca 184 baris, cukup lihat yang merah.
Data yang aku olah: 184 siswa, 4 kelas, 8 mata pelajaran, 92 hari efektif. Total 4.416 baris nilai dan 16.928 baris absen.
Aku kelompokkan siswa berdasarkan persentase kehadiran, lalu hitung rata-rata nilainya per kelompok. Cara segmentasi sederhana ini yang paling cepat nunjukin polanya.
| Kelompok kehadiran | Jumlah siswa | Rata-rata nilai | Alfa rata-rata |
|---|---|---|---|
| 95% ke atas | 97 | 79,1 | 1,2 hari |
| 85% sampai 94% | 56 | 74,3 | 4,8 hari |
| Di bawah 85% | 31 | 68,4 | 11,6 hari |
Tiga temuan yang menurutku paling kepakai:
Satu. Selisih 10,7 poin antara kelompok teratas dan terbawah lebih besar dari selisih antar kelas mana pun (paling besar 5,8 poin). Jadi kalau mau naikin nilai, ngurusin kehadiran lebih berdampak dari ngubah pembagian kelas.
Dua. Dari 31 siswa kelompok terbawah, 19 di antaranya kehadirannya masih di atas 90% di bulan Agustus. Penurunannya mulai September. Kalau rekapnya jalan bulanan, 19 siswa itu ketahuan tiga bulan sebelum rapor.
Tiga. Ada 11 siswa dengan kehadiran di bawah 85% yang nilainya tetap di atas 80. Angka rata-rata nggak berlaku buat semua orang, dan daftar nama tetap perlu dibaca satu per satu sebelum ambil tindakan.
8A-014, bukan kadang 8a-14).12/08/2025 yang kebaca teks bikin filter per bulan gagal total. Cek pakai TODAY dikurangi selnya. Kalau hasilnya error, itu masih teks.Pisah. Nilai punya satu baris per siswa per mata pelajaran per penilaian, sedangkan absen punya satu baris per siswa per hari. Kalau digabung, kamu bakal ngulang nilai di ratusan baris absen dan angkanya jadi kacau waktu dijumlah. Simpan dua sheet terpisah, lalu gabungin cuma di sheet rekap pakai XLOOKUP berdasarkan NIS.
Pakai COUNTIFS dua kali. Hitung jumlah baris berstatus Hadir buat NIS tertentu, lalu bagi sama total baris absen buat NIS yang sama. Rumusnya COUNTIFS(absen!B:B; A2; absen!D:D; "Hadir") dibagi COUNTIFS(absen!B:B; A2). Bungkus pakai IFERROR biar siswa baru yang belum punya data absen nggak nampilin error.
Sekolah biasanya pakai 85% sebagai batas minimal, tapi angka itu perlu kamu cek ke aturan sekolah sendiri karena tiap sekolah beda. Yang lebih berguna daripada satu ambang tetap: lihat tren per bulan. Siswa yang kehadirannya turun tiga bulan berturut-turut lebih perlu ditemui daripada siswa yang absen banyak sekali gara-gara sakit.
Nggak selalu. Di data yang aku olah, hubungannya kuat tapi ada 11 siswa dengan kehadiran di bawah 85% yang nilainya tetap di atas 80. Angka korelasi cuma nunjukin pola umum, bukan sebab akibat. Pakai hasilnya buat nentuin siapa yang perlu ditanyain duluan, bukan buat nyimpulin penyebabnya.
Sanggup buat sekolah ukuran menengah. Satu spreadsheet Google Sheets muat sampai 10 juta sel, jadi 600 siswa dikali 180 hari absen dikali 5 kolom masih jauh di bawah batas. Yang bikin lemot biasanya rumus array di seluruh kolom. Batasi rentang rumus ke baris yang beneran ada isinya.
Dua hal yang bikin analisis ini kepakai: data disimpan dalam bentuk tabel panjang dengan NIS sebagai kunci, dan rekapnya jalan bulanan, bukan cuma di akhir semester.
Kalau kamu mau mulai minggu ini, cukup bikin satu kolom persentase kehadiran pakai COUNTIFS. Kolom itu doang udah bisa nunjukin nama-nama yang perlu ditemui duluan.
Mau latihan rumus AVERAGEIFS dan COUNTIFS langsung di browser? Coba latihan interaktif di NgulikSheet. Buat pola rekap yang mirip di konteks kantor, cara nyusunnya bisa kamu lihat di dashboard people analytics.
Mau praktek langsung? Mulai latihan SQL gratis
Latihan interaktif, langsung di browser.
Punya ratusan angka dan mau tau sebarannya masuk ke rentang mana aja? FREQUENCY ngitung distribusi frekuensi sekali jalan, tanpa nulis COUNTIFS berkali-kali.
SUMIFS ribet kalau kriterianya banyak dan sering ganti. Rumus database Excel kayak DSUM baca kriteria dari sel terpisah, jadi kamu tinggal ubah tabel kecil tanpa nyentuh rumus.
DATEDIF ngasih umur bulat, tapi kadang kamu butuh angka desimal kayak 27,6 tahun buat hitung masa kerja atau bunga. YEARFRAC ngasih pecahan tahun dengan presisi.