Όλες οι Ερωτήσεις στο PCstepsΚατηγορία: Προγράμματα / SoftwareΣυνάρτηση μαζικής αντικατάστασης περιεχομένου κελιών στο Excel
Ioannis Drossos ρώτησε πριν 12 μήνες

Καλησπέρα
Η ερώτησή μου έχει να κάνει με το Microsoft Excel. Έστω ότι υπάρχει ένας πίνακας με ονόματα (ο μαρκαρισμένος στην εικόνα). Θέλω να βάλω μια συνάρτηση (ή οτιδήποτε) που να αντικαταστήσει τα ονόματα με βάση τις στήλες Α και Β. Για παράδειγμα όπου βλέπει στον πίνακα Ιωάννου, να το κάνει Ιωάννου Ιωάννης κοκ, συγκρίνοντας το όνομα του "μεγάλου" πίνακα με τις δύο στήλες. 
Και επειδή ο κανονικός πίνακας που θέλω να δουλέψω είναι πολύ μεγάλος (1000+ ονόματα), είναι αδύνατο να το κάνω χειροκίνητα με εύρεση και αντικατάσταση για τόσα πολλά, παρά μόνο με τη βοήθεια είτε κάποιας συνάρτησης, είτε κάποιου κώδικα VB. 
Ευχαριστώ

1 Απαντήσεις

Χρήστος Δρακάκης απάντησε πριν 12 μήνες

Καλησπέρα και σε σένα,
Εγώ θα χρησιμοποιούσα έναν συνδυασμό από 2 functions, την MATCH(), για να ψάξει το όνομα στη στήλη Α, και την INDEX() για να πάρει το αποτέλεσμα από τη B. Για τη MATCH(), αν η 3η παράμετρος (match_type) είναι 0, τα ονόματα δε χρειάζεται να είναι sorted, κι αν το όνομα που ψάχνει δε βρεθεί ακριβώς θα επιστρέψει N/A. Το αποτέλεσμα της MATCH() το βάζεις 2η παράμετρο (row) στην INDEX() για να πάρεις το αποτέλεσμα από τη B. Και βέβαια, προσοχή στα ranges, τα arrays των ονομάτων και των αποτελεσμάτων (στήλες A και B) θέλουν absolute reference, δλδ δεν είναι σε σχέση με το look-up cell η το cell όπου βρίσκεται η φόρμουλα, οπότε πρέπει να τα δίνεις με $, έτσι ώστε να μην επηρεάζονται, πχ =MATCH(D1, $A$1:$A$1257). Κι αν θέλεις να προσθέσεις ονόματα δεν το γράφεις απλά από κάτω, κάνεις select  το cell A και το διπλανό B, δεξί click, Copy, μετά Insert Copies Cells, και στο τέλος βάζεις το καινούριο ζευγάρι στη θέση του κοπιαρισμένου. Αυτό θα ενημερώσει αυτόματα όλες τις φόρμουλες που κάνουν reference το range, πχ το $A$1:$A$1257 θα γίνει αυτόματα $A$1:$A$1258 παντού.