Τύπος Excel: Επιστροφή πίνακα με συνάρτηση INDEX -

Πίνακας περιεχομένων

Γενική φόρμουλα

=SUM(INDEX(range,N(IF(1,(1,2,3)))))

Περίληψη

Για να οδηγήσετε το INDEX να επιστρέψει μια σειρά στοιχείων σε άλλη συνάρτηση, μπορείτε να χρησιμοποιήσετε ένα σκοτεινό τέχνασμα βάσει των συναρτήσεων IF και N. Στο παράδειγμα που παρουσιάζεται, ο τύπος στο E5 είναι:

=SUM(INDEX(data,N(IF(1,(1,2,3)))))

όπου "δεδομένα" είναι η ονομαζόμενη περιοχή B5: B10.

Εξήγηση

Είναι εκπληκτικά δύσκολο να πάρει το INDEX να επιστρέψει περισσότερες από μία τιμές σε μια άλλη συνάρτηση. Για να διευκρινιστεί, ο ακόλουθος τύπος μπορεί να χρησιμοποιηθεί για την επιστροφή των πρώτων τριών στοιχείων στο ονομαζόμενο εύρος "δεδομένα", όταν εισαχθεί ως τύπος συστοιχίας πολλαπλών κυττάρων.

(=INDEX(data,(1,2,3)))

Τα αποτελέσματα φαίνονται στο εύρος D10: F10, το οποίο περιέχει σωστά 10, 15 και 20.

Ωστόσο, εάν τυλίξουμε τον τύπο στη συνάρτηση SUM:

=SUM(INDEX(data,(1,2,3)))

Το τελικό αποτέλεσμα είναι 10, ενώ θα πρέπει να είναι 45, ακόμη και αν εισαχθεί ως τύπος πίνακα. Το πρόβλημα είναι ότι το INDEX επιστρέφει μόνο το πρώτο στοιχείο του πίνακα στη συνάρτηση SUM. Για να αναγκάσετε το INDEX να επιστρέψει πολλά στοιχεία στο SUM, μπορείτε να τυλίξετε τη σταθερά του πίνακα στις συναρτήσεις N και IF ως εξής:

=SUM(INDEX(data,N(IF(1,(1,2,3)))))

που επιστρέφει ένα σωστό αποτέλεσμα 45. Ομοίως, αυτός ο τύπος:

=SUM(INDEX(data,N(IF(1,(1,3,5)))))

επιστρέφει σωστά 60, το άθροισμα των 10, 20 και 30.

Αυτή η σκοτεινή τεχνική ονομάζεται μερικές φορές "αποαναφορά", επειδή εμποδίζει το INDEX να χειριστεί τα αποτελέσματα ως αναφορές κυττάρων και στη συνέχεια να ρίξει όλα εκτός από το πρώτο στοιχείο του πίνακα. Αντ 'αυτού, το INDEX παρέχει μια πλήρη σειρά τιμών στο SUM in. Ο Jeff Weir έχει μια καλή εξήγηση εδώ στο stackoverflow.

Σημείωση για τους αναγνώστες: Δεν είμαι σίγουρος γιατί λειτουργεί. Εάν μπορείτε να δώσετε μια σαφή εξήγηση, θα ενημερώσω για να συμπεριλάβω.

ενδιαφέροντα άρθρα...