Isi kandungan
Artikel menunjukkan beberapa cara berbeza untuk mendapatkan nilai maksimum dalam Excel berdasarkan satu atau beberapa syarat yang anda tentukan.
Dalam tutorial kami sebelum ini, kami melihat penggunaan biasa daripada fungsi MAX yang direka untuk mengembalikan nombor terbesar dalam set data. Walau bagaimanapun, dalam beberapa situasi, anda mungkin perlu menelusuri data anda dengan lebih lanjut untuk mencari nilai maksimum berdasarkan kriteria tertentu. Ini boleh dilakukan dengan menggunakan beberapa formula berbeza dan artikel ini menerangkan semua cara yang mungkin.
Formula Excel MAX IF
Sehingga baru-baru ini, Microsoft Excel tidak mempunyai fungsi MAX IF terbina dalam untuk mendapatkan nilai maksimum berdasarkan syarat. Dengan pengenalan MAXIFS dalam Excel 2019, kami boleh melakukan maks bersyarat dengan cara yang mudah.
Dalam Excel 2016 dan versi terdahulu, anda masih perlu mencipta formula tatasusunan anda sendiri dengan menggabungkan MAX fungsi dengan pernyataan IF:
{=MAX(IF( julat_kriteria= kriteria, julat_maks))}Untuk melihat cara MAX generik ini JIKA formula berfungsi pada data sebenar, sila pertimbangkan contoh berikut. Andainya, anda mempunyai jadual dengan keputusan lompat jauh beberapa orang pelajar. Jadual termasuk data untuk tiga pusingan, dan anda sedang mencari keputusan terbaik untuk atlet tertentu, kata Jacob. Dengan nama pelajar dalam A2:A10 dan jarak dalam C2:C10, formula mengambil bentuk ini:
=MAX(IF(A2:A10="Jacob", C2:C10))
Sila ingat bahawa formula tatasusunanmesti sentiasa dimasukkan dengan menekan kekunci Ctrl + Shift + Enter serentak. Hasilnya, ia dikelilingi secara automatik dengan kurungan kerinting seperti yang ditunjukkan dalam tangkapan skrin di bawah (menaip pendakap secara manual tidak akan berfungsi!).
Saya lembaran kerja kehidupan sebenar, adalah lebih mudah untuk memasukkan kriteria dalam beberapa sel, supaya anda boleh menukar keadaan dengan mudah tanpa mengubah formula. Jadi, kami menaip nama yang diingini dalam F1 dan mendapatkan hasil berikut:
=MAX(IF(A2:A10=F1, C2:C10))
Cara formula ini berfungsi
Dalam logik menguji fungsi IF, kami membandingkan senarai nama (A2:A10) dengan nama sasaran (F1). Hasil daripada operasi ini ialah tatasusunan TRUE dan FALSE, dengan nilai TRUE mewakili nama yang sepadan dengan nama sasaran (Jacob):
{FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE}
Untuk value_ if_true argumen, kami membekalkan keputusan lompat jauh (C2:C10), jadi jika ujian logik dinilai kepada BENAR, nombor yang sepadan dari lajur C dikembalikan. Argumen value_ if_false diabaikan, bermakna hanya akan mempunyai nilai FALSE yang syaratnya tidak dipenuhi:
{FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE}
Anasusunan ini disalurkan kepada fungsi MAX, yang mengembalikan nombor maksimum yang mengabaikan nilai FALSE.
Petua. Untuk melihat tatasusunan dalaman yang dibincangkan di atas, pilih bahagian formula yang sepadan dalam lembaran kerja anda dan tekan kekunci F9. Untuk keluar dari mod penilaian formula, tekan kekunci Esc.
Formula MAX IF dengan berbilangkriteria
Dalam situasi apabila anda perlu mencari nilai maksimum berdasarkan lebih daripada satu syarat, anda boleh sama ada:
Gunakan pernyataan IF bersarang untuk memasukkan kriteria tambahan:
{=MAX( IF( julat_kriteria1 = kriteria1 , IF( julat_kriteria2 = kriteria2 , julat_maks )))}Atau kendalikan berbilang kriteria dengan menggunakan operasi pendaraban:
{=MAX(IF(( julat_kriteria1 = kriteria1 ) * ( julat_kriteria2 = kriteria2 ), julat_maks ))}Katakan anda mempunyai keputusan lelaki dan perempuan dalam satu meja dan anda ingin mencari lompatan terpanjang dalam kalangan perempuan dalam pusingan 3. Untuk melakukannya , kami memasukkan kriteria pertama (wanita) dalam G1, kriteria kedua (3) dalam G2 dan menggunakan formula berikut untuk menentukan nilai maksimum:
=MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16)))
=MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))
Memandangkan kedua-duanya adalah formula tatasusunan, sila ingat untuk menekan Ctrl + Shift + Enter untuk melengkapkannya dengan betul.
Seperti yang ditunjukkan dalam tangkapan skrin di bawah, formula menghasilkan hasil yang sama, jadi yang mana satu untuk digunakan ialah soal awak keutamaan peribadi anda. Bagi saya, formula dengan logik Boolean lebih mudah dibaca dan dibina – ia membenarkan menambah seberapa banyak syarat yang anda mahu tanpa meletakkan fungsi IF tambahan.
Cara formula ini berfungsi
Formula pertama menggunakan dua fungsi IF bersarang untuk menilai dua kriteria. Dalam ujian logik pernyataan IF pertama, kami membandingkan nilai dalam lajur Jantina(B2:B16) dengan kriteria dalam G1 ("Perempuan"). Hasilnya ialah tatasusunan nilai TRUE dan FALSE dengan TRUE mewakili data yang sepadan dengan kriteria:
{FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE}
Dalam cara yang sama, fungsi IF kedua menyemak nilai dalam lajur Pusingan (C2 :C16) terhadap kriteria dalam G2.
Untuk argumen value_if_true dalam pernyataan IF kedua, kami membekalkan hasil lompat jauh (D2:D16), dan dengan cara ini kami mendapatkan item yang mempunyai BENAR dalam dua tatasusunan pertama dalam kedudukan yang sepadan (iaitu item yang jantinanya ialah "perempuan" dan bulat ialah 3):
{FALSE; FALSE; FALSE; FALSE; FALSE; 4.63; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4.52}
Susun atur terakhir ini pergi ke fungsi MAX dan ia mengembalikan nombor terbesar.
Formula kedua menilai keadaan yang sama dalam satu ujian logik dan operasi pendaraban berfungsi seperti operator DAN:
Apabila nilai TRUE dan FALSE digunakan dalam mana-mana operasi aritmetik, mereka ditukar kepada 1 dan 0, masing-masing. Dan kerana mendarab dengan 0 sentiasa memberikan sifar, tatasusunan yang terhasil mempunyai 1 hanya apabila semua syarat adalah BENAR. Tatasusunan ini dinilai dalam ujian logik fungsi IF, yang mengembalikan jarak yang sepadan dengan 1 elemen (TRUE).
MAX IF tanpa tatasusunan
Ramai pengguna Excel, termasuk saya, adalah prejudis terhadap formula tatasusunan dan cuba menyingkirkannya di mana mungkin. Nasib baik, Microsoft Excel mempunyai beberapa fungsi yang mengendalikan tatasusunan secara asli, dan kami boleh menggunakannyafungsi sedemikian, iaitu SUMPRODUCT, sebagai jenis "pembungkus" sekitar MAX.
Formula MAX IF generik tanpa tatasusunan adalah seperti berikut:
=SUMPRODUCT(MAX(( kriteria_julat1 = kriteria1 ) * ( julat_kriteria2 = kriteria2 ) * julat_maks ))Sememangnya, anda boleh menambah lebih banyak pasangan julat/kriteria jika diperlukan.
Untuk melihat formula dalam tindakan, kami akan menggunakan data daripada contoh sebelumnya. Matlamatnya adalah untuk mendapatkan lompatan maksimum atlet wanita dalam pusingan 3:
=SUMPRODUCT(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))
Formula ini bersaing dengan ketukan kekunci Enter biasa dan mengembalikan hasil yang sama seperti formula MAX IF tatasusunan:
Membuat melihat lebih dekat pada tangkapan skrin di atas, anda dapat melihat bahawa lompatan tidak sah yang ditandakan dengan "x" dalam contoh sebelumnya kini mempunyai 0 nilai dalam baris 3, 11 dan 15 , dan bahagian seterusnya menerangkan sebabnya.
Cara formula ini berfungsi
Seperti formula MAX IF, kami menilai dua kriteria dengan membandingkan setiap nilai dalam Jantina (B2:B16) dan Pusingan ( C2:C16) lajur dengan kriteria dalam sel G1 dan G2. Hasilnya ialah dua tatasusunan nilai TRUE dan FALSE. Mendarab elemen tatasusunan dalam kedudukan yang sama menukar TRUE dan FALSE masing-masing kepada 1 dan 0, di mana 1 mewakili item yang memenuhi kedua-dua kriteria. Tatasusunan darab ketiga mengandungi keputusan lompat jauh (D2:D16). Dan kerana mendarab dengan 0 memberikan sifar, hanya item yang mempunyai 1 (BENAR) dalam kedudukan yang sepadanbertahan:
{0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}
Sekiranya julat_maks mengandungi sebarang nilai teks, operasi pendaraban mengembalikan ralat #VALUE kerana keseluruhan formula tidak akan berfungsi.
Fungsi MAX mengambilnya dari sini dan mengembalikan nombor terbesar yang memenuhi syarat yang ditentukan. Tatasusunan yang terhasil yang terdiri daripada satu elemen {4.63} pergi ke fungsi SUMPRODUCT dan ia mengeluarkan nombor maks dalam sel.
Nota. Disebabkan logik khusus, formula berfungsi dengan kaveat berikut:
- Julat yang anda cari untuk nilai tertinggi mesti mengandungi nombor sahaja. Jika terdapat sebarang nilai teks, #VALUE! ralat dikembalikan.
- Formula tidak boleh menilai keadaan "tidak sama dengan sifar" dalam set data negatif. Untuk mencari nilai maks mengabaikan sifar, gunakan sama ada formula MAX IF atau fungsi MAXIFS.
Formula MAX IF Excel dengan logik OR
Untuk mencari nilai maksimum apabila mana-mana daripada syarat yang ditentukan dipenuhi, gunakan formula MAX IF tatasusunan yang sudah biasa dengan logik Boolean, tetapi tambah syarat dan bukannya mendarabkannya.
{=MAX(IF(( criteria_range1 = kriteria1 ) + ( julat_kriteria2 = kriteria2 ), julat_maks ))}Sebagai alternatif, anda boleh menggunakan formula bukan tatasusunan berikut :
=SUMPRODUCT(MAX((( kriteria_julat1 = kriteria1 ) + ( kriteria_julat2 = kriteria2 )) * max_range ))Sebagai contoh, mari bersenamkeputusan terbaik dalam pusingan 2 dan 3. Sila ambil perhatian bahawa dalam bahasa Excel, tugasan dirumus secara berbeza: kembalikan nilai maksimum jika pusingan sama ada 2 atau 3.
Dengan pusingan yang disenaraikan dalam B2:B10 , keputusan dalam C2:C10 dan kriteria dalam F1 dan H1, formulanya adalah seperti berikut:
=MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10))
Masukkan formula dengan menekan kombinasi kekunci Ctrl + Shift + Enter dan anda akan mendapat hasil ini:
Nilai maksimum dengan syarat yang sama juga boleh didapati dengan menggunakan formula bukan tatasusunan ini:
=SUMPRODUCT(MAX(((B2:B10=F1) + (B2:B10=H1)) * C2:C10))
Walau bagaimanapun, kita perlu menggantikan semua nilai "x" dalam lajur C dengan sifar dalam kes ini kerana SUMPRODUCT MAX hanya berfungsi dengan data berangka:
Cara formula ini berfungsi
Formula tatasusunan berfungsi dengan cara yang sama seperti MAX IF dengan logik DAN kecuali anda menyertai kriteria dengan menggunakan operasi tambah dan bukannya pendaraban. Dalam formula tatasusunan, penambahan berfungsi sebagai operator OR:
Menambah dua tatasusunan TRUE dan FALSE (yang terhasil daripada menyemak nilai dalam B2:B10 terhadap kriteria dalam F1 dan H1) menghasilkan tatasusunan 1 dan 0 di mana 1 mewakili item yang mana mana-mana syarat adalah BENAR dan 0 mewakili item yang kedua-dua syarat adalah SALAH. Hasilnya, fungsi IF "menyimpan" semua item dalam C2:C10 ( value_if_true ) yang mana mana-mana syarat adalah BENAR (1); item selebihnya diganti dengan PALSU keranaArgumen value_if_false tidak dinyatakan.
Formula bukan tatasusunan berfungsi dengan cara yang sama. Perbezaannya ialah bukannya ujian logik IF, anda mendarabkan elemen tatasusunan 1 dan 0 dengan elemen tatasusunan keputusan lompat jauh (C2:C10) dalam kedudukan yang sepadan. Ini membatalkan item yang tidak memenuhi sebarang syarat (mempunyai 0 dalam tatasusunan pertama) dan menyimpan item yang memenuhi salah satu syarat (mempunyai 1 dalam tatasusunan pertama).
MAXIFS – cara mudah untuk mencari yang tertinggi nilai dengan syarat
Pengguna Excel 2019, 2021 dan Excel 365 bebas daripada masalah menjinakkan tatasusunan untuk membina formula MAX IF mereka sendiri. Versi Excel ini menyediakan fungsi MAXIFS yang telah lama ditunggu-tunggu yang menjadikan pencarian nilai terbesar dengan syarat permainan kanak-kanak.
Dalam hujah pertama MAXIFS, anda memasukkan julat di mana nilai maksimum harus ditemui (D2: D16 dalam kes kami), dan dalam hujah seterusnya anda boleh memasukkan sehingga 126 pasangan julat/kriteria. Contohnya:
=MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)
Seperti yang ditunjukkan dalam tangkapan skrin di bawah, formula mudah ini tidak mempunyai masalah dengan memproses julat yang mengandungi nilai angka dan teks:
Untuk mendapatkan maklumat terperinci tentang fungsi ini, sila lihat fungsi Excel MAXIFS dengan contoh formula.
Begitulah anda boleh mencari nilai maksimum dengan syarat dalam Excel. Saya ucapkan terima kasih kerana membaca dan semoga berjumpa lagi di blog kami seterusnyaminggu!
Buku kerja berlatih untuk muat turun
contoh formula Excel MAX IF (fail.xlsx)