
Γενική φόρμουλα
=COUNTIF(INDIRECT("'"&sheetname&"'!"&"range"),criteria)
Περίληψη
Για να αναζητήσετε πολλά φύλλα εργασίας σε ένα βιβλίο εργασίας για μια τιμή και να επιστρέψετε μια μέτρηση, μπορείτε να χρησιμοποιήσετε έναν τύπο βασισμένο στις συναρτήσεις COUNTIF και INDIRECT. Με κάποια προκαταρκτική ρύθμιση, μπορείτε να χρησιμοποιήσετε αυτήν την προσέγγιση για να αναζητήσετε ένα ολόκληρο βιβλίο εργασίας για μια συγκεκριμένη τιμή. Στο παράδειγμα που εμφανίζεται, ο τύπος στο C5 είναι:
=COUNTIF(INDIRECT("'"&B7&"'!"&"1:1048576"),$C$4)
Περιεχόμενο - δείγμα δεδομένων
Το βιβλίο εργασίας περιέχει συνολικά 4 φύλλα εργασίας. Φύλλο1 , Φύλλο2 , και Sheet3 καθένα περιέχει 1000 τυχαία ονόματα που μοιάζουν με αυτό:
Εξήγηση
Το εύρος B7: B9 περιέχει τα ονόματα φύλλων που θέλουμε να συμπεριλάβουμε στην αναζήτηση. Αυτές είναι απλώς συμβολοσειρές κειμένου και πρέπει να κάνουμε κάποια δουλειά για να αναγνωριστούν ως έγκυρες αναφορές φύλλων.
Δουλεύοντας από μέσα προς τα έξω, αυτή η έκφραση χρησιμοποιείται για τη δημιουργία πλήρους αναφοράς φύλλου:
"'"&B7&"'!"&"1:1048576"
Τα μεμονωμένα εισαγωγικά προστίθενται για να επιτρέπουν τα ονόματα φύλλων με κενά και το θαυμαστικό είναι μια τυπική σύνταξη για εύρη που περιλαμβάνουν ένα όνομα φύλλου. Το κείμενο "1: 1048576" είναι ένα εύρος που περιλαμβάνει κάθε σειρά στο φύλλο εργασίας.
Αφού αξιολογηθεί το B7 και οι τιμές συνδυάζονται, η παραπάνω έκφραση επιστρέφει:
"'Sheet1'!1:1048576"
που πηγαίνει στη συνάρτηση INDIRECT ως όρισμα «ref_text». Το INDIRECT αξιολογεί αυτό το κείμενο και επιστρέφει μια τυπική αναφορά σε κάθε κελί στο Φύλλο1 . Αυτό πηγαίνει στη συνάρτηση COUNTIF ως εύρος. Τα κριτήρια παρέχονται ως απόλυτη αναφορά στο C4 (κλειδωμένο έτσι ο τύπος μπορεί να αντιγραφεί στη στήλη Γ).
Στη συνέχεια, το COUNTIF επιστρέφει έναν αριθμό όλων των κελιών με τιμή ίση με το "mary", 25 σε αυτήν την περίπτωση.
Σημείωση: Το COUNTIF δεν είναι πεζά.
Περιέχει έναντι ίσων
Εάν θέλετε να μετρήσετε όλα τα κελιά που περιέχουν την τιμή σε C4, αντί για όλα τα κελιά ίσα με C4, μπορείτε να προσθέσετε χαρακτήρες μπαλαντέρ στα κριτήρια όπως αυτό:
=COUNTIF(INDIRECT("'"&B7&"'!"&"1:1048576"),"*"&C4&"*")
Τώρα COUNTIF θα μετρήσει τα κελιά με το υπόστρωμα "John" οπουδήποτε στο κελί.
Εκτέλεση
Σε γενικές γραμμές, δεν είναι καλή πρακτική να καθορίσετε ένα εύρος που περιλαμβάνει όλα τα κελιά του φύλλου εργασίας. Κάτι τέτοιο μπορεί να προκαλέσει προβλήματα απόδοσης, καθώς το εύρος περιλαμβάνει εκατομμύρια και εκατομμύρια κελιά. Σε αυτό το παράδειγμα, το πρόβλημα επιδεινώνεται, καθώς ο τύπος χρησιμοποιεί τη συνάρτηση INDIRECT, η οποία είναι μια πτητική συνάρτηση. Οι πτητικές συναρτήσεις υπολογίζονται εκ νέου σε κάθε αλλαγή φύλλου εργασίας, έτσι ο αντίκτυπος στην απόδοση μπορεί να είναι τεράστιος.
Όταν είναι δυνατόν, περιορίστε τα εύρη σε λογικό μέγεθος. Για παράδειγμα, εάν γνωρίζετε ότι τα δεδομένα δεν θα εμφανίζονται μετά τη σειρά 1000, μπορείτε να πραγματοποιήσετε αναζήτηση μόνο στις πρώτες 1000 σειρές ως εξής:
=COUNTIF(INDIRECT("'"&B7&"'!"&"1:1000"),$C$4)