สูตร Excel MAX IF เพื่อค้นหาค่าที่มากที่สุดพร้อมเงื่อนไข

  • แบ่งปันสิ่งนี้
Michael Brown

บทความนี้แสดงวิธีต่างๆ สองสามวิธีในการรับค่าสูงสุดใน Excel โดยอิงจากเงื่อนไขหนึ่งข้อหรือหลายข้อที่คุณระบุ

ในบทช่วยสอนก่อนหน้านี้ เราได้ดูที่การใช้งานทั่วไป ของฟังก์ชัน MAX ซึ่งออกแบบมาเพื่อส่งคืนจำนวนมากที่สุดในชุดข้อมูล อย่างไรก็ตาม ในบางสถานการณ์ คุณอาจต้องเจาะลึกข้อมูลของคุณเพิ่มเติมเพื่อหาค่าสูงสุดตามเกณฑ์ที่กำหนด ซึ่งสามารถทำได้โดยใช้สูตรต่างๆ สองสามสูตร และบทความนี้จะอธิบายวิธีที่เป็นไปได้ทั้งหมด

    สูตร Excel MAX IF

    จนกระทั่งเมื่อไม่นานมานี้ Microsoft Excel ยังไม่มี ฟังก์ชัน MAX IF ในตัวเพื่อรับค่าสูงสุดตามเงื่อนไข ด้วยการเปิดตัว MAXIFS ใน Excel 2019 เราสามารถทำ max แบบมีเงื่อนไขด้วยวิธีง่ายๆ

    ใน Excel 2016 และเวอร์ชันก่อนหน้านี้ คุณยังคงต้องสร้าง สูตรอาร์เรย์ ของคุณเองโดยการรวม MAX ฟังก์ชันที่มีคำสั่ง IF:

    {=MAX(IF( criteria_range= criteria, max_range))}

    เพื่อดูว่า MAX ทั่วไปนี้เป็นอย่างไร สูตร IF ใช้ได้กับข้อมูลจริง โปรดพิจารณาตัวอย่างต่อไปนี้ สมมติว่าคุณมีตารางที่มีผลการเรียนกระโดดไกลของนักเรียนหลายคน ตารางประกอบด้วยข้อมูลสำหรับสามรอบ และคุณกำลังมองหาผลงานที่ดีที่สุดของนักกีฬาคนใดคนหนึ่ง Jacob กล่าว ด้วยชื่อนักเรียนใน A2:A10 และระยะทางใน C2:C10 สูตรจะใช้รูปแบบนี้:

    =MAX(IF(A2:A10="Jacob", C2:C10))

    โปรดทราบว่าสูตรอาร์เรย์ต้องป้อนโดยกดปุ่ม Ctrl + Shift + Enter พร้อมกันเสมอ ผลที่ได้คือวงเล็บปีกกาล้อมรอบโดยอัตโนมัติดังที่แสดงในภาพหน้าจอด้านล่าง (การพิมพ์วงเล็บปีกกาด้วยตนเองจะไม่ทำงาน!)

    I แผ่นงานในชีวิตจริง การป้อนเกณฑ์ในบางรายการจะสะดวกกว่า เซลล์เพื่อให้คุณสามารถเปลี่ยนเงื่อนไขโดยไม่ต้องเปลี่ยนสูตร ดังนั้นเราจึงพิมพ์ชื่อที่ต้องการใน F1 และรับผลลัพธ์ต่อไปนี้:

    =MAX(IF(A2:A10=F1, C2:C10))

    สูตรนี้ทำงานอย่างไร

    ในตรรกะ การทดสอบฟังก์ชัน IF เราจะเปรียบเทียบรายชื่อ (A2:A10) กับชื่อเป้าหมาย (F1) ผลลัพธ์ของการดำเนินการนี้คืออาร์เรย์ของ TRUE และ FALSE โดยที่ค่า TRUE แสดงชื่อที่ตรงกับชื่อเป้าหมาย (Jacob):

    {FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE}

    สำหรับ value_ if_true อาร์กิวเมนต์ เราให้ผลลัพธ์แบบกระโดดไกล (C2:C10) ดังนั้นหากการทดสอบเชิงตรรกะประเมินเป็น TRUE ตัวเลขที่สอดคล้องกันจากคอลัมน์ C จะถูกส่งกลับ อาร์กิวเมนต์ value_ if_false ถูกละไว้ ความหมายจะมีเพียงค่า FALSE ที่ไม่ตรงตามเงื่อนไข:

    {FALSE;FALSE;FALSE;5.48;5.42;5.57;FALSE;FALSE;FALSE}

    อาร์เรย์นี้ถูกป้อนไปยังฟังก์ชัน MAX ซึ่ง ส่งกลับจำนวนสูงสุดโดยไม่สนใจค่า FALSE

    เคล็ดลับ หากต้องการดูอาร์เรย์ภายในที่กล่าวถึงข้างต้น ให้เลือกส่วนที่สอดคล้องกันของสูตรในเวิร์กชีตของคุณแล้วกดแป้น F9 หากต้องการออกจากโหมดการประเมินสูตร ให้กดแป้น Esc

    สูตร MAX IF ที่มีหลายรายการเกณฑ์

    ในสถานการณ์ที่คุณต้องการค้นหาค่าสูงสุดตามเงื่อนไขมากกว่าหนึ่งข้อ คุณสามารถ:

    ใช้คำสั่ง IF ที่ซ้อนกันเพื่อรวมเกณฑ์เพิ่มเติม:

    {=MAX( IF( criteria_range1 = criteria1 , IF( criteria_range2 = criteria2 , max_range )))}

    หรือจัดการหลายเกณฑ์โดยใช้การดำเนินการคูณ:

    {=MAX(IF(( criteria_range1 = criteria1 ) * ( criteria_range2 = criteria2 ), max_range ))}

    สมมติว่าคุณมีผลการแข่งชายและหญิงในตารางเดียว และคุณต้องการกระโดดไกลที่สุดในบรรดาสาวๆ ในรอบที่ 3 ต้องทำให้ได้ เราป้อนเกณฑ์แรก (หญิง) ใน G1 เกณฑ์ที่สอง (3) ใน G2 และใช้สูตรต่อไปนี้เพื่อหาค่าสูงสุด:

    =MAX(IF(B2:B16=G1, IF(C2:C16=G2, D2:D16)))

    =MAX(IF((B2:B16=G1)*(C2:C16=G2), D2:D16))

    เนื่องจากทั้งคู่เป็นสูตรอาร์เรย์ โปรดอย่าลืมกด Ctrl + Shift + Enter เพื่อกรอกให้ถูกต้อง

    ดังที่แสดงในภาพหน้าจอด้านล่าง สูตรต่างๆ ให้ผลลัพธ์เหมือนกัน ดังนั้นสูตรที่จะใช้คือ เรื่องของโย ความชอบส่วนบุคคลของคุณ สำหรับฉัน สูตรที่มีตรรกะบูลีนนั้นง่ายต่อการอ่านและสร้าง – ช่วยให้สามารถเพิ่มเงื่อนไขได้มากเท่าที่คุณต้องการโดยไม่ต้องซ้อนฟังก์ชัน IF เพิ่มเติม

    วิธีการทำงานของสูตรเหล่านี้

    สูตรแรกใช้ฟังก์ชัน IF ที่ซ้อนกันสองฟังก์ชันเพื่อประเมินเกณฑ์สองเกณฑ์ ในการทดสอบตรรกะของคำสั่ง IF แรก เราจะเปรียบเทียบค่าในคอลัมน์เพศ(B2:B16) ด้วยเกณฑ์ใน G1 ("หญิง") ผลลัพธ์คืออาร์เรย์ของค่า TRUE และ FALSE โดยที่ TRUE แสดงข้อมูลที่ตรงกับเกณฑ์:

    {FALSE; FALSE; FALSE; TRUE; TRUE; TRUE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; TRUE; TRUE; TRUE}

    ในลักษณะเดียวกัน ฟังก์ชัน IF ที่สองจะตรวจสอบค่าในคอลัมน์ Round (C2 :C16) เทียบกับเกณฑ์ใน G2

    สำหรับอาร์กิวเมนต์ value_if_true ในคำสั่ง IF ที่สอง เราให้ผลลัพธ์แบบกระโดดไกล (D2:D16) และวิธีนี้ทำให้เราได้รับรายการ ที่มี TRUE ในสองอาร์เรย์แรกในตำแหน่งที่สอดคล้องกัน (เช่น รายการที่เพศเป็น "หญิง" และรอบเป็น 3):

    {FALSE; FALSE; FALSE; FALSE; FALSE; 4.63; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; FALSE; 4.52}

    อาร์เรย์สุดท้ายนี้ไปที่ฟังก์ชัน MAX และ ซึ่งจะส่งคืนจำนวนที่มากที่สุด

    สูตรที่สองประเมินเงื่อนไขเดียวกันภายในการทดสอบเชิงตรรกะครั้งเดียว และการดำเนินการคูณจะทำงานเหมือนกับตัวดำเนินการ AND:

    เมื่อใช้ค่า TRUE และ FALSE ในค่าใดๆ การดำเนินการทางคณิตศาสตร์จะถูกแปลงเป็น 1 และ 0 ตามลำดับ และเนื่องจากการคูณด้วย 0 จะได้ศูนย์เสมอ อาร์เรย์ผลลัพธ์จึงมี 1 ก็ต่อเมื่อเงื่อนไขทั้งหมดเป็นจริงเท่านั้น อาร์เรย์นี้ได้รับการประเมินในการทดสอบตรรกะของฟังก์ชัน IF ซึ่งจะส่งคืนระยะทางที่สอดคล้องกับองค์ประกอบ 1 (TRUE)

    MAX IF โดยไม่มีอาร์เรย์

    ผู้ใช้ Excel จำนวนมาก รวมทั้งฉันด้วย มีอคติกับสูตรอาร์เรย์และพยายามกำจัดพวกมันทุกครั้งที่ทำได้ โชคดีที่ Microsoft Excel มีฟังก์ชันบางอย่างที่จัดการอาร์เรย์แบบเนทีฟ และเราสามารถใช้ฟังก์ชันนี้ได้ของฟังก์ชันดังกล่าว ได้แก่ SUMPRODUCT เป็นชนิดของ "wrapper" ประมาณ MAX

    สูตร MAX IF ทั่วไปที่ไม่มีอาร์เรย์เป็นดังนี้:

    =SUMPRODUCT(MAX((( criteria_range1 = เกณฑ์1 ) * ( เกณฑ์ช่วง2 = เกณฑ์2 ) * ช่วงสูงสุด ))

    โดยปกติแล้ว คุณสามารถเพิ่มคู่ช่วง/เกณฑ์เพิ่มเติมได้หาก จำเป็น

    หากต้องการดูการทำงานของสูตร เราจะใช้ข้อมูลจากตัวอย่างก่อนหน้านี้ เป้าหมายคือการกระโดดสูงสุดของนักกีฬาหญิงในรอบที่ 3:

    =SUMPRODUCT(MAX(((B2:B16=G1) * (C2:C16=G2) * (D2:D16))))

    สูตรนี้แข่งขันด้วยการกดแป้นพิมพ์ Enter ตามปกติและส่งคืนผลลัพธ์เดียวกับสูตร MAX IF ของอาร์เรย์:

    เมื่อดูภาพหน้าจอด้านบนอย่างละเอียดยิ่งขึ้น คุณจะสังเกตได้ว่าการกระโดดที่ไม่ถูกต้องที่มีเครื่องหมาย "x" ในตัวอย่างก่อนหน้านี้มีค่าเป็น 0 ในแถวที่ 3, 11 และ 15 และส่วนถัดไปจะอธิบายว่าเหตุใด

    สูตรนี้ทำงานอย่างไร

    เช่นเดียวกับสูตร MAX IF เราประเมินสองเกณฑ์โดยการเปรียบเทียบแต่ละค่าใน Gender (B2:B16) และ Round ( C2:C16) คอลัมน์ที่มีเกณฑ์ในเซลล์ G1 และ G2 ผลลัพธ์คือค่า TRUE และ FALSE สองอาร์เรย์ การคูณองค์ประกอบของอาร์เรย์ในตำแหน่งเดียวกันจะแปลง TRUE และ FALSE เป็น 1 และ 0 ตามลำดับ โดยที่ 1 หมายถึงรายการที่ตรงตามเกณฑ์ทั้งสอง อาร์เรย์ตัวคูณที่สามมีผลการกระโดดไกล (D2:D16) และเนื่องจากการคูณด้วย 0 จะได้ศูนย์ เฉพาะรายการที่มี 1 (จริง) ในตำแหน่งที่เกี่ยวข้องการอยู่รอด:

    {0; 0; 0; 0; 0; 4.63; 0; 0; 0; 0; 0; 0; 0; 0; 4.52}

    ในกรณีที่ max_range มีค่าข้อความใดๆ การดำเนินการคูณจะส่งกลับข้อผิดพลาด #VALUE เนื่องจากสูตรทั้งหมดจะไม่ทำงาน

    ฟังก์ชัน MAX รับค่าจากที่นี่และส่งกลับจำนวนมากที่สุดที่ตรงตามเงื่อนไขที่ระบุ อาร์เรย์ที่เป็นผลลัพธ์ประกอบด้วยองค์ประกอบเดียว {4.63} ไปที่ฟังก์ชัน SUMPRODUCT และส่งออกจำนวนสูงสุดในเซลล์

    หมายเหตุ เนื่องจากตรรกะเฉพาะ สูตรจึงทำงานร่วมกับคำเตือนต่อไปนี้:

    • ช่วงที่คุณค้นหาค่าสูงสุดต้องมีเฉพาะตัวเลขเท่านั้น หากมีค่าข้อความใดๆ เครื่องหมาย #VALUE! ข้อผิดพลาดจะถูกส่งกลับ
    • สูตรไม่สามารถประเมินเงื่อนไข "ไม่เท่ากับศูนย์" ในชุดข้อมูลเชิงลบ หากต้องการค้นหาค่าสูงสุดโดยไม่สนใจศูนย์ ให้ใช้สูตร MAX IF หรือฟังก์ชัน MAXIFS อย่างใดอย่างหนึ่ง

    สูตร MAX IF ของ Excel พร้อมตรรกะ OR

    หากต้องการค้นหาค่าสูงสุดเมื่อ ใดๆ<ตรงตามเงื่อนไขที่ระบุ 9> ให้ใช้สูตร MAX IF ของอาร์เรย์ที่คุ้นเคยอยู่แล้วกับตรรกะบูลีน แต่เพิ่มเงื่อนไขแทนการคูณเงื่อนไขเหล่านั้น

    {=MAX(IF(( criteria_range1 = เกณฑ์1 ) + ( เกณฑ์ช่วง2 = เกณฑ์2 ), ช่วงสูงสุด ))}

    อีกทางหนึ่ง คุณสามารถใช้สูตรที่ไม่ใช่อาร์เรย์ต่อไปนี้ :

    =SUMPRODUCT(MAX((( criteria_range1 = criteria1 ) + ( criteria_range2 = criteria2 )) * max_range ))

    ตามตัวอย่าง มาออกกำลังกายกันผลลัพธ์ที่ดีที่สุดในรอบที่ 2 และ 3 โปรดทราบว่าในภาษา Excel งานมีสูตรต่างกัน: คืนค่าสูงสุดหากรอบเป็น 2 หรือ 3

    ด้วยรอบที่แสดงใน B2:B10 ผลลัพธ์ใน C2:C10 และเกณฑ์ใน F1 และ H1 สูตรจะเป็นดังนี้:

    =MAX(IF((B2:B10=F1) + (B2:B10=H1), C2:C10))

    ป้อนสูตรโดยกดปุ่ม Ctrl + Shift + Enter และคุณจะได้รับ ผลลัพธ์นี้:

    สามารถหาค่าสูงสุดที่มีเงื่อนไขเดียวกันได้โดยใช้สูตรที่ไม่ใช่อาร์เรย์นี้:

    =SUMPRODUCT(MAX(((B2:B10=F1) + (B2:B10=H1)) * C2:C10))

    อย่างไรก็ตาม เราจำเป็นต้องแทนที่ค่า "x" ทั้งหมดในคอลัมน์ C ด้วยศูนย์ในกรณีนี้ เนื่องจาก SUMPRODUCT MAX ใช้งานได้กับข้อมูลที่เป็นตัวเลขเท่านั้น:

    วิธีการทำงานของสูตรเหล่านี้

    สูตรอาร์เรย์ทำงานในลักษณะเดียวกับ MAX IF พร้อมด้วยตรรกะ AND ยกเว้นว่าคุณจะเข้าร่วมเกณฑ์โดยใช้การดำเนินการบวกแทนการคูณ ในสูตรอาร์เรย์ การบวกจะทำงานเป็นโอเปอเรเตอร์ OR:

    การบวกอาร์เรย์ TRUE และ FALSE สองอาร์เรย์ (ซึ่งเป็นผลมาจากการตรวจสอบค่าใน B2:B10 กับเกณฑ์ใน F1 และ H1) จะสร้างอาร์เรย์ของ 1 และ 0 โดยที่ 1 แทนรายการที่เงื่อนไขใดเงื่อนไขหนึ่งเป็น TRUE และ 0 แทนรายการที่เงื่อนไขทั้งสองเป็น FALSE ด้วยเหตุนี้ ฟังก์ชัน IF จึง "เก็บ" รายการทั้งหมดใน C2:C10 ( value_if_true ) ซึ่งเงื่อนไขใดๆ เป็น TRUE (1); รายการที่เหลือจะถูกแทนที่ด้วย FALSE เนื่องจาก value_if_false ไม่ได้ระบุอาร์กิวเมนต์

    สูตรที่ไม่ใช่อาร์เรย์ทำงานในลักษณะเดียวกัน ข้อแตกต่างคือแทนที่จะใช้การทดสอบเชิงตรรกะของ IF คุณต้องคูณองค์ประกอบของอาร์เรย์ 1 และ 0 ด้วยองค์ประกอบของอาร์เรย์ผลลัพธ์การกระโดดไกล (C2:C10) ในตำแหน่งที่สอดคล้องกัน สิ่งนี้จะลบล้างรายการที่ไม่ตรงตามเงื่อนไขใดๆ (มี 0 ในอาร์เรย์แรก) และเก็บรายการที่ตรงตามเงื่อนไขข้อใดข้อหนึ่ง (มี 1 ในอาร์เรย์แรก)

    MAXIFS – วิธีง่ายๆ ในการค้นหาสูงสุด ค่าที่มีเงื่อนไข

    ผู้ใช้ Excel 2019, 2021 และ Excel 365 ปราศจากปัญหาในการฝึกฝนอาร์เรย์เพื่อสร้างสูตร MAX IF ของตนเอง Excel เวอร์ชันเหล่านี้มีฟังก์ชัน MAXIFS ที่รอคอยมานาน ซึ่งช่วยค้นหาค่าที่มากที่สุดด้วยเงื่อนไขการเล่นของเด็ก

    ในอาร์กิวเมนต์แรกของ MAXIFS ให้คุณป้อนช่วงที่ควรพบค่าสูงสุด (D2: D16 ในกรณีของเรา) และในอาร์กิวเมนต์ต่อมา คุณสามารถป้อนคู่ช่วง/เกณฑ์ได้สูงสุด 126 คู่ ตัวอย่างเช่น:

    =MAXIFS(D2:D16, B2:B16, G1, C2:C16, G2)

    ดังที่แสดงในภาพหน้าจอด้านล่าง สูตรง่ายๆ นี้ไม่มีปัญหาในการประมวลผลช่วงที่มีทั้งค่าตัวเลขและข้อความ:

    สำหรับข้อมูลโดยละเอียดเกี่ยวกับฟังก์ชันนี้ โปรดดูฟังก์ชัน MAXIFS ของ Excel พร้อมตัวอย่างสูตร

    นั่นคือวิธีที่คุณสามารถหาค่าสูงสุดพร้อมเงื่อนไขใน Excel ฉันขอขอบคุณสำหรับการอ่านและหวังว่าจะได้พบคุณในบล็อกของเราต่อไปสัปดาห์!

    สมุดงานแบบฝึกหัดสำหรับดาวน์โหลด

    ตัวอย่างสูตร Excel MAX IF (ไฟล์ .xlsx)

    Michael Brown เป็นผู้ที่ชื่นชอบเทคโนโลยีโดยเฉพาะและมีความหลงใหลในการทำให้กระบวนการที่ซับซ้อนง่ายขึ้นโดยใช้เครื่องมือซอฟต์แวร์ ด้วยประสบการณ์กว่าทศวรรษในอุตสาหกรรมเทคโนโลยี เขาได้ฝึกฝนทักษะของเขาใน Microsoft Excel และ Outlook รวมถึง Google ชีตและเอกสาร บล็อกของ Michael ทุ่มเทให้กับการแบ่งปันความรู้และความเชี่ยวชาญของเขากับผู้อื่น โดยให้คำแนะนำและแบบฝึกหัดที่ทำตามได้ง่ายเพื่อปรับปรุงผลิตภาพและประสิทธิภาพ ไม่ว่าคุณจะเป็นมืออาชีพที่ช่ำชองหรือมือใหม่ บล็อกของ Michael นำเสนอข้อมูลเชิงลึกอันมีค่าและคำแนะนำที่เป็นประโยชน์สำหรับการใช้ประโยชน์สูงสุดจากเครื่องมือซอฟต์แวร์ที่จำเป็นเหล่านี้