Έξυπνη αυτόματη συμπλήρωση κάτω και δεξιά

Περιεχόμενα

Μέχρι τώρα, μερικές φορές με ένα χαμόγελο θυμάμαι μια από τις πρώτες μου εταιρικές εκπαιδεύσεις πριν από 10 χρόνια.

Imagine: the open space office of the representative office of an international FMCG company, huge as a football field. Chic design, expensive office equipment, dress code, expats cooing in the corners – that’s all 🙂 In one of the meeting rooms, I start a two-day advanced training on the then current version of Excel 2003 for 15 key employees of the economic department, along with their leader. We get acquainted, I ask them about business tasks, problems, I ask them to show several typical work files. They show the kilometer length of unloading from SAP, the sheets of reports that they make on this, etc. Well, it’s a familiar thing – I mentally figure out topics and timing, adjust to the audience. Out of the corner of my eye, I notice how one of the participants, demonstrating a piece of his report, patiently pulls the cell with the formula down by the black cross in the lower right corner for several thousand lines, then skips the end of the table on the fly, pulls it back, etc. Unable to stand it, I interrupt him curling the mouse around the screen and show a double-click on the black cross, explaining about auto-completion down to the stop. 

Ξαφνικά συνειδητοποιώ ότι το κοινό είναι ύποπτα ήσυχο και όλοι με κοιτάζουν περίεργα. Κοιτάζω ανεπαίσθητα γύρω μου όπου μπορώ – όλα είναι εντάξει, τα χέρια και τα πόδια μου είναι στη θέση τους, η μύγα μου είναι κουμπωμένη. Επαναφέρω νοερά τις τελευταίες μου λέξεις αναζητώντας κάποια τρομερή ρήτρα – φαίνεται ότι δεν υπήρχε τίποτα εγκληματικό. Μετά από αυτό, ο επικεφαλής της ομάδας σηκώνεται σιωπηλά, μου σφίγγει το χέρι και λέει με πέτρινο πρόσωπο: «Ευχαριστώ, Νικολάι. Αυτή η εκπαίδευση μπορεί να ολοκληρωθεί.

Λοιπόν, με λίγα λόγια, αποδείχθηκε ότι κανένας από αυτούς δεν είχε ιδέα για το διπλό κλικ σε έναν μαύρο σταυρό και την αυτόματη συμπλήρωση. Κατά κάποιο τρόπο συνέβη ιστορικά να μην υπάρχει κανείς να τους δείξει κάτι τόσο απλό αλλά απαραίτητο. Ολόκληρο το τμήμα τράβηξε φόρμουλες χειροκίνητα για χιλιάδες γραμμές, καημένοι. Και εδώ είμαι. Σκηνή λαδιού. Ο επικεφαλής του τμήματος στη συνέχεια ζήτησε πολύ να μην αποκαλυφθεί το όνομα της εταιρείας τους σε κανέναν 🙂

Αρκετές φορές αργότερα υπήρξαν παρόμοιες καταστάσεις, αλλά μόνο με μεμονωμένους ακροατές – οι περισσότεροι τώρα, φυσικά, γνωρίζουν αυτήν τη λειτουργία. 

Έξυπνη αυτόματη συμπλήρωση κάτω και δεξιάΤο ερώτημα είναι διαφορετικό. Μετά την πρώτη χαρά της απόκτησης ενός τόσο υπέροχου χαρακτηριστικού, οι περισσότεροι χρήστες καταλαβαίνουν ότι η αυτόματη αντιγραφή τύπων κάνοντας διπλό κλικ στον μαύρο σταυρό (δείκτης αυτόματης συμπλήρωσης) έχει όλες τις θετικές και αρνητικές πλευρές:

  • Η αντιγραφή δεν συμβαίνει πάντα στο τέλος του πίνακα. Εάν ο πίνακας δεν είναι μονολιθικός, δηλαδή υπάρχουν κενά κελιά σε διπλανές στήλες, τότε δεν είναι γεγονός ότι η αυτόματη συμπλήρωση θα λειτουργεί μέχρι το τέλος του πίνακα. Πιθανότατα, η διαδικασία θα σταματήσει στο πλησιέστερο κενό κελί πριν φτάσει στο τέλος. Εάν υπάρχουν κελιά που καταλαμβάνονται από κάτι κάτω από τη στήλη, τότε η αυτόματη συμπλήρωση θα σταματήσει ακριβώς σε αυτά.
  • Κατά την αντιγραφή ο σχεδιασμός των κυττάρων χαλάει, γιατί Από προεπιλογή, δεν αντιγράφεται μόνο ο τύπος, αλλά και η μορφή. Για διόρθωση, κάντε κλικ στο κουμπί επιλογών αντιγραφής και επιλέξτε Μόνο αξίες (Συμπλήρωση χωρίς μορφή).
  • Δεν υπάρχει γρήγορος τρόπος να τεντώσετε επίσης εύκολα τη φόρμουλα όχι προς τα κάτω αλλά προς τα δεξιάεκτός από το να τραβάει με το χέρι. Το διπλό κλικ στον μαύρο σταυρό είναι ακριβώς κάτω.

Ας προσπαθήσουμε να διορθώσουμε αυτές τις ελλείψεις με μια απλή μακροεντολή.

Πατήστε τη συντόμευση πληκτρολογίου αριστερά Alt + F11 ή κουμπί Visual Basic αυτί προγραμματιστή (Προγραμματιστής). Εισαγάγετε νέα κενή μονάδα μέσω του μενού Εισαγωγή – Ενότητα και αντιγράψτε το κείμενο αυτών των μακροεντολών εκεί:

Sub SmartFillDown() Dim rng As Range, n As Long Set rng = ActiveCell.Offset(0, -1).CurrentRegion Εάν rng.Cells.Count > 1 Στη συνέχεια n = rng.Cells(1).Σειρά + rng.Σειρές. Count - ActiveCell.Row ActiveCell.AutoFill Destination:=ActiveCell.Resize(n, 1), Type:=xlFillValues ​​End If End Sub Sub SmartFillRight() Dim rng ως εύρος, n As Long Set rng = ActiveCell.Offset(-1, 0).ΤρέχουσαΠεριοχή Εάν rng.Cells.Count > 1 Τότε n = rng.Cells(1).Column + rng.Columns.Count - ActiveCell.Column ActiveCell.AutoFill Προορισμός:=ActiveCell.Resize(1, n), Τύπος: =xlFillValues ​​End If End Sub  

Τέτοιες μακροεντολές:

  • μπορεί να γεμίσει όχι μόνο προς τα κάτω (SmartFillDown), αλλά και προς τα δεξιά (SmartFillRight)
  • μην χαλάσετε τη μορφή των κελιών κάτω ή δεξιά – αντιγράφεται μόνο ο τύπος (τιμή).
  • Τα άδεια παρακείμενα κελιά αγνοούνται και η αντιγραφή γίνεται ακριβώς στο τέλος του πίνακα και όχι στο πλησιέστερο κενό στα δεδομένα ή στο πρώτο κατειλημμένο κελί.

Για μεγαλύτερη ευκολία, μπορείτε να αντιστοιχίσετε συντομεύσεις πληκτρολογίου σε αυτές τις μακροεντολές χρησιμοποιώντας το κουμπί Μακροεντολές – Επιλογές (Μακροεντολές — Επιλογές) ακριβώς εκεί στην καρτέλα. προγραμματιστή (Προγραμματιστής). Τώρα θα αρκεί να εισαγάγετε τον επιθυμητό τύπο ή τιμή στο πρώτο κελί της στήλης και να πατήσετε τον καθορισμένο συνδυασμό πλήκτρων ώστε η μακροεντολή να γεμίσει αυτόματα ολόκληρη τη στήλη (ή τη σειρά):

Ομορφιά.

PS Μέρος του προβλήματος με την αντιγραφή τύπων στο τέλος του πίνακα επιλύθηκε στο Excel 2007 με την εμφάνιση των «έξυπνων πινάκων». Είναι αλήθεια ότι δεν είναι πάντα και όχι παντού κατάλληλα. Και στα δεξιά, το Excel δεν έμαθε ποτέ να αντιγράφει από μόνο του.

  • Τι είναι οι μακροεντολές, πώς να τις χρησιμοποιήσετε, πού να λάβετε τον κώδικα της Visual Basic και πού να τον επικολλήσετε.
  • Έξυπνοι πίνακες στο Excel 2007-2013
  • Αντιγραφή τύπων χωρίς μετατόπιση συνδέσμων

Αφήστε μια απάντηση