Εμφάνιση ενός μόνο μηνύματος
  #7  
Παλιά 05-09-11, 18:22
Το avatar του χρήστη Tasos
Tasos Ο χρήστης Tasos δεν είναι συνδεδεμένος
Διαχειριστής
Όνομα: Τάσος Φιλοξενιδης
Έκδοση λογισμικού Office: Ms-Office 365
Γλώσσα λογισμικού Office: Ελληνική, Αγγλική, Γερμανική
 
Εγγραφή: 21-10-2009
Μηνύματα: 2.035
Προεπιλογή

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

Στην ερώτηση σου λοιπόν.

Έστω ότι έχεις 3 φύλλα από τα οποία θέλεις να αναζητείς στις 3 πρώτες στήλες τους (A:C).

Τα κριτήρια αναζήτησης βρίσκονται στη στήλη A του φύλλου Search.

Στη στήλη Β θέλεις να επιστρέψεις τη δεύτερη στήλη από το φύλλο στο οποίο θα βρεθεί το κριτήριο.

Αν τα φύλλα προς αναζήτηση είναι αριθμημένα ( Φύλλο1, Φύλλο2, Φύλλο3 κτλ.) τότε μπορείς να χρησιμοποιήσεις τον τύπο στο B2:

Κώδικας:
=VLOOKUP($A2;INDIRECT("'Φύλλο"&INDEX({1;2;3;4};
MATCH(1;--(COUNTIF(INDIRECT("'Φύλλο"&{1;2;3;4}&"'!A:A");A2)>0);0))&"'!A:C");2;0)
όπου 2 = η δεύτερη στήλη της περιοχής A:C


Αν τα ονόματα των φύλλων δεν είναι αριθμημένα τότε έχουμε:
Κώδικας:
=VLOOKUP(A2;INDIRECT("'"&INDEX({"Φύλλο ένα";"Φύλλο δύο";"Φύλλο τρία"};
MATCH(1;--(COUNTIF(INDIRECT("'"&{"Φύλλο ένα";"Φύλλο δύο";"Φύλλο τρία"}&"'!A:A");A2)>0);0))&"'!A:C");2;0)
Σε περαιτέρω εξέλιξη, μπορείς να δημιουργήσεις έναν τύπο που θα σου χτίζει αυτό: {"Φύλλο ένα";"Φύλλο δύο";"Φύλλο τρία"}

Για παράδειγμα, μπορείς να βάλεις τα ονόματα των φύλλων σου σε ένα φύλλο ασ πουμε ξεκινώντας από το κελί A3

Ό τύπος που θα κτίζει την παραπάνω συμβολοσειρά είναι:
Κώδικας:
="{"""&SUBSTITUTE(A3&"""; """&A4&"""; """&A5&"""; """&A6&"""; """&A7&"""; 
"""&A8&"""; """&A9&"""; """&A10&"""; """&A11&"""; """&A12&"""; """&A13&"""; """&A14&"""; 
"""&A15&"""; """&A16&"""; """&A17&"""; """&A18&"""; """&A19&"""; """&A20&"""; 
"""&A21&"""; """&A22&"""; """&A23&"""; """&A24&"""; """&A25&"""; """&A26&"""; 
"""&A27&"""; """&A28&"""; """&A29;"; ";";")&"""}"
Προσοχή στα κενά κατά την επικόλληση!!

Μπορείς να δώσεις ένα όνομα στο κελί που περιέχει τον τύπο αυτό πχ. WksArray
και να διαμορφώσεις τον τύπο σου έτσι:

Κώδικας:
=VLOOKUP(A2;INDIRECT("'"&INDEX(WksArray;MATCH(1;--(COUNTIF(INDIRECT("'"&WksArray&"'!A:A");A2)>0);0))&"'!A:C");2;0)
Καλό βράδυ:

Τάσος
__________________
Ms-Office Development Team
Ανάπτυξη επαγγελματικών εφαρμογών

Τελευταία επεξεργασία από το χρήστη Tasos : 05-09-11 στις 18:40.
Απάντηση με παράθεση