Πίνακας περιεχομένων
Γνωρίζατε ότι όταν συγχωνεύετε 2 φύλλα Google μπορείτε όχι μόνο να ενημερώσετε τις εγγραφές σε μια στήλη αλλά και να τραβήξετε ολόκληρες σχετικές στήλες και ακόμη και μη ταιριαστές γραμμές; Σήμερα θα σας δείξω πώς γίνεται με τις λειτουργίες VLOOKUP, INDEX/MATCH, QUERY και το πρόσθετο Merge Sheets.
Την τελευταία φορά που μίλησα για τη συγχώνευση 2 φύλλων Google, μοιράστηκα τρόπους για την αντιστοίχιση και την ενημέρωση δεδομένων. Αυτή τη φορά, θα εξακολουθήσουμε να ενημερώνουμε τα κελιά, αλλά θα τραβήξουμε και άλλες σχετικές στήλες και μη συμβατές γραμμές.
Εδώ είναι ο πίνακας αναζήτησης μου. Θα πάρω όλα τα απαραίτητα δεδομένα από αυτόν σήμερα:
Έχει μεγαλώσει αυτή τη φορά: έχει δύο επιπλέον στήλες με τα ονόματα των προμηθευτών και τις αξιολογήσεις τους. Θα ενημερώσω τη στήλη Stock με αυτές τις πληροφορίες σε έναν άλλο πίνακα και θα τραβήξω επίσης τους προμηθευτές. Λοιπόν, ίσως και τις αξιολογήσεις :)
Ως συνήθως, θα χρησιμοποιήσω μερικές λειτουργίες και ένα ειδικό πρόσθετο για τη δουλειά.
Συγχώνευση φύλλων Google & Προσθέστε σχετικές στήλες χρησιμοποιώντας το VLOOKUP
Θυμάστε το VLOOKUP του Google Sheets; Το χρησιμοποίησα στο προηγούμενο άρθρο μου για την αντιστοίχιση δεδομένων και την ενημέρωση ορισμένων κελιών.
Αν αυτή η λειτουργία εξακολουθεί να σας τρομάζει, ήρθε η ώρα να την αντιμετωπίσετε και να την μάθετε μια για πάντα, γιατί θα τη χρησιμοποιήσω και σήμερα :)
Συμβουλή: Αν ψάχνετε μια γρήγορη λύση για να εξοικονομήσετε χρόνο, πηγαίνετε αμέσως να συναντήσετε το Merge Sheets.
Ας κάνουμε μια γρήγορη ανακεφαλαίωση του συντακτικού τύπου:
=VLOOKUP(search_key, range, index, [is_sorted])- search_key είναι αυτό που ψάχνετε.
- εύρος είναι εκεί που ψάχνετε.
- δείκτης είναι ο αριθμός της στήλης από την οποία θα επιστρέψετε την τιμή.
- [is_sorted] είναι εντελώς προαιρετική και δηλώνει αν η στήλη κλειδί είναι ταξινομημένη.
Συμβουλή. Υπάρχει ένα ολόκληρο σεμινάριο αφιερωμένο στο Google Sheets VLOOKUP στο ιστολόγιό μας, μπορείτε να ρίξετε μια ματιά.
Όταν συγχώνευσα δύο φύλλα Google και απλώς ενημέρωσα τα δεδομένα στη στήλη Stock, χρησιμοποίησα αυτόν τον τύπο VLOOKUP:
=ArrayFormula(IFERROR(VLOOKUP($B$2:$B$10,Sheet1!$B$2:$D$10,2,FALSE),""))
Το IFERROR εξασφάλιζε ότι δεν υπήρχαν σφάλματα σε κελιά χωρίς αντιστοιχίες και το ARRAYFORMULA επεξεργαζόταν ολόκληρη τη στήλη ταυτόχρονα.
Οπότε, ποιες αλλαγές πρέπει να κάνω για να τραβήξω τους πωλητές ως νέα στήλη από τον πίνακα αναζήτησης;
Λοιπόν, αφού είναι η δείκτης που λέει στο VLOOKUP του Google Sheets από ποια στήλη θα πρέπει να πάρει τα δεδομένα, είναι ασφαλές να πούμε ότι είναι αυτή που χρειάζεται διόρθωση.
Ο απλούστερος τρόπος θα ήταν απλά να αντιγράψετε τον τύπο στη γειτονική στήλη και να αυξήσετε την δείκτης κατά ένα (αντικαταστήστε 2 με 3 ):
=ArrayFormula(IFERROR(VLOOKUP($B$2:$B$10,Sheet1!$B$2:$D$10,3,FALSE),""))
Ωστόσο, θα πρέπει να εισαγάγετε τον ίδιο τύπο με διαφορετικό δείκτη τόσες φορές όσες επιπλέον στήλες θέλετε να λάβετε.
Ευτυχώς, υπάρχει μια καλύτερη εναλλακτική λύση, η οποία περιλαμβάνει τη δημιουργία πινάκων. Οι πίνακες σας επιτρέπουν να συνδυάσετε όλες τις στήλες που θέλετε να τραβήξετε σε έναν δείκτη.
Όταν δημιουργείτε έναν πίνακα στο Google Sheets, παραθέτετε τις τιμές ή τις αναφορές σε κελιά/περιοχές μέσα σε αγκύλες, π.χ. ={1, 2, 3} ή ={1; 2; 3}
Η διάταξη αυτών των εγγραφών σε ένα φύλλο εξαρτάται από το διαχωριστικό:
- Αν χρησιμοποιήσετε άνω τελεία, οι αριθμοί θα καταλαμβάνουν διαφορετικές γραμμές μέσα σε μια στήλη:
Το τελευταίο είναι ακριβώς αυτό που πρέπει να κάνετε στο επιχείρημα δείκτη VLOOKUP του Google Sheets.
Δεδομένου ότι συγχωνεύω τα φύλλα Google, ενημερώνω τη 2η στήλη και τραβάω την 3η, πρέπει να δημιουργήσω έναν πίνακα με αυτές τις στήλες: {2, 3} :
=ArrayFormula(IFERROR(VLOOKUP($B$2:$B$10,Sheet1!$B$2:$D$10,{2,3},FALSE),""))
Με αυτόν τον τρόπο, ένας τύπος VLOOKUP του Google Sheets ταιριάζει ονόματα, ενημερώνει πληροφορίες αποθεμάτων και προσθέτει σχετικούς πωλητές σε μια κενή διπλανή στήλη.
Συγχώνευση φύλλων και προσθήκη στηλών με INDEX MATCH
Ακολουθεί η INDEX MATCH. Αυτές οι δύο λειτουργίες μαζί ανταγωνίζονται το VLOOKUP, καθώς παρακάμπτουν τους περιορισμούς του κατά τη συγχώνευση φύλλων Google.
Συμβουλή. Γνωρίστε το INDEX MATCH για το Google Sheets σε αυτό το σεμινάριο.
Επιτρέψτε μου να ξεκινήσω υπενθυμίζοντάς σας τον τύπο που απλώς συγχωνεύει μια στήλη με βάση τις αντιστοιχίες:
=IFERROR(INDEX(Sheet1!$C$1:$C$10,MATCH(B2,Sheet1!$B$1:$B$10,0)),"")
Σε αυτόν τον τύπο, Φύλλο1!$C$1:$C$10 είναι μια στήλη με τις τιμές που χρειάζεστε κάθε φορά που Φύλλο1!$B$1:$B$10 συναντά την ίδια τιμή όπως στο B2 στον τρέχοντα πίνακα.
Με αυτά τα σημεία κατά νου, είναι Φύλλο1!$C$1:$C$10 που πρέπει να αλλάξετε για να συγχωνεύσετε πίνακες και να ενημερώσετε κελιά αλλά και να προσθέσετε στήλες.
Σε αντίθεση με το VLOOKUP του Google Sheets, εδώ δεν υπάρχει τίποτα περίεργο. Απλά εισάγετε την περιοχή με όλες τις απαιτούμενες στήλες: αυτή που θα ενημερωθεί και τις άλλες που θα προστεθούν. Στην περίπτωσή μου, θα είναι Φύλλο1!$C$1:$D$10 :
=IFERROR(INDEX(Sheet1!$C$1:$D$10,MATCH(B2,Sheet1!$B$1:$B$10,0)),"")
Ή μπορώ να επεκτείνω το εύρος σε E10 για να προσθέσετε 2 στήλες, όχι μόνο μία:
=IFERROR(INDEX(Sheet1!$C$1:$E$10,MATCH(B2,Sheet1!$B$1:$B$10,0)),"")
Σημείωση. Αυτές οι επιπλέον εγγραφές εμπίπτουν πάντα στις γειτονικές στήλες. Εάν αυτές οι στήλες θα έχουν κάποιες άλλες τιμές, ο τύπος δεν θα τις αντικαταστήσει. Θα σας δώσει ένα σφάλμα #REF με αντίστοιχη υπόδειξη:
Μόλις καθαρίσετε αυτά τα κελιά ή προσθέσετε νέες στήλες στα αριστερά τους, θα εμφανιστούν τα αποτελέσματα του τύπου.
Συγχώνευση φύλλων Google, ενημέρωση κυττάρων & προσθέσετε σχετικές στήλες - όλα χρησιμοποιώντας QUERY
Η QUERY είναι μια από τις πιο ισχυρές λειτουργίες στα λογιστικά φύλλα της Google. Έτσι δεν αποτελεί έκπληξη ότι θα τη χρησιμοποιήσω σήμερα για να συγχωνεύσω μερικά φύλλα Google, να ενημερώσω τα κελιά και να προσθέσω επιπλέον στήλες ταυτόχρονα.
Αυτή η συνάρτηση διαφέρει από τις άλλες επειδή ένα από τα ορίσματά της χρησιμοποιεί μια γλώσσα εντολών.
Συμβουλή: Αν αναρωτιέστε πώς να χρησιμοποιήσετε τη λειτουργία QUERY του Google Sheets, επισκεφθείτε αυτή τη δημοσίευση στο ιστολόγιο.
Ας θυμηθούμε τον τύπο που ενημερώνει πρώτα τα κελιά:
=IFERROR(QUERY(Sheet1!$A$2:$C$10, "select C where&QUERY!$B2:$B$10&"""),"")
Εδώ το QUERY εξετάζει τον πίνακα με τα απαιτούμενα δεδομένα στο Sheet1, ταιριάζει με τα κελιά στη στήλη B με τον τρέχοντα νέο μου πίνακα, και συγχωνεύει αυτά τα φύλλα: τραβάει δεδομένα από τη στήλη C για κάθε αντιστοίχιση. IFERROR διατηρεί το αποτέλεσμα χωρίς σφάλματα.
Για να προσθέσετε επιπλέον στήλες για αυτές τις αντιστοιχίες, πρέπει να κάνετε 2 μικρές αλλαγές σε αυτόν τον τύπο:
- λίστα με όλες τις υποχρεωτικές στήλες για το επιλέξτε εντολή:
...επιλέξτε C,D,E...
- επεκτείνετε το εύρος για να δείτε ανάλογα:
...QUERY(Φύλλο1!$A$2:$E$10,...
Ορίστε ο πλήρης τύπος:
=IFERROR(QUERY(Φύλλο1!$A$2:$E$10, "select C,D,E where&Φύλλο4!$B2:$B$10&"""),"")
Ενημερώνει τη στήλη stock και μεταφέρει 2 επιπλέον στήλες από τον πίνακα lookup σε αυτόν τον κύριο πίνακα.
Πώς να προσθέσετε μη ταιριαστές γραμμές χρησιμοποιώντας FILTER + VLOOKUP
Φανταστείτε το εξής: συγχωνεύετε 2 φύλλα Google, ενημερώνετε τις παλιές πληροφορίες με τις νέες και λαμβάνετε νέες στήλες με επιπλέον σχετικές τιμές.
Τι άλλο θα μπορούσατε να κάνετε για να έχετε μια πλήρη εικόνα των αρχείων που έχετε στα χέρια σας;
Ίσως να προσθέσετε μη συμβατές σειρές στο τέλος του πίνακα; Με αυτόν τον τρόπο, θα έχετε όλες τις τιμές σε ένα μέρος: όχι μόνο τις αντιστοιχίες με τις ενημερωμένες σχετικές πληροφορίες, αλλά και τις μη συμβατές, ώστε να υπολογίζονται.
Με εξέπληξε ευχάριστα το γεγονός ότι το VLOOKUP του Google Sheets ξέρει πώς να το κάνει αυτό. Όταν χρησιμοποιείται μαζί με τη λειτουργία FILTER, συγχωνεύει τα φύλλα Google και προσθέτει και τις γραμμές που δεν ταιριάζουν.
Συμβουλή. Στο τέλος, θα δείξω επίσης πώς ένα πρόσθετο κάνει το ίδιο με ένα μόνο πλαίσιο ελέγχου.
Τα επιχειρήματα του Google Sheets FILTER είναι αρκετά σαφή:
=FILTER(range, condition1, [condition2, ...])- εύρος είναι τα δεδομένα που θέλετε να φιλτράρετε.
- condition1 είναι μια στήλη ή μια γραμμή με κριτήριο φιλτραρίσματος.
- κριτήρια2, κριτήρια3, κ.λπ. είναι εντελώς προαιρετικές. Χρησιμοποιήστε τις όταν πρέπει να χρησιμοποιήσετε πολλά κριτήρια.
Συμβουλή. Θα μάθετε περισσότερα για τη λειτουργία ΦΥΛΛΟ ΦΙΛΤΡΑ του Google Sheets σε αυτό το άρθρο ιστολογίου.
Πώς λοιπόν αυτές οι δύο λειτουργίες συνεργάζονται και συγχωνεύουν τα φύλλα Google; Λοιπόν, το FILTER επιστρέφει τα δεδομένα με βάση τα κριτήρια φιλτραρίσματος που δημιουργήθηκαν από το VLOOKUP.
Κοιτάξτε αυτόν τον τύπο:
=FILTER(Sheet1!$A$2:$E$10,ISERROR(VLOOKUP(Sheet1!$B$2:$B$10,$B$2:$C$10,2,FALSE)=1))
Σαρώνει 2 πίνακες της Google για αντιστοιχίες και τραβάει τις μη αντιστοιχούσες γραμμές από τον ένα πίνακα στον άλλο:
Επιτρέψτε μου να σας εξηγήσω πώς λειτουργεί:
- FILTER πηγαίνει στο φύλλο αναζήτησης (ένας πίνακας με όλα τα δεδομένα - Φύλλο1!$A$2:$E$10 ) και χρησιμοποιεί το VLOOKUP για να πάρει τις σωστές γραμμές.
- Το VLOOKUP παίρνει τα ονόματα των στοιχείων από τη στήλη B σε αυτό το φύλλο αναζήτησης και τα ταιριάζει με τα ονόματα από τον τρέχοντα πίνακα. Αν δεν υπάρχει αντιστοιχία, το VLOOKUP λέει ότι υπάρχει σφάλμα.
- Το ISERROR σημειώνει κάθε τέτοιο σφάλμα με 1, λέγοντας στο FILTER να μεταφέρει αυτή τη γραμμή σε άλλο φύλλο.
Ως αποτέλεσμα, ο τύπος αντλεί 3 πρόσθετες γραμμές για τα μούρα που δεν εμφανίζονται στον κύριο πίνακα μου.
Δεν είναι και τόσο περίπλοκο αν παίξετε λίγο με αυτή τη μέθοδο :)
Αλλά αν δεν θέλετε να ξοδέψετε το χρόνο σας σε αυτό, υπάρχει ένας καλύτερος και ταχύτερος τρόπος - χωρίς ούτε μία συνάρτηση και τύπο.
Τρόπος αντιστοίχισης & συγχώνευσης δεδομένων χωρίς τύπους - Merge Sheets add-on
Το πρόσθετο Merge Sheets περιλαμβάνει και τις 3 δυνατότητες συγχώνευσης φύλλων Google:
- ενημερώνει τα σχετικά κελιά με βάση τις αντιστοιχίες
- προσθέτει νέες στήλες για αυτές τις αντιστοιχίες
- εισάγει σειρές με μη συμβατές εγγραφές
Για να αποφευχθεί οποιαδήποτε σύγχυση, η διαδικασία χωρίζεται σε 5 απλά βήματα :
- Τα δύο πρώτα είναι εκεί που επιλέξτε τα τραπέζια σας ακόμη και αν βρίσκονται σε διαφορετικά λογιστικά φύλλα.
- Στο το 3d , θα πρέπει να επιλέξτε βασική(ες) στήλη(ες) που πρέπει να ελεγχθούν για αντιστοιχίες.
- Το 4ο βήμα σας επιτρέπει ορίστε τις στήλες προς ενημέρωση με νέες εγγραφές ή προσθέστε από το ένα φύλλο στο άλλο:
Χρειάστηκαν μερικά δευτερόλεπτα μέχρι να δω το αποτέλεσμα:
Εγκαταστήστε το Merge Sheets από το κατάστημα Google Sheets και θα δείτε ότι επεξεργάζεται μεγαλύτερους πίνακες εξίσου γρήγορα. Χάρη στο Merge Sheets, θα έχετε περισσότερο χρόνο για σημαντικά θέματα.
Θα σας αφήσω επίσης αυτό το 3λεπτο βίντεο επίδειξης για να σας βοηθήσω να αποφασίσετε :)
Υπολογιστικό φύλλο με παραδείγματα τύπων
Συγχώνευση φύλλων Google, προσθήκη σχετικών στηλών & μη ταιριαστές γραμμές - παραδείγματα τύπων (κάντε ένα αντίγραφο αυτού του φύλλου)