Πώς να χρησιμοποιήσετε τη λειτουργία QUERY του Google Sheets - τυπικές ρήτρες και ένα εναλλακτικό εργαλείο

  • Μοιραστείτε Αυτό
Michael Brown

Αν παρακολουθείτε αυτό το ιστολόγιο εδώ και καιρό, ίσως θυμάστε τη λειτουργία QUERY για τα φύλλα Google. Την είχα αναφέρει ως πιθανή λύση για μερικές περιπτώσεις. Αλλά αυτές απέχουν πολύ από το να αποκαλύψουν όλες τις δυνατότητές της. Σήμερα, είναι καιρός να γνωρίσουμε σωστά αυτόν τον υπερήρωα των λογιστικών φύλλων. Και μαντέψτε - ένα εξίσου αξιόλογο εργαλείο θα είναι επίσης εκεί :)

Γνωρίζατε ότι η συνάρτηση QUERY του Google Sheets θεωρείται η πιο ισχυρή στα λογιστικά φύλλα; Η ιδιόμορφη σύνταξή της ευνοεί δεκάδες διαφορετικές λειτουργίες. Ας προσπαθήσουμε να αναλύσουμε τα μέρη της για να τις μάθουμε μια για πάντα, έτσι δεν είναι;

    Σύνταξη της συνάρτησης Google Sheets QUERY

    Με την πρώτη ματιά, το Google Sheets QUERY είναι απλώς μια άλλη συνάρτηση με 1 προαιρετικό και 2 απαιτούμενα ορίσματα:

    =QUERY(δεδομένα, ερώτημα, [επικεφαλίδες])
    • δεδομένα είναι το εύρος που πρέπει να επεξεργαστεί. Απαιτείται. Όλα είναι ξεκάθαρα εδώ.

      Σημείωση. Μόνο μια μικρή υπενθύμιση εδώ που καθιερώθηκε από την Google: κάθε στήλη θα πρέπει να περιέχει έναν τύπο δεδομένων: κειμενικά, ή αριθμητικά, ή boolean. Αν υπάρχουν διαφορετικοί τύποι, η QUERY θα λειτουργήσει με αυτόν που εμφανίζεται περισσότερο. Οι άλλοι τύποι θα θεωρηθούν ως κενά κελιά. Παράξενο, αλλά να το έχετε υπόψη σας.

    • ερώτημα είναι ο τρόπος επεξεργασίας του δεδομένα . Απαιτείται. Εδώ αρχίζει η διασκέδαση. Η λειτουργία QUERY του Google Sheets χρησιμοποιεί μια ειδική γλώσσα για αυτό το όρισμα: Γλώσσα ερωτημάτων Google Visualization API Είναι γραμμένο με τρόπο παρόμοιο με την SQL. Βασικά, είναι ένα σύνολο ειδικών ρητρών (εντολών) που χρησιμοποιούνται για να λένε στη συνάρτηση τι να κάνει: select, group by, limit, κ.λπ.

      Σημείωση. Ολόκληρο το όρισμα πρέπει να περικλείεται σε διπλά εισαγωγικά. Οι τιμές, με τη σειρά τους, πρέπει να περικλείονται σε εισαγωγικά.

    • επικεφαλίδες είναι προαιρετικό για όταν χρειάζεται να υποδείξετε τον αριθμό των γραμμών κεφαλίδας στα δεδομένα σας. Παραλείψτε το επιχείρημα (όπως κάνω παρακάτω), και το Google Sheets QUERY θα το υποθέσει με βάση τα περιεχόμενα του πίνακα σας.

    Τώρα ας εμβαθύνουμε στις ρήτρες και σε ό,τι κάνουν.

    Ρήτρες που χρησιμοποιούνται σε τύπους QUERY του Google Sheets

    Η γλώσσα ερωτημάτων αποτελείται από 10 ρήτρες. Μπορεί να σας τρομάξουν με την πρώτη ματιά, ειδικά αν δεν είστε εξοικειωμένοι με την SQL. Αλλά σας υπόσχομαι ότι, μόλις τις γνωρίσετε, θα έχετε στη διάθεσή σας ένα πανίσχυρο όπλο των λογιστικών φύλλων.

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

    Ναι, είμαι ένας από αυτούς τους περίεργους που πιστεύουν ότι ο Πλούτωνας θα έπρεπε να είναι πλανήτης :)

    Συμβουλή. Πολλές ρήτρες μπορούν να χρησιμοποιηθούν μέσα σε μία συνάρτηση QUERY του Google Sheets. Αν τις ενθυλακώσετε όλες, φροντίστε να ακολουθήσετε τη σειρά εμφάνισής τους σε αυτό το άρθρο.

    Επιλογή (όλες ή συγκεκριμένες στήλες)

    Η πρώτη ρήτρα - επιλέξτε - χρησιμοποιείται για να πει ποιες στήλες πρέπει να επιστρέψετε με το Google Sheets QUERY από άλλο φύλλο ή πίνακα.

    Παράδειγμα 1. Επιλογή όλων των στηλών

    Για να λάβετε κάθε στήλη, χρησιμοποιήστε επιλέξτε με αστερίσκο - select *

    =QUERY(Papers!A1:G11, "select *")

    Συμβουλή. Αν παραλείψετε το επιλέξτε παράμετρος, Google Sheets QUERY θα επιστρέψει όλες τις στήλες από προεπιλογή:

    =QUERY(έγγραφα!A1:G11)

    Παράδειγμα 2. Επιλογή συγκεκριμένων στηλών

    Για να τραβήξετε μόνο ορισμένες στήλες, απαριθμήστε τις μετά το επιλέξτε ρήτρα:

    =QUERY(Papers!A1:G11, "select A,B,C")

    Συμβουλή. Οι στήλες που σας ενδιαφέρουν θα αντιγραφούν με την ίδια σειρά που τις αναφέρετε στον τύπο:

    =QUERY(Papers!A1:G11, "select C,B,A")

    Google Sheets QUERY - Όπου ρήτρα

    Google Sheets QUERY όπου χρησιμοποιείται για να θέσει τις συνθήκες προς τα δεδομένα που θέλετε να λάβετε. Με άλλα λόγια, λειτουργεί ως φίλτρο.

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

    Συμβουλή. Πού μπορεί να λειτουργήσει χωρίς το επιλέξτε ρήτρα.

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

    • απλοί τελεστές σύγκρισης ( για αριθμητικές τιμές ): =, ,>,>=, <, <=
    • σύνθετοι τελεστές σύγκρισης ( για χορδές ): περιέχει, αρχίζει με, τελειώνει με, ταιριάζει, != (δεν ταιριάζει / δεν ισούται με), όπως .
    • λογικούς τελεστές σε να συνδυάζει διάφορες συνθήκες : και, ή, όχι .
    • χειριστές για κενό / όχι άδειο : είναι null, δεν είναι null .

    Συμβουλή. Αν είστε αναστατωμένοι ή ανησυχείτε για το γεγονός ότι πρέπει να ασχοληθείτε ξανά με έναν τόσο μεγάλο αριθμό τελεστών, σας καταλαβαίνουμε. Το Multiple Vlookup Matches μας θα βρει όλες τις αντιστοιχίες και θα δημιουργήσει τύπους QUERY στο Google Sheets για εσάς, αν είναι απαραίτητο.

    Ας δούμε πώς συμπεριφέρονται αυτοί οι τελεστές σε τύπους.

    Παράδειγμα 1. Πού με αριθμούς

    Θα προσθέσω όπου στο Google Sheets QUERY μου από τα παραπάνω για να πάρει τις πληροφορίες σχετικά με εκείνους τους πλανήτες που έχουν περισσότερα από 10 φεγγάρια:

    =QUERY(Papers!A1:G11, "select A,B,C,F where F>=10")

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

    =QUERY(Papers!A1:G11, "select A,B,C where F>=10")

    Παράδειγμα 2. Πού με συμβολοσειρές κειμένου

    • Θέλω να δω όλες τις γραμμές όπου ο βαθμός είναι είτε F ή F+ . θα χρησιμοποιήσω το περιέχει χειριστή για αυτό:

      =QUERY(Papers!A1:G11, "select A,B,C,G where G contains 'F'")

      Σημείωση. Μην ξεχάσετε να περιβάλλετε το κείμενό σας με εισαγωγικά.

    • Για να λάβετε όλες τις γραμμές με F μόνο, απλά αντικαταστήστε περιέχει με ένα σύμβολο ισότητας (=):

      =QUERY(Papers!A1:G11, "select A,B,C,G where G="F"")

    • Για να ελέγξετε τα γραπτά που δεν έχουν παραδοθεί ακόμη (όπου λείπει ο βαθμός), ελέγξτε τη στήλη G για κενά:

      =QUERY(Papers!A1:G11, "select A,B,C,G where G is null'")

    Παράδειγμα 3. Πού με ημερομηνίες

    Μαντέψτε τι: Google Sheets QUERY έχει καταφέρει ακόμη και να δαμάσει τις ημερομηνίες!

    Δεδομένου ότι τα λογιστικά φύλλα αποθηκεύουν ημερομηνίες ως αύξοντες αριθμούς, συνήθως, πρέπει να καταφύγετε στη βοήθεια ειδικών συναρτήσεων όπως DATE ή DATEVALUE, YEAR, MONTH, TIME, κ.λπ.

    Αλλά το QUERY έχει βρει τον τρόπο του γύρω από τις ημερομηνίες. Για να τις εισάγετε σωστά, απλά πληκτρολογήστε τη λέξη ημερομηνία και στη συνέχεια προσθέστε την ίδια την ημερομηνία σε μορφή yyyy-mm-dd: ημερομηνία '2020-01-01'

    Εδώ είναι ο τύπος μου για να βρω όλες τις γραμμές με ημερομηνία ομιλίας πριν από την 1η Ιανουαρίου 2020:

    =QUERY(Papers!A1:G11, "select A,B,C where B

    Παράδειγμα 4. Συνδυασμός διαφόρων συνθηκών

    Για να χρησιμοποιήσετε μια συγκεκριμένη χρονική περίοδο ως κριτήριο, θα πρέπει να συνδυάσετε δύο συνθήκες.

    Ας προσπαθήσουμε να ανακτήσουμε τις εργασίες που παραδόθηκαν το φθινόπωρο του 2019. Το πρώτο κριτήριο θα πρέπει να είναι μια ημερομηνία την ή μετά την 1η Σεπτεμβρίου 2019 , το δεύτερο - έως τις 30 Νοεμβρίου 2019 :

    =QUERY(Papers!A1:G11, "select A,B,C where B>=date '2019-09-01' and B<=date '2019-11-30'")

    Ή, μπορώ να επιλέξω έγγραφα με βάση αυτές τις παραμέτρους:

    • πριν από τις 31 Δεκεμβρίου 2019 ( B )
    • έχουν είτε Α είτε Α+ ως βαθμό ( Το G περιέχει 'A' )
    • ή B/B+ ( Το G περιέχει 'B' )

    =QUERY(Papers!A1:G11, "select A,B,C,G where B

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

    Google Sheets QUERY - Group By

    Google Sheets QUERY ομάδα από Η εντολή χρησιμοποιείται για τη συνένωση των γραμμών. Ωστόσο, θα πρέπει να χρησιμοποιήσετε κάποιες συναρτήσεις συνάθροισης για να τις συνοψίσετε.

    Σημείωση. Ομαδοποίηση κατά πρέπει πάντα να ακολουθεί το επιλέξτε ρήτρα.

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

    Ας υποθέσουμε ότι όλα τα γραπτά πρόκειται να εκπονηθούν από 3 μόνο μαθητές. Μπορώ να βρω τον υψηλότερο βαθμό που πήρε κάθε μαθητής. Αλλά επειδή πρόκειται για γράμματα, είναι η συνάρτηση MIN που πρέπει να εφαρμόσω στη στήλη G:

    =QUERY(Papers!A1:G11, "select A,min(G) group by A")

    Σημείωση. Εάν δεν χρησιμοποιήσετε μια συνάρτηση συνάθροισης με οποιαδήποτε στήλη στην ενότητα επιλέξτε ρήτρα (στήλη A στο παράδειγμά μου), θα πρέπει να τα αντιγράψετε όλα στο αρχείο ομάδα από ρήτρα.

    Google Sheets QUERY - Pivot

    Google Sheets QUERY pivot Η ρήτρα λειτουργεί αντίστροφα, αν μου επιτρέπετε. Μεταφέρει τα δεδομένα από μια στήλη σε μια γραμμή με νέες στήλες, ομαδοποιώντας ανάλογα τις άλλες τιμές.

    Για όσους από εσάς ασχολούνται με ημερομηνίες, μπορεί να είναι μια πραγματική ανακάλυψη. Θα μπορείτε να ρίξετε μια γρήγορη ματιά σε όλα τα ξεχωριστά έτη από αυτή τη στήλη πηγής.

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

    Θυμηθείτε, ο πίνακάς μου αναφέρει τώρα μόνο 3 μαθητές. Θα κάνω τη συνάρτηση να μου πει πόσες εκθέσεις έκανε κάθε μαθητής:

    =QUERY(Papers!A1:G11, "select count(G) pivot A")

    Google Sheets QUERY - Ταξινόμηση κατά

    Αυτό είναι πολύ εύκολο :) Χρησιμοποιείται για την ταξινόμηση του αποτελέσματος με βάση τις τιμές σε ορισμένες στήλες.

    Συμβουλή. Όλες οι προηγούμενες ρήτρες είναι προαιρετικές όταν χρησιμοποιείτε το με σειρά κατά . χρησιμοποιώ επιλέξτε για να επιστρέψει λιγότερες στήλες για λόγους επίδειξης.

    Ας επιστρέψουμε στον αρχικό μου πίνακα και ας ταξινομήσουμε τις αναφορές ανά ημερομηνία ομιλίας.

    Αυτή η επόμενη φόρμουλα Google Sheets QUERY θα μου πάρει τις στήλες Α, Β και Γ, αλλά ταυτόχρονα θα τις ταξινομήσει με βάση την ημερομηνία στη στήλη Β:

    =QUERY(Papers!A1:G11, "select A,B,C order by B")

    Όριο

    Τι θα συμβεί αν σας πω, δεν χρειάζεται να φέρετε κάθε γραμμή στο αποτέλεσμα; Τι θα συμβεί αν σας πω ότι το Google Sheets QUERY μπορεί να τραβήξει μόνο ένα ορισμένο ποσό από τις πρώτες αντιστοιχίες που βρίσκει?

    Λοιπόν, το όριο περιορίζει τον αριθμό των σειρών που θα επιστραφούν με τον δεδομένο αριθμό.

    Συμβουλή. Χρησιμοποιήστε ελεύθερα όριο χωρίς άλλες προηγούμενες ρήτρες.

    Αυτός ο τύπος θα εμφανίσει τις πρώτες 5 γραμμές στις οποίες η στήλη με τους βαθμούς περιέχει ένα βαθμό (δεν είναι κενή):

    =QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 5")

    Offset

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

    Συμβουλή. Offset επίσης δεν απαιτεί άλλες ρήτρες.

    =QUERY(Papers!A1:G11, "select A,B,C,G where G is not null offset 5")

    Εάν προσπαθήσετε να χρησιμοποιήσετε και τα δύο όριο και offset , θα συμβούν τα εξής:

    1. Offset θα παραλείψει σειρές στην αρχή.
    2. Όριο θα επιστρέψει έναν αριθμό από τις ακόλουθες γραμμές.

    =QUERY(Papers!A1:G11, "select A,B,C,G where G is not null limit 3 offset 3")

    Από 11 σειρές δεδομένων (η πρώτη είναι μια επικεφαλίδα και η λειτουργία QUERY στο Google Sheets κάνει καλή δουλειά στην κατανόηση αυτού), offset παραλείπει τις πρώτες 3 σειρές. Limit επιστρέφει 3 επόμενες σειρές (ξεκινώντας από την 4η):

    Google Sheets QUERY - Ετικέτα

    Google Sheets QUERY ετικέτα σας επιτρέπει να αλλάξετε τα ονόματα των επικεφαλίδων των στηλών.

    Συμβουλή. Άλλες ρήτρες είναι προαιρετικές για ετικέτα επίσης.

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

    =QUERY(Papers!A1:G11, "select A,B,C label A 'Name', B 'Date'")

    Μορφή

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

    Συμβουλή. Η ρήτρα μορφοποίησης μπορεί επίσης να παίξει σόλο στο Google Sheets QUERY.

    =QUERY(Papers!A1:G11, "select A,B,C limit 3 format B 'mm-dd, yyyy, ddd'")

    Συμβουλή. Ανέφερα κάποιες μορφές ημερομηνίας για το Google Sheets QUERY σε αυτή τη δημοσίευση ιστολογίου. Άλλες μορφές μπορούν να ληφθούν απευθείας από τα λογιστικά φύλλα: Μορφή> Αριθμός> Περισσότερες μορφές> Προσαρμοσμένη μορφή αριθμού .

    Επιλογές

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

    Για παράδειγμα, μια εντολή όπως no_values θα επιστρέφει μόνο μορφοποιημένα κελιά.

    Ο γρηγορότερος τρόπος για την κατασκευή τύπων QUERY - Multiple Vlookup Matches

    Όσο ισχυρή και αν είναι η λειτουργία QUERY στο Google Sheets, μπορεί να απαιτεί μια καμπύλη εκμάθησης για να την αποκτήσετε. Είναι άλλο πράγμα να απεικονίσετε κάθε ρήτρα ξεχωριστά σε έναν μικρό πίνακα και εντελώς διαφορετικό να προσπαθήσετε να δημιουργήσετε τα πάντα σωστά με μερικές ρήτρες και έναν πολύ μεγαλύτερο πίνακα.

    Αυτός είναι ο λόγος για τον οποίο αποφασίσαμε να ντύσουμε το Google Sheets QUERY με ένα φιλικό προς το χρήστη περιβάλλον και να το κάνουμε το πρόσθετο.

    Γιατί οι πολλαπλές αντιστοιχίες VLOOKUP είναι καλύτερες από τους τύπους;

    Λοιπόν, με το πρόσθετο υπάρχει απολύτως καμία ανάγκη να :

    • να καταλάβω τίποτα γι' αυτά ρήτρες Είναι πραγματικά εύκολο να δημιουργήσετε πολλές σύνθετες συνθήκες στο πρόσθετο: όσες χρειάζεστε, παρά τη σειρά τους, για να βρείτε όσες αντιστοιχίες χρειάζεστε.

      Σημείωση. Προς το παρόν, οι ακόλουθες ρήτρες ενσωματώθηκαν στο εργαλείο: select, where, limit, και offset Αν η εργασία σας απαιτεί και άλλες ρήτρες, παρακαλώ σχολιάστε παρακάτω - ίσως μας βοηθήσετε να βελτιωθούμε ;)

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

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

    Ως μπόνους , θα είστε σε θέση να:

    • προεπισκόπηση τόσο το αποτέλεσμα και τον τύπο
    • φτιάξτε το γρήγορες προσαρμογές στα κριτήριά σας
    • επιλέξτε ένα θέση για το αποτέλεσμα
    • εισαγωγή το αποτέλεσμα και ως Τύπος QUERY ή ως τιμές

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

    Αν είστε αρκετά περίεργοι, δείτε εδώ ένα λεπτομερές βίντεο που δείχνει πώς λειτουργεί το πρόσθετο:

    Ελπίζω να δώσετε μια ευκαιρία στο πρόσθετο και να το αποκτήσετε από το Google Workspace Marketplace. Μην ντρέπεστε και μοιραστείτε τα σχόλιά σας, ειδικά αν υπάρχει κάτι σε αυτό που δεν σας αρέσει.

    Επίσης, μη διστάσετε να ελέγξετε τη σελίδα με τα μαθήματα ή την αρχική σελίδα.

    Ο Michael Brown είναι ένας αφοσιωμένος λάτρης της τεχνολογίας με πάθος για την απλοποίηση πολύπλοκων διαδικασιών χρησιμοποιώντας εργαλεία λογισμικού. Με περισσότερο από μια δεκαετία εμπειρίας στον κλάδο της τεχνολογίας, έχει βελτιώσει τις δεξιότητές του στο Microsoft Excel και το Outlook, καθώς και στα Φύλλα Google και στα Έγγραφα. Το blog του Michael είναι αφιερωμένο στο να μοιράζεται τη γνώση και την τεχνογνωσία του με άλλους, παρέχοντας εύκολες συμβουλές και σεμινάρια για τη βελτίωση της παραγωγικότητας και της αποτελεσματικότητας. Είτε είστε έμπειρος επαγγελματίας είτε αρχάριος, το ιστολόγιο του Michael προσφέρει πολύτιμες πληροφορίες και πρακτικές συμβουλές για να αξιοποιήσετε στο έπακρο αυτά τα βασικά εργαλεία λογισμικού.