Αντιγραφή τύπων χωρίς μετατόπιση συνδέσμων

Πρόβλημα

Ας υποθέσουμε ότι έχουμε έναν απλό πίνακα όπως αυτός, στον οποίο τα ποσά υπολογίζονται για κάθε μήνα σε δύο πόλεις και στη συνέχεια το σύνολο μετατρέπεται σε ευρώ με την ισοτιμία από το κίτρινο κελί J2.

Αντιγραφή τύπων χωρίς μετατόπιση συνδέσμων

Το πρόβλημα είναι ότι εάν αντιγράψετε το εύρος D2:D8 με τύπους κάπου αλλού στο φύλλο, τότε το Microsoft Excel θα διορθώσει αυτόματα τους συνδέσμους σε αυτούς τους τύπους, θα τους μετακινήσει σε ένα νέο μέρος και θα σταματήσει να μετράει:

Αντιγραφή τύπων χωρίς μετατόπιση συνδέσμων

Εργασία: αντιγράψτε το εύρος με τύπους έτσι ώστε οι τύποι να μην αλλάζουν και να παραμένουν ίδιοι, διατηρώντας τα αποτελέσματα υπολογισμού.

Μέθοδος 1. Απόλυτοι σύνδεσμοι

Όπως μπορείτε να δείτε από την προηγούμενη εικόνα, το Excel μετατοπίζει μόνο σχετικούς συνδέσμους. Η απόλυτη (με σύμβολα $) αναφορά στο κίτρινο κελί $J$2 δεν έχει μετακινηθεί. Επομένως, για ακριβή αντιγραφή τύπων, μπορείτε να μετατρέψετε προσωρινά όλες τις αναφορές σε όλους τους τύπους σε απόλυτες. Θα χρειαστεί να επιλέξετε κάθε τύπο στη γραμμή τύπων και να πατήσετε το πλήκτρο F4:
Αντιγραφή τύπων χωρίς μετατόπιση συνδέσμων
Με μεγάλο αριθμό κυττάρων, αυτή η επιλογή, φυσικά, εξαφανίζεται - είναι πολύ επίπονη.

Μέθοδος 2: Απενεργοποιήστε προσωρινά τους τύπους

Για να αποτρέψετε την αλλαγή τύπων κατά την αντιγραφή, πρέπει να βεβαιωθείτε (προσωρινά) ότι το Excel σταματά να τους αντιμετωπίζει ως τύπους. Αυτό μπορεί να γίνει αντικαθιστώντας το σύμβολο ίσου (=) με οποιονδήποτε άλλο χαρακτήρα που δεν βρίσκεται κανονικά στους τύπους, όπως ένα σύμβολο κατακερματισμού (#) ή ένα ζεύγος συμπλεκτών (&&) για το χρόνο αντιγραφής. Για αυτό:

  1. Επιλέξτε το εύρος με τύπους (στο παράδειγμά μας D2:D8)
  2. Πατήστε Ctrl + H στο πληκτρολόγιο ή σε μια καρτέλα Αρχική σελίδα – Εύρεση και επιλογή – Αντικατάσταση (Αρχική — Εύρεση&Επιλογή — Αντικατάσταση)

    Αντιγραφή τύπων χωρίς μετατόπιση συνδέσμων

  3. Στο παράθυρο διαλόγου που εμφανίζεται, πληκτρολογήστε τι ψάχνουμε και με τι αντικαθιστούμε και μέσα παράμετροι (Επιλογές) μην ξεχάσετε να διευκρινίσετε Εύρος αναζήτησης – Τύποι. Πατάμε Αντικατάσταση όλων (Αντικατάσταση όλων).
  4. Αντιγράψτε το εύρος που προκύπτει με τους απενεργοποιημένους τύπους στη σωστή θέση:

    Αντιγραφή τύπων χωρίς μετατόπιση συνδέσμων

  5. Αντικαταστήστε # on = πίσω χρησιμοποιώντας το ίδιο παράθυρο, επιστρέφοντας τη λειτουργικότητα στους τύπους.

Μέθοδος 3: Αντιγραφή μέσω Σημειωματάριου

Αυτή η μέθοδος είναι πολύ πιο γρήγορη και ευκολότερη.

Πατήστε τη συντόμευση πληκτρολογίου Ctrl+Ё ή κουμπί Εμφάνιση τύπων αυτί τύπος (Τύποι — Εμφάνιση τύπων), για να ενεργοποιήσετε τη λειτουργία ελέγχου τύπων – αντί για τα αποτελέσματα, τα κελιά θα εμφανίζουν τους τύπους με τους οποίους υπολογίζονται:

Αντιγραφή τύπων χωρίς μετατόπιση συνδέσμων

Αντιγράψτε το εύρος μας D2:D8 και επικολλήστε το στο τυπικό σημειωματάριο:

Αντιγραφή τύπων χωρίς μετατόπιση συνδέσμων

Τώρα επιλέξτε ό,τι έχει επικολληθεί (Ctrl + A), αντιγράψτε το ξανά στο πρόχειρο (Ctrl + C) και επικολλήστε το στο φύλλο στη θέση που χρειάζεστε:

Αντιγραφή τύπων χωρίς μετατόπιση συνδέσμων

Απομένει μόνο να πατήσετε το κουμπί Εμφάνιση τύπων (Εμφάνιση τύπων)για να επαναφέρετε το Excel σε κανονική λειτουργία.

Σημείωση: αυτή η μέθοδος μερικές φορές αποτυγχάνει σε σύνθετους πίνακες με συγχωνευμένα κελιά, αλλά στη συντριπτική πλειονότητα των περιπτώσεων λειτουργεί καλά.

Μέθοδος 4. Μακροεντολή

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

Sub Copy_Formulas() Dim copyRange As Range, pasteRange As Range On Error Resume Next Set copyRange = Application.InputBox("Επιλογή κελιών με τύπους προς αντιγραφή.", _ "Ακριβής αντιγραφή τύπων", Προεπιλογή:=Επιλογή.Διεύθυνση, Τύπος := 8) Εάν το copyRange δεν είναι τίποτα, τότε Exit Sub Set pasteRange = Application.InputBox("Τώρα επιλέξτε το εύρος επικόλλησης." & vbCrLf & vbCrLf & _ "Το εύρος πρέπει να είναι ίσο σε μέγεθος με το αρχικό εύρος κελιών " & vbCrLf & _ " για αντιγραφή." , "Ακριβής αντιγραφή τύπων", _ Προεπιλογή:=Επιλογή.Διεύθυνση, Τύπος:=8) Αν pasteRange.Cells.Count <> copyRange.Cells.Count Στη συνέχεια MsgBox "Το εύρος αντιγραφής και επικόλλησης ποικίλλει σε μέγεθος!", vbExclamation, "Copy error " Exit Sub End If If pasteRange is Nothing then Exit Sub Else pasteRange.Formula = copyRange.Formula End If End Sub

Μπορείτε να χρησιμοποιήσετε το κουμπί για να εκτελέσετε τη μακροεντολή. Μακροεντολές αυτί προγραμματιστή (Προγραμματιστής — Μακροεντολές) ή συντόμευση πληκτρολογίου Alt + F8. Μετά την εκτέλεση της μακροεντολής, θα σας ζητήσει να επιλέξετε την περιοχή με τους αρχικούς τύπους και την περιοχή εισαγωγής και θα αντιγράψει αυτόματα τους τύπους:

Αντιγραφή τύπων χωρίς μετατόπιση συνδέσμων

  • Βολική προβολή τύπων και αποτελεσμάτων ταυτόχρονα
  • Γιατί απαιτείται στυλ αναφοράς R1C1 σε τύπους Excel
  • Πώς να βρείτε γρήγορα όλα τα κελιά με τύπους
  • Εργαλείο για την αντιγραφή ακριβών τύπων από το πρόσθετο PLEX

 

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