Công thức Excel MAX IF để tìm giá trị lớn nhất có điều kiện

  • Chia Sẻ Cái Này
Michael Brown

Bài viết trình bày một số cách khác nhau để lấy giá trị tối đa trong Excel dựa trên một hoặc một số điều kiện mà bạn chỉ định.

Trong hướng dẫn trước của chúng tôi, chúng tôi đã xem xét các cách sử dụng phổ biến của hàm MAX được thiết kế để trả về số lớn nhất trong tập dữ liệu. Tuy nhiên, trong một số trường hợp, bạn có thể cần phải đi sâu vào dữ liệu của mình hơn nữa để tìm giá trị tối đa dựa trên các tiêu chí nhất định. Điều này có thể được thực hiện bằng cách sử dụng một số công thức khác nhau và bài viết này giải thích tất cả các cách có thể.

    Công thức MAX IF của Excel

    Cho đến gần đây, Microsoft Excel vẫn chưa có công thức tích hợp hàm MAX IF để lấy giá trị lớn nhất dựa trên điều kiện. Với việc giới thiệu MAXIFS trong Excel 2019, chúng ta có thể thực hiện max có điều kiện một cách dễ dàng.

    Trong Excel 2016 và các phiên bản cũ hơn, bạn vẫn phải tạo công thức mảng của riêng mình bằng cách kết hợp MAXIFS hàm với câu lệnh IF:

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

    Để xem MAX chung này như thế nào Công thức IF hoạt động trên dữ liệu thực, vui lòng xem xét ví dụ sau. Giả sử, bạn có một bảng ghi kết quả nhảy xa của một số học sinh. Bảng bao gồm dữ liệu cho ba vòng và bạn đang tìm kiếm kết quả tốt nhất của một vận động viên cụ thể, Jacob nói. Với tên sinh viên trong A2:A10 và khoảng cách trong C2:C10, công thức có dạng sau:

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

    Xin lưu ý rằng đây là công thức mảngphải luôn được nhập bằng cách nhấn đồng thời các phím Ctrl + Shift + Enter. Kết quả là, nó sẽ tự động được bao quanh bởi các dấu ngoặc nhọn như minh họa trong ảnh chụp màn hình bên dưới (nhập dấu ngoặc nhọn theo cách thủ công sẽ không hoạt động!).

    Đối với các trang tính thực tế, sẽ thuận tiện hơn khi nhập tiêu chí trong một số ô, để bạn có thể dễ dàng thay đổi điều kiện mà không cần thay đổi công thức. Vì vậy, chúng tôi nhập tên mong muốn vào F1 và nhận được kết quả sau:

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

    Cách thức hoạt động của công thức này

    Theo logic kiểm tra hàm IF, chúng tôi so sánh danh sách tên (A2:A10) với tên mục tiêu (F1). Kết quả của thao tác này là một mảng TRUE và FALSE, trong đó các giá trị TRUE đại diện cho các tên khớp với tên mục tiêu (Jacob):

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

    Đối với value_ if_true đối số, chúng tôi cung cấp kết quả bước nhảy dài (C2:C10), vì vậy nếu kiểm tra logic đánh giá là TRUE, thì số tương ứng từ cột C sẽ được trả về. Đối số value_ if_false bị bỏ qua, nghĩa là sẽ chỉ có giá trị FALSE khi điều kiện không được đáp ứng:

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

    Mảng này được cấp cho hàm MAX, trong đó trả về số lượng lớn nhất bỏ qua các giá trị FALSE.

    Mẹo. Để xem các mảng bên trong được thảo luận ở trên, hãy chọn phần tương ứng của công thức trong trang tính của bạn và nhấn phím F9. Để thoát khỏi chế độ đánh giá công thức, nhấn phím Esc.

    Công thức MAX IF có nhiềutiêu chí

    Trong trường hợp cần tìm giá trị tối đa dựa trên nhiều điều kiện, bạn có thể:

    Sử dụng câu lệnh IF lồng nhau để bao gồm tiêu chí bổ sung:

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

    Hoặc xử lý nhiều tiêu chí bằng cách sử dụng phép toán nhân:

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

    Giả sử bạn có kết quả của nam và nữ trong một bảng duy nhất và bạn muốn tìm bước nhảy xa nhất trong số các nữ ở vòng 3. Để hoàn thành , chúng tôi nhập tiêu chí đầu tiên (nữ) vào G1, tiêu chí thứ hai (3) vào G2 và sử dụng các công thức sau để tính ra giá trị tối đa:

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

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

    Vì cả hai đều là công thức mảng, hãy nhớ nhấn Ctrl + Shift + Enter để hoàn thành chúng một cách chính xác.

    Như minh họa trong ảnh chụp màn hình bên dưới, các công thức cho kết quả giống nhau, vì vậy công thức nào được sử dụng là vấn đề của bạn sở thích cá nhân của bạn. Đối với tôi, công thức có logic Boolean dễ đọc và dễ xây dựng hơn – công thức này cho phép thêm bao nhiêu điều kiện tùy thích mà không cần lồng các hàm IF bổ sung.

    Cách thức hoạt động của các công thức này

    Công thức đầu tiên sử dụng hai hàm IF lồng nhau để đánh giá hai tiêu chí. Trong bài kiểm tra logic của câu lệnh IF đầu tiên, chúng tôi so sánh các giá trị trong cột Giới tính(B2:B16) với tiêu chí trong G1 ("Nữ"). Kết quả là một mảng các giá trị TRUE và FALSE trong đó TRUE biểu thị dữ liệu khớp với tiêu chí:

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

    Theo cách tương tự, hàm IF thứ hai sẽ kiểm tra các giá trị trong cột Vòng (C2 :C16) theo tiêu chí trong G2.

    Đối với đối số value_if_true trong câu lệnh IF thứ hai, chúng tôi cung cấp kết quả bước nhảy dài (D2:D16) và bằng cách này, chúng tôi nhận được các mục có TRUE trong hai mảng đầu tiên ở các vị trí tương ứng (tức là các mục có giới tính là "nữ" và vòng là 3):

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

    Mảng cuối cùng này chuyển đến hàm MAX và nó trả về số lớn nhất.

    Công thức thứ hai đánh giá các điều kiện giống nhau trong một phép thử lô-gic duy nhất và phép toán nhân hoạt động giống như toán tử AND:

    Khi các giá trị TRUE và FALSE được sử dụng trong bất kỳ phép toán số học, chúng lần lượt được chuyển đổi thành 1 và 0. Và bởi vì nhân với 0 luôn cho kết quả bằng 0, mảng kết quả chỉ có 1 khi tất cả các điều kiện là TRUE. Mảng này được đánh giá trong bài kiểm tra logic của hàm IF, hàm này trả về khoảng cách tương ứng với các phần tử 1 (TRUE).

    MAX IF không có mảng

    Nhiều người dùng Excel, bao gồm cả tôi, có thành kiến ​​với công thức mảng và cố gắng loại bỏ chúng bất cứ khi nào có thể. May mắn thay, Microsoft Excel có một vài hàm xử lý mảng nguyên bản và chúng ta có thể sử dụng mộtcủa các hàm như vậy, cụ thể là TÓM TẮT, dưới dạng một loại "trình bao bọc" xung quanh MAX.

    Công thức MAX IF chung không có mảng như sau:

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

    Đương nhiên, bạn có thể thêm nhiều cặp phạm vi/tiêu chí hơn nếu cần thiết.

    Để xem công thức đang hoạt động, chúng tôi sẽ sử dụng dữ liệu từ ví dụ trước. Mục đích là để vận động viên nữ có được cú nhảy tối đa trong vòng 3:

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

    Công thức này được thi với một lần nhấn phím Enter bình thường và trả về kết quả giống như công thức mảng MAX IF:

    Xem kỹ ảnh chụp màn hình ở trên, bạn có thể nhận thấy rằng các bước nhảy không hợp lệ được đánh dấu bằng "x" trong các ví dụ trước hiện có giá trị 0 ở các hàng 3, 11 và 15 và phần tiếp theo sẽ giải thích lý do.

    Cách thức hoạt động của công thức này

    Cũng như công thức MAX IF, chúng tôi đánh giá hai tiêu chí bằng cách so sánh từng giá trị trong Giới tính (B2:B16) và Vòng ( C2:C16) với các tiêu chí trong các ô G1 và G2. Kết quả là hai mảng giá trị TRUE và FALSE. Nhân các phần tử của mảng ở cùng vị trí sẽ lần lượt chuyển đổi TRUE và FALSE thành 1 và 0, trong đó 1 đại diện cho các mục đáp ứng cả hai tiêu chí. Mảng nhân thứ ba chứa kết quả nhảy xa (D2:D16). Và bởi vì nhân với 0 sẽ cho kết quả bằng 0, nên chỉ những mục có 1 (TRUE) ở các vị trí tương ứngtồn tại:

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

    Trong trường hợp phạm vi_max chứa bất kỳ giá trị văn bản nào, phép toán nhân sẽ trả về lỗi #VALUE do đó toàn bộ công thức sẽ không hoạt động.

    Hàm MAX lấy nó từ đây và trả về số lớn nhất đáp ứng các điều kiện đã chỉ định. Mảng kết quả bao gồm một phần tử duy nhất {4.63} chuyển đến hàm TÓM TẮT và nó xuất ra số tối đa trong một ô.

    Lưu ý. Do logic cụ thể của nó, công thức hoạt động với những lưu ý sau:

    • Phạm vi mà bạn tìm kiếm giá trị cao nhất chỉ được chứa các số. Nếu có bất kỳ giá trị văn bản nào, lỗi #VALUE! lỗi được trả về.
    • Công thức không thể đánh giá điều kiện "không bằng 0" trong tập dữ liệu âm. Để tìm giá trị lớn nhất bỏ qua các số 0, hãy sử dụng công thức MAX IF hoặc hàm MAXIFS.

    Công thức MAX IF trong Excel với logic OR

    Để tìm giá trị lớn nhất khi bất kỳ trong số các điều kiện đã chỉ định được đáp ứng, hãy sử dụng công thức mảng MAX IF đã quen thuộc với logic Boolean, nhưng thêm các điều kiện thay vì nhân chúng.

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

    Ngoài ra, bạn có thể sử dụng công thức ngoài mảng sau :

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

    Ví dụ, hãy tính toánkết quả tốt nhất trong vòng 2 và 3. Xin lưu ý rằng trong ngôn ngữ Excel, nhiệm vụ được xây dựng theo cách khác: trả về giá trị tối đa nếu vòng là 2 hoặc 3.

    Với các vòng được liệt kê trong B2:B10 , kết quả ở C2:C10 và tiêu chí ở F1 và H1, công thức như sau:

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

    Nhập công thức bằng cách nhấn tổ hợp phím Ctrl + Shift + Enter và bạn sẽ nhận được kết quả này:

    Bạn cũng có thể tìm thấy giá trị lớn nhất với cùng điều kiện bằng cách sử dụng công thức không phải mảng này:

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

    Tuy nhiên, chúng ta cần thay thế tất cả các giá trị "x" trong cột C bằng số 0 trong trường hợp này vì TÓM TẮT TỐI ĐA chỉ hoạt động với dữ liệu số:

    Cách thức hoạt động của các công thức này

    Công thức mảng hoạt động giống hệt như MAX IF với logic AND ngoại trừ việc bạn tham gia các tiêu chí bằng cách sử dụng phép toán cộng thay vì phép nhân. Trong công thức mảng, phép cộng hoạt động như toán tử OR:

    Cộng hai mảng TRUE và FALSE (kết quả từ việc kiểm tra các giá trị trong B2:B10 theo tiêu chí trong F1 và H1) sẽ tạo ra một mảng gồm 1 và 0 trong đó 1 đại diện cho các mục mà một trong hai điều kiện là TRUE và 0 đại diện cho các mục mà cả hai điều kiện đều SAI. Kết quả là, hàm IF "giữ" tất cả các mục trong C2:C10 ( value_if_true ) mà bất kỳ điều kiện nào là TRUE (1); các mục còn lại được thay thế bằng FALSE vìĐối số value_if_false không được chỉ định.

    Công thức không phải mảng hoạt động theo cách tương tự. Sự khác biệt là thay vì kiểm tra logic của IF, bạn nhân các phần tử của mảng 1 và 0 với các phần tử của mảng kết quả nhảy xa (C2:C10) ở các vị trí tương ứng. Thao tác này sẽ vô hiệu hóa các mục không đáp ứng bất kỳ điều kiện nào (có 0 trong mảng đầu tiên) và giữ các mục đáp ứng một trong các điều kiện (có 1 trong mảng đầu tiên).

    MAXIFS – cách dễ dàng để tìm giá trị cao nhất giá trị có điều kiện

    Người dùng Excel 2019, 2021 và Excel 365 không gặp rắc rối khi thuần hóa mảng để xây dựng công thức MAX IF của riêng họ. Các phiên bản Excel này cung cấp hàm MAXIFS đã được chờ đợi từ lâu giúp việc tìm giá trị lớn nhất với điều kiện trở thành trò chơi trẻ con.

    Trong đối số đầu tiên của MAXIFS, bạn nhập phạm vi trong đó giá trị lớn nhất sẽ được tìm thấy (D2: D16 trong trường hợp của chúng tôi), và trong các đối số tiếp theo, bạn có thể nhập tối đa 126 cặp phạm vi/tiêu chí. Ví dụ:

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

    Như minh họa trong ảnh chụp màn hình bên dưới, công thức đơn giản này không gặp vấn đề gì khi xử lý phạm vi chứa cả giá trị số và văn bản:

    Để biết thông tin chi tiết về hàm này, vui lòng xem hàm MAXIFS trong Excel với các ví dụ về công thức.

    Đó là cách bạn có thể tìm giá trị lớn nhất với các điều kiện trong Excel. Tôi cảm ơn bạn đã đọc và hy vọng sẽ gặp bạn trên blog của chúng tôi tiếp theotuần!

    Sách bài tập thực hành để tải xuống

    Ví dụ về công thức Excel MAX IF (tệp .xlsx)

    Michael Brown là một người đam mê công nghệ chuyên dụng với niềm đam mê đơn giản hóa các quy trình phức tạp bằng các công cụ phần mềm. Với hơn một thập kỷ kinh nghiệm trong ngành công nghệ, anh ấy đã trau dồi kỹ năng của mình trong Microsoft Excel và Outlook, cũng như Google Trang tính và Tài liệu. Blog của Michael dành để chia sẻ kiến ​​thức và chuyên môn của anh ấy với những người khác, cung cấp các mẹo và hướng dẫn dễ thực hiện để cải thiện năng suất và hiệu quả. Cho dù bạn là một chuyên gia dày dạn kinh nghiệm hay người mới bắt đầu, blog của Michael đều cung cấp những hiểu biết có giá trị và lời khuyên thiết thực để tận dụng tối đa những công cụ phần mềm thiết yếu này.