Τύπος Excel MAX IF για την εύρεση της μεγαλύτερης τιμής με συνθήκες

  • Μοιραστείτε Αυτό
Michael Brown

Το άρθρο παρουσιάζει μερικούς διαφορετικούς τρόπους για να λάβετε τη μέγιστη τιμή στο Excel με βάση μία ή περισσότερες συνθήκες που καθορίζετε.

Στο προηγούμενο σεμινάριό μας, εξετάσαμε τις συνήθεις χρήσεις της συνάρτησης MAX, η οποία έχει σχεδιαστεί για να επιστρέφει τον μεγαλύτερο αριθμό σε ένα σύνολο δεδομένων. Σε ορισμένες περιπτώσεις, ωστόσο, μπορεί να χρειαστεί να εμβαθύνετε περισσότερο στα δεδομένα σας για να βρείτε τη μέγιστη τιμή με βάση ορισμένα κριτήρια. Αυτό μπορεί να γίνει με τη χρήση μερικών διαφορετικών τύπων και αυτό το άρθρο εξηγεί όλους τους πιθανούς τρόπους.

    Τύπος Excel MAX IF

    Μέχρι πρόσφατα, το Microsoft Excel δεν διέθετε ενσωματωμένη συνάρτηση MAX IF για να λαμβάνετε τη μέγιστη τιμή με βάση τις συνθήκες. Με την εισαγωγή της MAXIFS στο Excel 2019, μπορούμε να κάνουμε το υπό όρους μέγιστο με εύκολο τρόπο.

    Στο Excel 2016 και σε προηγούμενες εκδόσεις, πρέπει ακόμα να δημιουργήσετε το δικό σας τύπος συστοιχίας συνδυάζοντας τη συνάρτηση MAX με μια δήλωση IF:

    {=MAX(IF( criteria_range = κριτήρια , max_range ))}

    Για να δείτε πώς λειτουργεί αυτός ο γενικός τύπος MAX IF σε πραγματικά δεδομένα, αναλογιστείτε το ακόλουθο παράδειγμα. Ας υποθέσουμε ότι έχετε έναν πίνακα με τα αποτελέσματα του άλματος εις μήκος πολλών μαθητών. Ο πίνακας περιλαμβάνει τα δεδομένα για τρεις γύρους και αναζητάτε το καλύτερο αποτέλεσμα ενός συγκεκριμένου αθλητή, ας πούμε του Jacob. Με τα ονόματα των μαθητών σε A2:A10 και τις αποστάσεις σε C2:C10, ο τύπος παίρνει την εξής μορφή:

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

    Λάβετε υπόψη σας ότι ένας τύπος πίνακα πρέπει πάντα να εισάγεται πατώντας ταυτόχρονα τα πλήκτρα Ctrl + Shift + Enter. Ως αποτέλεσμα, περιβάλλεται αυτόματα με καμπύλες αγκύλες, όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης (η χειροκίνητη πληκτρολόγηση των αγκύλων δεν θα λειτουργήσει!).

    Σε πραγματικά φύλλα εργασίας, είναι πιο βολικό να εισάγετε το κριτήριο σε κάποιο κελί, ώστε να μπορείτε εύκολα να αλλάξετε τη συνθήκη χωρίς να αλλάξετε τον τύπο. Έτσι, πληκτρολογούμε το επιθυμητό όνομα στο F1 και παίρνουμε το ακόλουθο αποτέλεσμα:

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

    Πώς λειτουργεί αυτή η φόρμουλα

    Στον λογικό έλεγχο της συνάρτησης IF, συγκρίνουμε τη λίστα των ονομάτων (A2:A10) με το όνομα-στόχο (F1). Το αποτέλεσμα αυτής της λειτουργίας είναι ένας πίνακας από TRUE και FALSE, όπου οι τιμές TRUE αντιπροσωπεύουν ονόματα που ταιριάζουν με το όνομα-στόχο (Jacob):

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

    Για το value_ if_true όρισμα, παρέχουμε τα αποτελέσματα του άλματος μεγάλου μήκους (C2:C10), έτσι ώστε αν ο λογικός έλεγχος αποτιμηθεί σε TRUE, να επιστραφεί ο αντίστοιχος αριθμός από τη στήλη C. value_ if_false το όρισμα παραλείπεται, δηλαδή θα έχει απλώς την τιμή FALSE όταν η συνθήκη δεν ικανοποιείται:

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

    Αυτός ο πίνακας τροφοδοτείται στη συνάρτηση MAX, η οποία επιστρέφει τον μέγιστο αριθμό αγνοώντας τις τιμές FALSE.

    Συμβουλή. Για να δείτε τους εσωτερικούς πίνακες που αναφέρθηκαν παραπάνω, επιλέξτε το αντίστοιχο τμήμα του τύπου στο φύλλο εργασίας σας και πατήστε το πλήκτρο F9. Για να βγείτε από τη λειτουργία αξιολόγησης τύπου, πατήστε το πλήκτρο Esc.

    Τύπος MAX IF με πολλαπλά κριτήρια

    Σε περίπτωση που πρέπει να βρείτε τη μέγιστη τιμή με βάση περισσότερες από μία συνθήκες, μπορείτε είτε:

    Χρησιμοποιήστε εμφωλευμένες δηλώσεις IF για να συμπεριλάβετε πρόσθετα κριτήρια:

    {=MAX(IF( criteria_range1 = κριτήρια1 , IF( criteria_range2 = κριτήρια2 , max_range )))}

    Ή να χειριστείτε πολλαπλά κριτήρια χρησιμοποιώντας την πράξη πολλαπλασιασμού:

    {=MAX(IF((( criteria_range1 = κριτήρια1 ) * ( criteria_range2 = κριτήρια2 ), 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 για να τους ολοκληρώσετε σωστά.

    Όπως φαίνεται στο παρακάτω στιγμιότυπο, οι τύποι παράγουν το ίδιο αποτέλεσμα, οπότε το ποιον θα χρησιμοποιήσετε είναι θέμα της προσωπικής σας προτίμησης. Για μένα, ο τύπος με τη λογική Boole είναι πιο εύκολος στην ανάγνωση και τη δημιουργία - επιτρέπει την προσθήκη όσων όρων θέλετε χωρίς να εμφωλεύσετε πρόσθετες συναρτήσεις IF.

    Πώς λειτουργούν αυτοί οι τύποι

    Ο πρώτος τύπος χρησιμοποιεί δύο εμφωλευμένες συναρτήσεις IF για την αξιολόγηση δύο κριτηρίων. Στο λογικό έλεγχο της πρώτης εντολής IF, συγκρίνουμε τις τιμές στη στήλη Gender (B2:B16) με το κριτήριο στο G1 ("Female"). Το αποτέλεσμα είναι ένας πίνακας τιμών TRUE και FALSE, όπου TRUE αντιπροσωπεύει δεδομένα που ταιριάζουν με το κριτήριο:

    {ΨΕΥΔΉΣ, ΨΕΥΔΉΣ, ΨΕΥΔΉΣ, ΨΕΥΔΉΣ, ΑΛΗΘΉΣ, ΑΛΗΘΉΣ, ΑΛΗΘΉΣ, ΨΕΥΔΉΣ, ΨΕΥΔΉΣ, ΨΕΥΔΉΣ, ΨΕΥΔΉΣ, ΨΕΥΔΉΣ, ΨΕΥΔΉΣ, ΑΛΗΘΉΣ, ΑΛΗΘΉΣ, ΑΛΗΘΉΣ}

    Με παρόμοιο τρόπο, η δεύτερη συνάρτηση IF ελέγχει τις τιμές στη στήλη Round (C2:C16) σε σχέση με το κριτήριο στο G2.

    Για το value_if_true όρισμα στη δεύτερη δήλωση IF, παρέχουμε τα αποτελέσματα του άλματος σε μήκος (D2:D16), και με αυτόν τον τρόπο παίρνουμε τα στοιχεία που έχουν TRUE στους δύο πρώτους πίνακες στις αντίστοιχες θέσεις (δηλαδή τα στοιχεία όπου το φύλο είναι "θηλυκό" και ο γύρος είναι 3):

    Αυτός ο τελικός πίνακας πηγαίνει στη συνάρτηση MAX και επιστρέφει τον μεγαλύτερο αριθμό.

    Ο δεύτερος τύπος αξιολογεί τις ίδιες συνθήκες στο πλαίσιο μιας ενιαίας λογικής δοκιμής και η πράξη πολλαπλασιασμού λειτουργεί όπως ο τελεστής AND:

    Όταν οι τιμές TRUE και FALSE χρησιμοποιούνται σε οποιαδήποτε αριθμητική πράξη, μετατρέπονται σε 1 και 0 αντίστοιχα. Και επειδή ο πολλαπλασιασμός με το 0 δίνει πάντα μηδέν, ο πίνακας που προκύπτει έχει 1 μόνο όταν όλες οι συνθήκες είναι TRUE. Ο πίνακας αυτός αξιολογείται στο λογικό τεστ της συνάρτησης IF, η οποία επιστρέφει τις αποστάσεις που αντιστοιχούν στα στοιχεία 1 (TRUE).

    MAX IF χωρίς συστοιχία

    Πολλοί χρήστες του Excel, συμπεριλαμβανομένου και εμού, είναι προκατειλημμένοι απέναντι στους τύπους array και προσπαθούν να τους ξεφορτωθούν όπου είναι δυνατόν. Ευτυχώς, το Microsoft Excel διαθέτει μερικές συναρτήσεις που χειρίζονται array εγγενώς, και μπορούμε να χρησιμοποιήσουμε μια από αυτές τις συναρτήσεις, δηλαδή την SUMPRODUCT, ως ένα είδος "περιτυλίγματος" γύρω από την MAX.

    Ο γενικός τύπος MAX IF χωρίς πίνακα έχει ως εξής:

    =ΑΘΡΟΙΣΤΙΚΌ ΓΙΝΌΜΕΝΟ(MAX(( criteria_range1 = κριτήρια1 ) * ( criteria_range2 = κριτήρια2 ) * max_range ))

    Φυσικά, μπορείτε να προσθέσετε περισσότερα ζεύγη εύρους/κριτηρίων αν χρειαστεί.

    Για να δούμε τον τύπο σε δράση, θα χρησιμοποιήσουμε τα δεδομένα από το προηγούμενο παράδειγμα. Στόχος είναι να πάρουμε το μέγιστο άλμα μιας αθλήτριας στον 3ο γύρο:

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

    Αυτός ο τύπος ανταγωνίζεται με ένα κανονικό πάτημα του πλήκτρου Enter και επιστρέφει το ίδιο αποτέλεσμα με τον τύπο array MAX IF:

    Ρίχνοντας μια πιο προσεκτική ματιά στο παραπάνω στιγμιότυπο οθόνης, μπορείτε να παρατηρήσετε ότι τα άκυρα άλματα που σημειώθηκαν με "x" στα προηγούμενα παραδείγματα έχουν τώρα τιμές 0 στις γραμμές 3, 11 και 15, και η επόμενη ενότητα εξηγεί το γιατί.

    Πώς λειτουργεί αυτή η φόρμουλα

    Όπως και με τον τύπο MAX IF, αξιολογούμε δύο κριτήρια συγκρίνοντας κάθε τιμή στις στήλες Gender (B2:B16) και Round (C2:C16) με τα κριτήρια στα κελιά G1 και G2. Το αποτέλεσμα είναι δύο πίνακες τιμών TRUE και FALSE. Ο πολλαπλασιασμός των στοιχείων των πινάκων στις ίδιες θέσεις μετατρέπει τα TRUE και FALSE σε 1 και 0, αντίστοιχα, όπου το 1 αντιπροσωπεύει τα στοιχεία που πληρούν και τα δύο κριτήρια. Ο τρίτος πολλαπλασιασμόςarray περιέχει τα αποτελέσματα του άλματος μεγάλου μήκους (D2:D16). Και επειδή ο πολλαπλασιασμός με το 0 δίνει μηδέν, επιβιώνουν μόνο τα στοιχεία που έχουν 1 (TRUE) στις αντίστοιχες θέσεις:

    {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.

    Τύπος Excel MAX IF με λογική OR

    Για να βρείτε τη μέγιστη τιμή όταν οποιοδήποτε από τις καθορισμένες συνθήκες πληρούνται, χρησιμοποιήστε τον ήδη γνωστό τύπο array MAX IF με τη λογική Boole, αλλά προσθέστε τις συνθήκες αντί να τις πολλαπλασιάσετε.

    {=MAX(IF((( criteria_range1 = κριτήρια1 ) + ( criteria_range2 = κριτήρια2 ), max_range ))}

    Εναλλακτικά, μπορείτε να χρησιμοποιήσετε τον ακόλουθο τύπο χωρίς συστοιχία:

    =ΑΘΡΟΙΣΤΙΚΌ ΓΙΝΌΜΕΝΟ(MAX(((( criteria_range1 = κριτήρια1 ) + ( criteria_range2 = κριτήρια2 )) * 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 ) για τα οποία οποιαδήποτε συνθήκη είναι ΑΛΗΘΗΣ (1)- τα υπόλοιπα στοιχεία αντικαθίστανται με FALSE επειδή η value_if_false δεν έχει καθοριστεί το όρισμα.

    Ο τύπος χωρίς πίνακα λειτουργεί με παρόμοιο τρόπο. Η διαφορά είναι ότι αντί για το λογικό τεστ του IF, πολλαπλασιάζετε τα στοιχεία του πίνακα 1 και 0 με τα στοιχεία του πίνακα αποτελεσμάτων του άλματος εις μήκος (C2:C10) στις αντίστοιχες θέσεις. Έτσι μηδενίζονται τα στοιχεία που δεν πληρούν καμία συνθήκη (έχουν 0 στον πρώτο πίνακα) και διατηρούνται τα στοιχεία που πληρούν μία από τις συνθήκες (έχουν 1 στον πρώτοarray).

    MAXIFS - εύκολος τρόπος εύρεσης της υψηλότερης τιμής με όρους

    Οι χρήστες του Excel 2019, 2021 και του Excel 365 απαλλάσσονται από τον κόπο της εξημέρωσης πινάκων για να κατασκευάσουν τον δικό τους τύπο MAX IF. Αυτές οι εκδόσεις του Excel παρέχουν την πολυαναμενόμενη συνάρτηση MAXIFS που κάνει την εύρεση της μεγαλύτερης τιμής με όρους παιχνιδάκι.

    Στο πρώτο όρισμα του MAXIFS, εισάγετε το εύρος τιμών στο οποίο πρέπει να βρεθεί η μέγιστη τιμή (D2:D16 στην περίπτωσή μας) και στα επόμενα ορίσματα μπορείτε να εισάγετε έως και 126 ζεύγη τιμών/κριτηρίων. Για παράδειγμα:

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

    Όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης, αυτός ο απλός τύπος δεν έχει κανένα πρόβλημα με την επεξεργασία της περιοχής που περιέχει τόσο αριθμητικές τιμές όσο και τιμές κειμένου:

    Για λεπτομερείς πληροφορίες σχετικά με αυτή τη συνάρτηση, ανατρέξτε στη σελίδα Excel MAXIFS function with formula examples.

    Έτσι μπορείτε να βρείτε τη μέγιστη τιμή με συνθήκες στο Excel. Σας ευχαριστώ για την ανάγνωση και ελπίζω να σας δω στο blog μας την επόμενη εβδομάδα!

    Βιβλίο ασκήσεων για κατέβασμα

    Παραδείγματα τύπων Excel MAX IF (.xlsx αρχείο)

    Ο Michael Brown είναι ένας αφοσιωμένος λάτρης της τεχνολογίας με πάθος για την απλοποίηση πολύπλοκων διαδικασιών χρησιμοποιώντας εργαλεία λογισμικού. Με περισσότερο από μια δεκαετία εμπειρίας στον κλάδο της τεχνολογίας, έχει βελτιώσει τις δεξιότητές του στο Microsoft Excel και το Outlook, καθώς και στα Φύλλα Google και στα Έγγραφα. Το blog του Michael είναι αφιερωμένο στο να μοιράζεται τη γνώση και την τεχνογνωσία του με άλλους, παρέχοντας εύκολες συμβουλές και σεμινάρια για τη βελτίωση της παραγωγικότητας και της αποτελεσματικότητας. Είτε είστε έμπειρος επαγγελματίας είτε αρχάριος, το ιστολόγιο του Michael προσφέρει πολύτιμες πληροφορίες και πρακτικές συμβουλές για να αξιοποιήσετε στο έπακρο αυτά τα βασικά εργαλεία λογισμικού.