Είναι η στήλη ταξινομημένη;

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

=SUMPRODUCT(--(OFFSET(A1;0;0;COUNTA(A:A)-1;1)<=OFFSET(A1;1;0;COUNTA(A:A)-1;1)))=COUNTA(A:A)-1

Ισοδύναμη είναι και η συνάρτηση:

=AND(OFFSET(A1;0;0;COUNTA(A:A)-1;1)<=OFFSET(A1;1;0;COUNTA(A:A)-1;1))

Η δεύτερη  είναι  Ctrl+Shift+Enter συνάρτηση και εισάγεται όπως έχουμε περιγράψει εδώ στο σημείωμα για τις συναρτήσεις – πίνακες.
Όσο η στήλη Α είναι ταξινομημένη οι συναρτήσεις επιστρέφουν TRUE, όπως είπαμε. Μόλις εισάγετε νέα στοιχεία στη στήλη ή τροποποιήσετε τα παλιά και χαλάσει η αύξουσα ταξινόμηση, οι συναρτήσεις θα επιστρέφουν FALSE.

Συναρτήσεις ελέγχου αύξουσας ταξινόμησης

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

=SUMPRODUCT(--(OFFSET(B2;0;0;COUNTA(B:B)-2;1)<=OFFSET(B2;1;0;COUNTA(B:B)-2;1)))=COUNTA(B:B)-2

=AND(OFFSET(B2;0;0;COUNTA(B:B)-2;1)<=OFFSET(B2;1;0;COUNTA(B:B)-2;1))

Οι συναρτήσεις δουλεύουν, είτε τα δεδομένα στη στήλη είναι κείμενο, είτε είναι αριθμητικά, είτε μεικτά. Στις συναρτήσεις γίνεται χρήση όλου του εύρους της στήλης Α (ή Β αντίστοιχα). Αυτό δεν είναι απαραίτητο. Μπορείτε να περιορίσετε το εύρος στο απαραίτητο για το πρόβλημά σας. Αντικαταστήστε πχ στις συναρτήσεις το όρισμα A:A με A1:A5000.

Για φθίνουσα ταξινόμηση, στις παραπάνω συναρτήσεις, απλώς αντικαταστήστε τον τελεστή μικρότερο (<) με τον τελεστή μεγαλύτερο (>) . Δέστε και την δεύτερη εικόνα.

Συναρτήσεις ελέγχου φθίνουσας  ταξινόμησης.

=SUMPRODUCT(--(OFFSET(A1;0;0;COUNTA(A:A)-1;1)>=OFFSET(A1;1;0;COUNTA(A:A)-1;1)))=COUNTA(A:A)-1

=AND(OFFSET(A1;0;0;COUNTA(A:A)-1;1)>=OFFSET(A1;1;0;COUNTA(A:A)-1;1))

=SUMPRODUCT(--(OFFSET(B2;0;0;COUNTA(B:B)-2;1)>=OFFSET(B2;1;0;COUNTA(B:B)-2;1)))=COUNTA(B:B)-2

=AND(OFFSET(B2;0;0;COUNTA(B:B)-2;1)>=OFFSET(B2;1;0;COUNTA(B:B)-2;1))

Οι δύο συναρτήσεις που αρχίζουν από =AND( εισάγονται με Ctrl+Shift+Enter.

Η παρακάτω συνάρτηση επιστρέφει TRUE αν η στήλη Α είναι ταξινομημένη σε αύξουσα ή φθίνουσα σειρά, αλλιώς επιστρέφει FALSE. Σχηματίστηκε από τη λογική συνάρτηση OR(logical1;logical2) με ορίσματα logical1 και logical2 τις συναρτήσεις που είδαμε παραπάνω για αύξουσα και φθίνουσα ταξινόμηση.

=OR(SUMPRODUCT(--(OFFSET(A1;0;0;COUNTA(A:A)-1;1)<=OFFSET(A1;1;0;COUNTA(A:A)-1;1)))=COUNTA(A:A)-1;SUMPRODUCT(--(OFFSET(A1;0;0;COUNTA(A:A)-1;1)>=OFFSET(A1;1;0;COUNTA(A:A)-1;1)))=COUNTA(A:A)-1)

Αν θέλετε κατεβάστε το βιβλίο sorted_column για να δείτε τις συναρτήσεις στην πράξη.

This entry was posted in excel, Συναρτήσεις φύλλου and tagged , , . Bookmark the permalink.