Daftar Isi
Artikel ini menunjukkan beberapa cara berbeda untuk mendapatkan nilai maks di Excel berdasarkan satu atau beberapa kondisi yang Anda tentukan.
Dalam tutorial kami sebelumnya, kami melihat penggunaan umum fungsi MAX yang dirancang untuk mengembalikan angka terbesar dalam kumpulan data. Namun, dalam beberapa situasi, Anda mungkin perlu menelusuri data Anda lebih jauh untuk menemukan nilai maks berdasarkan kriteria tertentu. Ini dapat dilakukan dengan menggunakan beberapa rumus berbeda, dan artikel ini menjelaskan semua cara yang memungkinkan.
Rumus IF MAX Excel
Sampai saat ini, Microsoft Excel tidak memiliki fungsi MAX IF bawaan untuk mendapatkan nilai maksimum berdasarkan kondisi. Dengan diperkenalkannya MAXIFS di Excel 2019, kita dapat melakukan maks bersyarat dengan cara yang mudah.
Di Excel 2016 dan versi sebelumnya, Anda masih harus membuat sendiri rumus larik dengan menggabungkan fungsi MAX dengan pernyataan IF:
{=MAX(IF( criteria_range = kriteria , max_range ))}Untuk melihat bagaimana rumus MAX IF generik ini bekerja pada data nyata, perhatikan contoh berikut. Misalkan, Anda memiliki tabel dengan hasil lompat jauh dari beberapa siswa. Tabel tersebut mencakup data untuk tiga putaran, dan Anda mencari hasil terbaik dari atlet tertentu, katakanlah Jacob. Dengan nama siswa di A2: A10 dan jarak di C2: C10, rumusnya mengambil bentuk ini:
=MAX(IF(A2:A10="Jacob", C2:C10))
Harap diingat bahwa rumus array harus selalu dimasukkan dengan menekan tombol Ctrl + Shift + Enter secara bersamaan. Hasilnya, rumus ini secara otomatis dikelilingi dengan tanda kurung kurawal seperti yang ditunjukkan pada gambar di bawah ini (mengetikkan tanda kurung kurawal secara manual tidak akan berhasil!).
Dalam lembar kerja kehidupan nyata, akan lebih mudah untuk memasukkan kriteria di beberapa sel, sehingga Anda dapat dengan mudah mengubah kondisinya tanpa mengubah rumusnya. Jadi, kami mengetikkan nama yang diinginkan di F1 dan mendapatkan hasil sebagai berikut:
=MAX(IF(A2:A10=F1, C2:C10))
Bagaimana formula ini bekerja
Dalam uji logika fungsi IF, kita membandingkan daftar nama (A2:A10) dengan nama target (F1). Hasil dari operasi ini adalah larik TRUE dan FALSE, di mana nilai TRUE mewakili nama yang cocok dengan nama target (Jacob):
{FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE}
Untuk value_ if_true argumen, kami menyediakan hasil lompatan panjang (C2: C10), jadi jika tes logis dievaluasi menjadi TRUE, angka yang sesuai dari kolom C dikembalikan. value_ if_false argumen dihilangkan, artinya hanya akan memiliki nilai FALSE di mana kondisinya tidak terpenuhi:
{FALSE;FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE;FALSE}
Larik ini diumpankan ke fungsi MAX, yang mengembalikan angka maksimum dengan mengabaikan nilai FALSE.
Tip. Untuk melihat array internal yang dibahas di atas, pilih bagian rumus yang sesuai di lembar kerja Anda dan tekan tombol F9. Untuk keluar dari mode evaluasi rumus, tekan tombol Esc.
Rumus MAX IF dengan beberapa kriteria
Dalam situasi ketika Anda perlu menemukan nilai maksimal berdasarkan lebih dari satu kondisi, Anda dapat melakukannya:
Gunakan pernyataan IF bersarang untuk menyertakan kriteria tambahan:
{=MAX(IF( criteria_range1 = kriteria1 , JIKA( criteria_range2 = kriteria2 , max_range )))}Atau menangani beberapa kriteria dengan menggunakan operasi perkalian:
{=MAX(JIKA(( criteria_range1 = kriteria1 ) * ( criteria_range2 = kriteria2 ), max_range ))}Katakanlah Anda memiliki hasil anak laki-laki dan perempuan dalam satu tabel dan Anda ingin menemukan lompatan terpanjang di antara anak perempuan di ronde ke-3. Untuk menyelesaikannya, kita masukkan kriteria pertama (perempuan) di G1, kriteria kedua (3) di G2, dan gunakan rumus berikut untuk menghitung nilai maksimal:
=MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16))))
=MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))
Karena keduanya adalah rumus array, harap ingat untuk menekan Ctrl + Shift + Enter untuk menyelesaikannya dengan benar.
Seperti yang ditunjukkan pada screenshot di bawah ini, rumus-rumus tersebut menghasilkan hasil yang sama, jadi yang mana yang digunakan adalah masalah preferensi pribadi Anda. Bagi saya, rumus dengan logika Boolean lebih mudah dibaca dan dibuat - memungkinkan penambahan kondisi sebanyak yang Anda inginkan tanpa fungsi IF tambahan bersarang.
Bagaimana rumus-rumus ini bekerja
Rumus pertama menggunakan dua fungsi IF bersarang untuk mengevaluasi dua kriteria. Dalam uji logika pernyataan IF pertama, kita membandingkan nilai di kolom Gender (B2:B16) dengan kriteria di G1 ("Female"). Hasilnya adalah larik nilai TRUE dan FALSE, di mana TRUE merepresentasikan data yang cocok dengan kriteria:
{FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE}
Dengan cara yang sama, fungsi IF kedua memeriksa nilai-nilai dalam kolom Putaran (C2:C16) terhadap kriteria di G2.
Untuk value_if_true argumen dalam pernyataan IF kedua, kita menyediakan hasil lompat jauh (D2:D16), dan dengan cara ini kita mendapatkan item yang memiliki TRUE dalam dua larik pertama di posisi yang sesuai (yaitu item di mana jenis kelaminnya adalah "perempuan" dan putarannya adalah 3):
{FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4.63; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4.52}
Larik terakhir ini masuk ke fungsi MAX dan mengembalikan angka terbesar.
Rumus kedua mengevaluasi kondisi yang sama dalam satu tes logika dan operasi perkalian bekerja seperti operator AND:
Ketika nilai TRUE dan FALSE digunakan dalam operasi aritmatika apa pun, masing-masing diubah menjadi 1 dan 0. Dan karena mengalikan dengan 0 selalu menghasilkan nol, larik yang dihasilkan memiliki 1 hanya ketika semua kondisinya BENAR. Larik ini dievaluasi dalam uji logis fungsi IF, yang mengembalikan jarak yang sesuai dengan elemen 1 (TRUE).
MAX IF tanpa larik
Banyak pengguna Excel, termasuk saya, berprasangka buruk terhadap rumus array dan mencoba menyingkirkannya sebisa mungkin. Untungnya, Microsoft Excel memiliki beberapa fungsi yang menangani array secara native, dan kita bisa menggunakan salah satu fungsi tersebut, yaitu SUMPRODUCT, sebagai semacam "pembungkus" di sekitar MAX.
Rumus MAX IF generik tanpa array adalah sebagai berikut:
=SUMPRODUCT(MAX(( criteria_range1 = kriteria1 ) * ( criteria_range2 = kriteria2 ) * max_range ))Tentu saja, Anda bisa menambahkan lebih banyak pasangan rentang/kriteria jika diperlukan.
Untuk melihat rumus dalam tindakan, kita akan menggunakan data dari contoh sebelumnya. Tujuannya adalah untuk mendapatkan lompatan maksimum seorang atlet wanita di babak 3:
=SUMPRODUCT(MAX((((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))
Rumus ini dikompetisikan dengan penekanan tombol Enter normal dan mengembalikan hasil yang sama dengan rumus array MAX IF:
Dengan melihat lebih dekat pada tangkapan layar di atas, Anda dapat melihat bahwa lompatan tidak valid yang ditandai dengan "x" pada contoh sebelumnya sekarang memiliki nilai 0 di baris 3, 11 dan 15, dan bagian selanjutnya menjelaskan alasannya.
Bagaimana formula ini bekerja
Seperti rumus MAX IF, kita mengevaluasi dua kriteria dengan membandingkan setiap nilai di kolom Gender (B2:B16) dan Round (C2:C16) dengan kriteria di sel G1 dan G2. Hasilnya adalah dua larik nilai TRUE dan FALSE. Mengalikan elemen-elemen larik di posisi yang sama mengubah TRUE dan FALSE menjadi masing-masing 1 dan 0, di mana 1 mewakili item yang memenuhi kedua kriteria. Perkalian ketigaarray berisi hasil lompatan jauh (D2:D16). Dan karena perkalian dengan 0 menghasilkan nol, hanya item yang memiliki 1 (TRUE) di posisi yang sesuai yang bertahan:
{0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}
Dalam kasus max_range berisi nilai teks apa pun, operasi perkalian mengembalikan kesalahan #VALUE karena seluruh rumus tidak akan berfungsi.
Fungsi MAX mengambilnya dari sini dan mengembalikan angka terbesar yang memenuhi kondisi yang ditentukan. Larik yang dihasilkan yang terdiri dari satu elemen {4.63} masuk ke fungsi SUMPRODUCT dan mengeluarkan angka maksimal dalam sel.
Catatan. Karena logika spesifiknya, rumus ini bekerja dengan peringatan berikut:
- Rentang di mana Anda mencari nilai tertinggi harus hanya berisi angka. Jika ada nilai teks, kesalahan #VALUE! dikembalikan.
- Rumus tidak dapat mengevaluasi kondisi "tidak sama dengan nol" dalam kumpulan data negatif. Untuk menemukan nilai maksimal yang mengabaikan nol, gunakan rumus MAX IF atau fungsi MAXIFS.
Rumus Excel MAX IF dengan logika OR
Untuk menemukan nilai maksimal ketika apa saja dari kondisi yang ditentukan terpenuhi, gunakan rumus IF MAX array IF yang sudah dikenal dengan logika Boolean, tetapi tambahkan kondisi alih-alih mengalikannya.
{=MAX(JIKA(( criteria_range1 = kriteria1 ) + ( criteria_range2 = kriteria2 ), max_range ))}Alternatifnya, Anda bisa menggunakan rumus non-larik berikut ini:
=SUMPRODUCT(MAX(((( criteria_range1 = kriteria1 ) + ( criteria_range2 = kriteria2 )) * max_range ))Sebagai contoh, mari kita hitung hasil terbaik di putaran 2 dan 3. Harap perhatikan bahwa dalam bahasa Excel, tugasnya diformulasikan secara berbeda: kembalikan nilai maksimal jika putarannya adalah 2 atau 3.
Dengan putaran yang tercantum dalam B2:B10, hasil dalam C2:C10 dan kriteria dalam F1 dan H1, rumusnya adalah sebagai berikut:
=MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10))
Masukkan rumus dengan menekan Ctrl + Shift + Enter kombinasi tombol dan Anda akan mendapatkan hasil ini:
Nilai max dengan kondisi yang sama juga dapat ditemukan dengan menggunakan rumus non-larik ini:
=SUMPRODUCT(MAX((((B2:B10=F1) + (B2:B10=H1)) * C2:C10))
Namun, kita perlu mengganti semua nilai "x" di kolom C dengan nol dalam kasus ini karena SUMPRODUCT MAX hanya bekerja dengan data numerik:
Bagaimana rumus-rumus ini bekerja
Rumus array bekerja dengan cara yang sama persis seperti MAX IF dengan logika AND kecuali kamu menggabungkan kriteria dengan menggunakan operasi penjumlahan, bukan perkalian. Dalam rumus array, penjumlahan berfungsi sebagai operator OR:
Menjumlahkan dua larik TRUE dan FALSE (yang dihasilkan dari pengecekan nilai di B2:B10 terhadap kriteria di F1 dan H1) menghasilkan larik 1 dan 0 di mana 1 mewakili item-item yang salah satu kondisinya TRUE dan 0 mewakili item-item yang kedua kondisinya FALSE. Hasilnya, fungsi IF "menyimpan" semua item di C2:C10 ( value_if_true ) yang kondisi apapun adalah TRUE (1); item-item yang tersisa diganti dengan FALSE karena value_if_false argumen tidak ditentukan.
Perbedaannya adalah bahwa alih-alih uji logika IF, Anda mengalikan elemen-elemen larik 1 dan 0 dengan elemen-elemen larik hasil lompatan panjang (C2:C10) di posisi yang sesuai. Ini membatalkan item yang tidak memenuhi kondisi apa pun (memiliki 0 di larik pertama) dan menyimpan item yang memenuhi salah satu kondisi (memiliki 1 di larik pertama).array).
MAXIFS - cara mudah untuk menemukan nilai tertinggi dengan kondisi
Pengguna Excel 2019, 2021, dan Excel 365 terbebas dari kesulitan menjinakkan array untuk membuat rumus MAX IF mereka sendiri. Versi Excel ini menyediakan fungsi MAXIFS yang telah lama ditunggu-tunggu yang membuat menemukan nilai terbesar dengan kondisi permainan anak-anak.
Dalam argumen pertama MAXIFS, Anda memasukkan rentang di mana nilai maksimum harus ditemukan (D2: D16 dalam kasus kami), dan dalam argumen berikutnya Anda dapat memasukkan hingga 126 pasangan rentang/kriteria:
=MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)
Seperti yang ditunjukkan pada gambar di bawah ini, rumus sederhana ini tidak memiliki masalah dengan pemrosesan rentang yang berisi nilai numerik dan teks:
Untuk informasi rinci tentang fungsi ini, silakan lihat fungsi Excel MAXIFS dengan contoh rumus.
Begitulah cara Anda menemukan nilai maksimal dengan kondisi di Excel. Saya berterima kasih telah membaca dan berharap dapat melihat Anda di blog kami minggu depan!
Buku kerja latihan untuk diunduh
Contoh rumus Excel MAX IF (file .xlsx)