DATEDIF και NETWORKDAYS στο Google Sheets: διαφορά ημερομηνίας σε ημέρες, μήνες και έτη

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

Η σημερινή ανάρτηση στο ιστολόγιο αφορά τον υπολογισμό της διαφοράς μεταξύ δύο ημερομηνιών στο Google Sheets. Θα δείτε πολλούς τύπους DATEDIF για να μετράτε ημέρες, μήνες και έτη και θα μάθετε πώς χρησιμοποιείται το NETWORKDAYS για να μετράτε μόνο τις εργάσιμες ημέρες, ακόμη και αν οι διακοπές σας βασίζονται σε ένα προσαρμοσμένο πρόγραμμα.

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

    Συνάρτηση DATEDIF στο Google Sheets

    Όπως συμβαίνει με τις συναρτήσεις, τα ονόματά τους υποδηλώνουν τη δράση. Το ίδιο ισχύει και για την DATEDIF. Πρέπει να διαβαστεί ως ημερομηνία dif , όχι με ημερομηνία αν , και σημαίνει διαφορά ημερομηνίας Ως εκ τούτου, το DATEDIF στο Google Sheets υπολογίζει τη διαφορά ημερομηνίας μεταξύ δύο ημερομηνιών.

    Η συνάρτηση απαιτεί τρία ορίσματα:

    =DATEDIF(ημερομηνία έναρξης, ημερομηνία λήξης, μονάδα)
    • start_date - μια ημερομηνία που χρησιμοποιείται ως σημείο εκκίνησης. Πρέπει να είναι μία από τις ακόλουθες:
      • η ίδια η ημερομηνία σε διπλά εισαγωγικά: "8/13/2020"
      • μια αναφορά σε ένα κελί με μια ημερομηνία: A2
      • έναν τύπο που επιστρέφει μια ημερομηνία: DATE(2020, 8, 13)
      • ένας αριθμός που αντιπροσωπεύει μια συγκεκριμένη ημερομηνία και μπορεί να ερμηνευτεί ως ημερομηνία από το Google Sheets, π.χ. 44056 αντιπροσωπεύει το 13 Αυγούστου, 2020 .
    • end_date - μια ημερομηνία που χρησιμοποιείται ως τελικό σημείο. Πρέπει να έχει την ίδια μορφή με την ημερομηνία start_date .
    • μονάδα - χρησιμοποιείται για να πει στη συνάρτηση ποια διαφορά να επιστρέψει. Εδώ είναι ένας πλήρης κατάλογος των μονάδων που μπορείτε να χρησιμοποιήσετε:
      • "D" - (συντομογραφία για ημέρες ) επιστρέφει τον αριθμό των ημερών μεταξύ δύο ημερομηνιών.
      • "M" - (μήνες) ο αριθμός των πλήρων μηνών μεταξύ δύο ημερομηνιών.
      • "Y" - (έτη) ο αριθμός των πλήρων ετών.
      • "MD" - (days ignoring months) ο αριθμός των ημερών μετά την αφαίρεση ολόκληρων μηνών.
      • "YD" - (days ignoring years) ο αριθμός των ημερών μετά την αφαίρεση ολόκληρων ετών.
      • "YM" - (μήνες αγνοώντας τα έτη) ο αριθμός των πλήρων μηνών μετά την αφαίρεση των πλήρων ετών.

    Σημείωση. Όλες οι μονάδες πρέπει να τίθενται στους τύπους με τον ίδιο τρόπο που εμφανίζονται παραπάνω - σε διπλά εισαγωγικά.

    Τώρα ας ενώσουμε όλα αυτά τα μέρη και ας δούμε πώς λειτουργούν οι τύποι DATEDIF στο Google Sheets.

    Υπολογισμός ημερών μεταξύ δύο ημερομηνιών στο Google Sheets

    Παράδειγμα 1. Μετρήστε όλες τις ημέρες

    Έχω έναν μικρό πίνακα για την παρακολούθηση ορισμένων παραγγελιών. Όλες έχουν αποσταλεί το πρώτο δεκαπενθήμερο του Αυγούστου - Ημερομηνία αποστολής - η οποία θα είναι η ημερομηνία έναρξης. Υπάρχει επίσης μια κατά προσέγγιση ημερομηνία παράδοσης... Ημερομηνία λήξης .

    Θα υπολογίσω τις ημέρες - "D" - μεταξύ των ημερομηνιών αποστολής και λήξης για να δω πόσος χρόνος χρειάζεται για να φτάσουν τα αντικείμενα. Εδώ είναι ο τύπος που πρέπει να χρησιμοποιήσω:

    =DATEDIF(B2, C2, "D")

    Εισάγω τον τύπο DATEDIF στο D2 και στη συνέχεια τον αντιγράφω προς τα κάτω στη στήλη για να τον εφαρμόσω σε άλλες γραμμές.

    Συμβουλή. Μπορείτε πάντα να υπολογίζετε ολόκληρη τη στήλη ταυτόχρονα με έναν μόνο τύπο χρησιμοποιώντας ARRAYFORMULA:

    =ArrayFormula(DATEDIF(B2:B13, C2:C13, "D"))

    Παράδειγμα 2. Μέτρηση ημερών αγνοώντας τους μήνες

    Φανταστείτε ότι μεσολαβούν μερικοί μήνες μεταξύ δύο ημερομηνιών:

    Πώς μετράτε μόνο τις ημέρες σαν να ανήκουν στον ίδιο μήνα; Σωστά: αγνοώντας ολόκληρους μήνες που έχουν περάσει. Το DATEDIF το υπολογίζει αυτό αυτόματα όταν χρησιμοποιείτε την εντολή "MD" μονάδα:

    =DATEDIF(A2, B2, "MD")

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

    Παράδειγμα 3. Μέτρηση ημερών αγνοώντας τα έτη

    Μια άλλη μονάδα - "YD" - θα βοηθήσει όταν οι ημερομηνίες έχουν περισσότερο από ένα έτος μεταξύ τους:

    =DATEDIF(A2, B2, "YD")

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

    Μετρήστε τις εργάσιμες ημέρες στο Google Sheets

    Υπάρχει μια ειδική περίπτωση όταν πρέπει να μετράτε μόνο τις εργάσιμες ημέρες στο Google Sheets. Οι τύποι DATEDIF δεν θα σας βοηθήσουν πολύ εδώ. Και πιστεύω ότι θα συμφωνήσετε ότι η χειροκίνητη αφαίρεση των Σαββατοκύριακων δεν είναι η πιο κομψή επιλογή.

    Ευτυχώς, το Google Sheets έχει μερικά όχι και τόσο μαγικά ξόρκια για αυτό :)

    Παράδειγμα 1. Συνάρτηση NETWORKDAYS

    Η πρώτη ονομάζεται NETWORKDAYS. Η συνάρτηση αυτή υπολογίζει τον αριθμό των εργάσιμων ημερών μεταξύ δύο ημερομηνιών, εξαιρουμένων των Σαββατοκύριακων (Σάββατο και Κυριακή) και ακόμη και των αργιών, εάν είναι απαραίτητο:

    =NETWORKDAYS(start_date, end_date, [holidays])
    • start_date - μια ημερομηνία που χρησιμοποιείται ως σημείο εκκίνησης. Απαιτείται.

      Σημείωση: Εάν η ημερομηνία αυτή δεν είναι αργία, υπολογίζεται ως εργάσιμη ημέρα.

    • end_date - μια ημερομηνία που χρησιμοποιείται ως τελικό σημείο. Απαιτείται.

      Σημείωση: Εάν η ημερομηνία αυτή δεν είναι αργία, υπολογίζεται ως εργάσιμη ημέρα.

    • διακοπές - αυτό είναι προαιρετικό για τις περιπτώσεις που πρέπει να επισημάνετε συγκεκριμένες αργίες. Πρέπει να είναι ένα εύρος ημερομηνιών ή αριθμών που αντιπροσωπεύουν ημερομηνίες.

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

    Έτσι, η στήλη Β είναι η ημερομηνία έναρξης, οι στήλες Γ - ημερομηνία λήξης. Οι ημερομηνίες στη στήλη Ε είναι οι διακοπές που πρέπει να ληφθούν υπόψη. Ακολουθεί ο τύπος:

    =NETWORKDAYS(B2, C2, $E$2:$E$4)

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

    Έχετε παρατηρήσει ότι ο αριθμός των ημερών μειώθηκε σε σύγκριση με τους τύπους DATEDIF; Επειδή τώρα η συνάρτηση αφαιρεί αυτόματα όλα τα Σάββατα, τις Κυριακές και τις δύο αργίες που πραγματοποιούνται την Παρασκευή και τη Δευτέρα.

    Σημείωση. Σε αντίθεση με το DATEDIF στο Google Sheets, το NETWORKDAYS μετράει start_day και end_day ως εργάσιμες ημέρες, εκτός αν είναι αργίες. Ως εκ τούτου, η D7 επιστρέφει 1 .

    Παράδειγμα 2. NETWORKDAYS.INTL για το Google Sheets

    Εάν έχετε ένα προσαρμοσμένο πρόγραμμα Σαββατοκύριακου, θα επωφεληθείτε από μια άλλη λειτουργία: NETWORKDAYS.INTL. Σας επιτρέπει να μετράτε τις εργάσιμες ημέρες στο Google Sheets με βάση τα προσωπικά καθορισμένα Σαββατοκύριακα:

    =NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
    • start_date - μια ημερομηνία που χρησιμοποιείται ως σημείο εκκίνησης. Απαιτείται.
    • end_date - μια ημερομηνία που χρησιμοποιείται ως τελικό σημείο. Απαιτείται.

      Σημείωση. Το NETWORKDAYS.INTL στο Google Sheets μετρά επίσης start_day και end_day ως εργάσιμες ημέρες, εκτός αν είναι αργίες.

    • Σαββατοκύριακο - Εάν παραλειφθεί, το Σάββατο και η Κυριακή θεωρούνται Σαββατοκύριακα. Αλλά μπορείτε να το αλλάξετε αυτό χρησιμοποιώντας δύο τρόπους:
      • Μάσκες .

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

        Η μάσκα είναι ένα επταψήφιο μοτίβο από 1 και 0. Το 1 συμβολίζει το Σαββατοκύριακο, το 0 την εργάσιμη ημέρα. Το πρώτο ψηφίο στο μοτίβο είναι πάντα η Δευτέρα και το τελευταίο η Κυριακή.

        Για παράδειγμα, "1100110" σημαίνει ότι εργάζεστε την Τετάρτη, την Πέμπτη, την Παρασκευή και το Σάββατο.

        Σημείωση. Η μάσκα πρέπει να τίθεται σε διπλά εισαγωγικά.

      • Αριθμοί .

        Χρησιμοποιήστε μονοψήφιους αριθμούς (1-7) που δηλώνουν ένα ζεύγος καθορισμένων Σαββατοκύριακων:

        Αριθμός Σαββατοκύριακο
        1 Σάββατο, Κυριακή
        2 Κυριακή, Δευτέρα
        3 Δευτέρα, Τρίτη
        4 Τρίτη, Τετάρτη
        5 Τετάρτη, Πέμπτη
        6 Πέμπτη, Παρασκευή
        7 Παρασκευή, Σάββατο

        Ή δουλέψτε με διψήφιους αριθμούς (11-17) που υποδηλώνουν μια μέρα ανάπαυσης μέσα σε μια εβδομάδα:

        Αριθμός Ημέρα Σαββατοκύριακου
        11 Κυριακή
        12 Δευτέρα
        13 Τρίτη
        14 Τετάρτη
        15 Πέμπτη
        16 Παρασκευή
        17 Σάββατο
    • διακοπές - είναι επίσης προαιρετική και χρησιμοποιείται για τον καθορισμό των αργιών.

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

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

    Αν πάτε με μάσκα, θα είναι κάπως έτσι - 1000001 :

    =NETWORKDAYS.INTL(B2, C2, "1000001")

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

    =NETWORKDAYS.INTL(B2, C2, 2)

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

    =NETWORKDAYS.INTL(B2, C2, 2, $E$2:$E$4)

    Φύλλα Google και διαφορά ημερομηνίας σε μήνες

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

    Παράδειγμα 1. Ο αριθμός των πλήρων μηνών μεταξύ δύο ημερομηνιών

    Η άσκηση είναι η ίδια: η start_date πηγαίνει πρώτο, ακολουθούμενο από το end_date και "M" - που διαρκεί μήνες - ως τελικό επιχείρημα:

    =DATEDIF(A2, B2, "M")

    Συμβουλή. Μην ξεχνάτε τη συνάρτηση ARRAUFORMULA που μπορεί να σας βοηθήσει να μετρήσετε τους μήνες σε όλες τις γραμμές ταυτόχρονα:

    =ARRAYFORMULA(DATEDIF(A2:A13, B2:B13, "M"))

    Παράδειγμα 2. Ο αριθμός των μηνών αγνοεί τα έτη

    Μπορεί να μην χρειάζεται να μετράτε τους μήνες σε όλα τα έτη που μεσολαβούν μεταξύ των ημερομηνιών έναρξης και λήξης. Και η DATEDIF σας επιτρέπει να το κάνετε αυτό.

    Απλά χρησιμοποιήστε το "YM" μονάδα και ο τύπος θα αφαιρέσει πρώτα ολόκληρα έτη και στη συνέχεια θα μετρήσει τον αριθμό των μηνών μεταξύ των ημερομηνιών:

    =DATEDIF(A2, B2, "YM")

    Υπολογισμός ετών μεταξύ δύο ημερομηνιών στο Google Sheets

    Το τελευταίο (αλλά όχι λιγότερο σημαντικό) πράγμα που θα σας δείξω είναι ο τρόπος με τον οποίο το Google Sheets DATEDIF υπολογίζει τη διαφορά ημερομηνίας σε έτη.

    Θα υπολογίσω τον αριθμό των ετών που τα ζευγάρια είναι παντρεμένα με βάση την ημερομηνία του γάμου τους και τη σημερινή ημερομηνία:

    Όπως ίσως έχετε ήδη μαντέψει, θα χρησιμοποιήσω το "Y" μονάδα γι' αυτό:

    =DATEDIF(A2, B2, "Y")

    Όλοι αυτοί οι τύποι DATEDIF είναι οι πρώτοι που πρέπει να δοκιμάσετε όταν πρόκειται για τον υπολογισμό ημερών, μηνών και ετών μεταξύ δύο ημερομηνιών στα Φύλλα Google.

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

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