![]() |
Είναι το όνομα που έχω ορίσει για την περιοχή: TEST!$A$51:$A$65536 Για περισσότερες πληροφορίες δες τον παρακάτω σύνδεσμο: Καθορισμός και χρήση ονομάτων σε τύπους - Excel - Office.com Φιλικά Τάσος |
Καλημέρα σε όλους. Διαπιστώνω σήμερα, που μπορώ να είμαι στο διαδίκτυο, ότι υπήρξε ενα δημιουργικότατο ΣΚ, στην παρέα. Αισθάνομαι την ανάγκη να πω κάποια πράγματα, όχι μόνο λόγω της ελάχιστης συμμετοχής μου σε αυτό το θέμα, αλλά επειδή πράγματι μου δημιουργήθηκε η ανάγκη. Γιώργο, η λύση που έδωσες, ήταν τόσο απλή, τόσο εύχρηστη και παράλληλα τόσο εύστροφη και δημιουργική, που τι να πω...Συγχαρητήρια.! Φίλε Τάσο, τι να πώ...Τί λύσεις...Μαθαίνουμε συνέχεια και συνέχεια μαζί σου. Κυβερνάς το πλοίο που λέγεται,Forum του Ms-Office.gr και το οδηγείς με μαεστρία σε 'ολο και μακρύτερα ταξίδια με ασφάλεια και δεξιοτεχνία. Μας βάζεις(σε 'ολους όσους ενδιαφέρονται να συμμετάσχουν στο πλήρωμα) τον πήχυ, όλο και ψηλότερα και μας κάνεις να αισθανόμαστε τόσο σιγουριά που έχουμε αυτόν τον Καπετάνιο Εγώ τουλάχιστον, αισθάνομαι την ανάγκη να πω, πώς ευελπιστώ να καταφέρω κάποτε να μπορέσω να είμαι άξιο μέλος αυτού του πληρώματος. Και για τους δυό σας, ισχύουν οι ίδιες παρατηρήσεις και για το θέμα του Μανώλη με το "Άθροισμα Κελιών" Να έχετε όλοι, μία δημιουργική εβδομάδα. |
1 Συνημμένο(α) Καλησπέρα στην παρέα Λευτέρη, σ’ ευχαριστώ. Είσαι πολύ γενναιόδωρος. Με χαρά διαπιστώνω τη μεγάλη βελτίωσή σου τόσο στο excel όσο και στον τρόπου που παρουσιάζεις τις ιδέες σου. Παίρνοντας αφορμή από την καταπληκτική λύση του Τάσου, στον εντοπισμό των γραμμών που μια δεδομένη στήλη τους περιέχει τη συμβολοσειρά αναζήτησης, προσπάθησα να βρω μια ανάλογη λύση χρησιμοποιώντας κώδικα. Στο αρχείο που επισυνάπτω στο φύλλο «TEST» υπάρχει η λύση του Τάσου που υλοποιείται μόνο με συναρτήσεις του excel και στο φύλλο «VBA» μια λύση με κώδικα. Ο κώδικας είναι σύντομος και φαίνεται παρακάτω: Κώδικας: Private Sub Worksheet_Change(ByVal Target As Range)Όταν όμως έχουμε πολλές χιλιάδες γραμμών θα πρέπει να χρησιμοποιηθεί η ταχύτερη. Κατά τη γνώμη μου, για να πούμε με σιγουριά ποια μέθοδος είναι ταχύτερη, θα πρέπει να γίνουν χρονομετρήσεις. Ίσως βρεθεί κάποιο μέλος να δημιουργήσει εικονικές γραμμές και να πειραματιστεί. Φιλικά/Γιώργος |
1 Συνημμένο(α) Καλημέρα σε όλους! Δείτε στο αρχείο που επισυνάπτω μερικά παραδείγματα για αναζήτηση δεδομένων σε Excel. Στο αρχείο αυτό γίνεται χρήση διαφορετικών μεθόδων αναζήτησης σε περιεχόμενα κελιού. Όπως θα διαπιστώσετε και εσείς, υπάρχουν αισθητές έως σημαντικές διαφορές στην ταχύτητα των μεθόδων αυτών. Έτσι έχουμε:
Φιλικά Τάσος |
Καλησπέρα στην παρέα Φίλε μου Τάσο, συγχαρητήρια και για τις μεθόδους αναζήτησης που μας παρουσίασες και για το ωραίο περιβάλλον χρήσης. Από την ταχύτερη προς την πιο αργή θα τις έβαζα με την ακόλουθη σειρά. 1. Μέθοδος με χρήση συναρτήσεων. 2. Μέθοδος με χρήση του αντικειμένου AutoFilter(Excel-VBA). 3. Μέθοδος με χρήση του αντικειμένου WorksheetFunction (Excel-VBA) και Μέθοδος με χρήση του αντικειμένου Find-FindNext (Excel-VBA) 4. Μέθοδος με χρήση του αντικειμένου ADO (Active Data Objects-VBA) και Μέθοδος με χρήση του αντικειμένου Collection (VBA) στη VBA Οι δύο πρώτες είναι σημαντικά ταχύτερες από τις υπόλοιπες. Στον υπολογιστή μου σε μια δοκιμή με 300.000 γραμμές και οι τελευταίες λειτουργούσαν ικανοποιητικά, εκτός από την μέθοδο που χρησιμοποιεί αντικείμενα ADO, που δεν εμφάνιζε όλα τα αποτελέσματα (μάλλον το αρχικό recordset δεν είχε όλα τα δεδομένα). Προσωπικά προτιμώ τη μέθοδο με τη χρήση αυτόματου φίλτρου, γιατί: 1. Είναι γρήγορη, σχεδόν όσο και η πρώτη. 2. Υλοποιείται εύκολα. 3.Δίνει στη γραμμή κατάστασης πληροφορίες για το αριθμό των γραμμών που βρέθηκαν και το συνολικό και μας επιτρέπει στο φιλτραρισμένο σύνολο να εφαρμόσουμε νέο φίλτρο. Φιλικά/Γιώργος |
Καλησπέρα Γιώργο! Σ ευχαριστώ που έκανες τις μετρήσεις αυτές. Έτσι έχουμε μια πιο πλήρη εικόνα. Οι δικές μου δοκιμές έγιναν σε περιβάλλον Excel 2003. Αυτός είναι και ο λόγος που υπάρχουν διαφορές στην κατάταξη των μετρήσεων μας. Να είσαι καλά! Τα λέμε Τάσος |
Παράθεση:
|
| Η ώρα είναι 15:44. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.