Πίνακας περιεχομένων
Αυτό το σύντομο σεμινάριο εξηγεί τη χρήση των συναρτήσεων NETWORKDAYS και WORKDAY του Excel για τον υπολογισμό των εργάσιμων ημερών με προσαρμοσμένες παραμέτρους Σαββατοκύριακου και αργιών.
Το Microsoft Excel παρέχει δύο συναρτήσεις ειδικά σχεδιασμένες για τον υπολογισμό των εργάσιμων ημερών - WORKDAY και NETWORKDAYS.
Το ΕΡΓΑΣΙΑΚΗ ΗΜΕΡΑ επιστρέφει μια ημερομηνία Ν εργάσιμων ημερών στο μέλλον ή στο παρελθόν και μπορείτε να τη χρησιμοποιήσετε για να προσθέσετε ή να αφαιρέσετε εργάσιμες ημέρες σε μια δεδομένη ημερομηνία.
Χρησιμοποιώντας το NETWORKDAYS μπορείτε να υπολογίσετε τον αριθμό των εργάσιμων ημερών μεταξύ δύο ημερομηνιών που καθορίζετε.
Στο Excel 2010 και μεταγενέστερα, υπάρχουν πιο ισχυρές τροποποιήσεις των παραπάνω συναρτήσεων, οι WORKDAY.INTL και NETWORKDAYS.INTL, οι οποίες σας επιτρέπουν να ορίσετε ποιες και πόσες ημέρες είναι ημέρες Σαββατοκύριακου.
Και τώρα, ας ρίξουμε μια πιο προσεκτική ματιά σε κάθε συνάρτηση και ας δούμε πώς μπορείτε να τη χρησιμοποιήσετε για τον υπολογισμό των εργάσιμων ημερών στα φύλλα εργασίας του Excel.
Συνάρτηση WORKDAY του Excel
Η συνάρτηση WORKDAY του Excel επιστρέφει μια ημερομηνία η οποία βρίσκεται ένα δεδομένο αριθμό εργάσιμων ημερών πριν ή πριν από την ημερομηνία έναρξης. Εξαιρούνται τα Σαββατοκύριακα καθώς και τυχόν αργίες που καθορίζετε.
Η λειτουργία WORKDAY προορίζεται για τον υπολογισμό των εργάσιμων ημερών, των ορόσημων και των καταληκτικών ημερομηνιών με βάση το τυπικό ημερολόγιο εργασίας, με το Σάββατο και την Κυριακή να είναι οι ημέρες του Σαββατοκύριακου.
Η WORKDAY είναι μια ενσωματωμένη συνάρτηση στο Excel 2007 - 365. Σε προηγούμενες εκδόσεις, πρέπει να ενεργοποιήσετε το Analysis ToolPak.
Όταν χρησιμοποιείτε το WORKDAY στο Excel, πρέπει να εισαγάγετε τα ακόλουθα ορίσματα:
WORKDAY(start_date, days, [holidays])Τα 2 πρώτα ορίσματα είναι υποχρεωτικά και το τελευταίο είναι προαιρετικό:
- Ημερομηνία έναρξης_ημερομηνία - η ημερομηνία από την οποία θα αρχίσει η μέτρηση των εργάσιμων ημερών.
- Ημέρες - ο αριθμός των εργάσιμων ημερών που θα προστεθούν/αφαιρούνται από την ημερομηνία start_date. Ένας θετικός αριθμός επιστρέφει μια μελλοντική ημερομηνία, ένας αρνητικός αριθμός επιστρέφει μια παρελθούσα ημερομηνία.
- Διακοπές - μια προαιρετική λίστα ημερομηνιών που δεν πρέπει να υπολογίζονται ως εργάσιμες ημέρες. Μπορεί να είναι είτε μια σειρά κελιών που περιέχουν τις ημερομηνίες που θέλετε να αποκλείσετε από τους υπολογισμούς, είτε μια σταθερά πίνακα με τους αύξοντες αριθμούς που αντιπροσωπεύουν τις ημερομηνίες.
Τώρα που γνωρίζετε τα βασικά, ας δούμε πώς μπορείτε να χρησιμοποιήσετε τη συνάρτηση WORKDAY στα φύλλα εργασίας του Excel.
Πώς να χρησιμοποιήσετε το WORKDAY για να προσθέσετε / αφαιρέσετε εργάσιμες ημέρες στην ημερομηνία
Για να υπολογίσετε τις εργάσιμες ημέρες στο Excel, ακολουθήστε αυτούς τους απλούς κανόνες:
- Προς προσθέστε εργάσιμες ημέρες, πληκτρολογήστε έναν θετικό αριθμό ως ημέρες όρισμα ενός τύπου WORKDAY.
- Προς αφαιρέστε εργάσιμες ημέρες, χρησιμοποιήστε έναν αρνητικό αριθμό στο ημέρες επιχείρημα.
Ας υποθέσουμε ότι έχετε μια ημερομηνία έναρξης στο κελί A2, μια λίστα διακοπών στα κελιά B2:B5 και θέλετε να βρείτε τις ημερομηνίες 30 εργάσιμων ημερών στο μέλλον και στο παρελθόν. Μπορείτε να το κάνετε αυτό χρησιμοποιώντας τους ακόλουθους τύπους:
Για να προσθέσετε 30 εργάσιμες ημέρες στην ημερομηνία έναρξης, εξαιρουμένων των αργιών στα Β2:Β5:
=WORKDAY(A2, 30, B2:B5)
Να αφαιρέσετε 30 εργάσιμες ημέρες από την ημερομηνία έναρξης, εξαιρουμένων των αργιών στα B2:B5:
=WORKDAY(A2, -30, B2:B5)
Για τον υπολογισμό των εργάσιμων ημερών με βάση το τρέχουσα ημερομηνία , χρησιμοποιήστε τη συνάρτηση TODAY() ως ημερομηνία έναρξης:
Για να προσθέσετε 30 εργάσιμες ημέρες στη σημερινή ημερομηνία:
=WORKDAY(TODAY(), 30)
Για να αφαιρέσετε 30 εργάσιμες ημέρες από τη σημερινή ημερομηνία:
=WORKDAY(TODAY(), -30)
Για να δώσετε την ημερομηνία έναρξης απευθείας στον τύπο, χρησιμοποιήστε τη συνάρτηση DATE:
=WORKDAY(DATE(2015,5,6), 30)
Το ακόλουθο στιγμιότυπο οθόνης δείχνει τα αποτελέσματα όλων αυτών και μερικών ακόμη τύπων WORKDAY:
Και φυσικά, μπορείτε να εισάγετε τον αριθμό των εργάσιμων ημερών που θα προστεθούν/αφαιρούνται από την ημερομηνία έναρξης σε κάποιο κελί και στη συνέχεια να αναφερθείτε σε αυτό το κελί στον τύπο σας. Για παράδειγμα:
=WORKDAY(A2, C2)
Όπου Α2 είναι η ημερομηνία έναρξης και C2 είναι ο αριθμός των ημερών εκτός Σαββατοκύριακου που βρίσκονται πίσω (αρνητικοί αριθμοί) ή μπροστά (θετικοί αριθμοί) από την ημερομηνία έναρξης, χωρίς να αποκλείονται οι αργίες.
Συμβουλή. Στο Excel 365 και 2021, μπορείτε να χρησιμοποιήσετε την WORKDAY σε συνδυασμό με την SEQUENCE για να δημιουργήσετε μια σειρά εργάσιμων ημερών.
Συνάρτηση WORKDAY.INTL του Excel
Η WORKDAY.INTL είναι μια πιο ισχυρή τροποποίηση της συνάρτησης WORKDAY που λειτουργεί με προσαρμοσμένες παράμετροι Σαββατοκύριακου Όπως και η WORKDAY, επιστρέφει μια ημερομηνία που είναι ένας καθορισμένος αριθμός εργάσιμων ημερών στο μέλλον ή στο παρελθόν, αλλά σας επιτρέπει να καθορίσετε ποιες ημέρες της εβδομάδας θα πρέπει να θεωρούνται ημέρες Σαββατοκύριακου.
Η συνάρτηση WORKDAY.INTL εισήχθη στο Excel 2010 και δεν είναι διαθέσιμη σε προηγούμενες εκδόσεις του Excel.
Η σύνταξη της συνάρτησης WORKDAY.INTL του Excel έχει ως εξής:
WORKDAY.INTL(start_date, days, [weekend], [holidays])Τα δύο πρώτα ορίσματα είναι υποχρεωτικά και είναι παρόμοια με αυτά της WORKDAY:
Ημερομηνία έναρξης_ημερομηνία - την αρχική ημερομηνία.
Ημέρες - τον αριθμό των εργάσιμων ημερών πριν (αρνητική τιμή) ή μετά (θετική τιμή) την ημερομηνία έναρξης. Εάν η ημέρες
το όρισμα παρέχεται ως δεκαδικός αριθμός, περικόπτεται σε ακέραιο αριθμό.
Τα δύο τελευταία ορίσματα είναι προαιρετικά:
Σαββατοκύριακο - καθορίζει ποιες εργάσιμες ημέρες θα πρέπει να υπολογίζονται ως ημέρες Σαββατοκύριακου. Αυτό μπορεί να είναι είτε ένας αριθμός είτε μια συμβολοσειρά, όπως φαίνεται παρακάτω.
Αριθμός | Ημέρες Σαββατοκύριακου |
1 ή παραλείπεται | Σάββατο, Κυριακή |
2 | Κυριακή, Δευτέρα |
3 | Δευτέρα, Τρίτη |
4 | Τρίτη, Τετάρτη |
5 | Τετάρτη, Πέμπτη |
6 | Πέμπτη, Παρασκευή |
7 | Παρασκευή, Σάββατο |
11 | Μόνο την Κυριακή |
12 | Μόνο τη Δευτέρα |
13 | Μόνο την Τρίτη |
14 | Μόνο την Τετάρτη |
15 | Μόνο την Πέμπτη |
16 | Παρασκευή μόνο |
17 | Μόνο το Σάββατο |
Σειρά Σαββατοκύριακου - μια σειρά από επτά 0 και 1 που αντιπροσωπεύουν επτά ημέρες της εβδομάδας, ξεκινώντας από τη Δευτέρα. Το 1 αντιπροσωπεύει μια μη εργάσιμη ημέρα και το 0 αντιπροσωπεύει μια εργάσιμη ημέρα. Για παράδειγμα:
- "0000011" - Το Σάββατο και η Κυριακή είναι Σαββατοκύριακα.
- "1000001" - Η Δευτέρα και η Κυριακή είναι Σαββατοκύριακα.
Εκ πρώτης όψεως, οι συμβολοσειρές του Σαββατοκύριακου μπορεί να φαίνονται περιττές, αλλά προσωπικά μου αρέσει περισσότερο αυτή η μέθοδος, επειδή μπορείτε να φτιάξετε μια συμβολοσειρά του Σαββατοκύριακου εν κινήσει χωρίς να χρειάζεται να θυμάστε αριθμούς.
Διακοπές - μια προαιρετική λίστα των ημερομηνιών που θέλετε να αποκλείσετε από το ημερολόγιο εργάσιμων ημερών. Αυτή μπορεί να είναι μια σειρά κελιών που περιέχουν τις ημερομηνίες ή μια σταθερά πίνακα των σειριακών τιμών που αντιπροσωπεύουν αυτές τις ημερομηνίες.
Χρήση του WORKDAY.INTL στο Excel - παραδείγματα τύπων
Λοιπόν, ο αρκετά μεγάλος όγκος της θεωρίας που μόλις συζητήσαμε μπορεί να φαίνεται αρκετά περίπλοκος και συγκεχυμένος, αλλά αν δοκιμάσετε τις δυνατότητές σας στους τύπους, τα πράγματα θα γίνουν πραγματικά εύκολα.
Στο σύνολο δεδομένων μας, με την ημερομηνία έναρξης στο κελί A2 και μια λίστα αργιών στα A5:A8, ας υπολογίσουμε τις εργάσιμες ημέρες με προσαρμοσμένα Σαββατοκύριακα.
Προς προσθέστε 30 εργάσιμες ημέρες από την ημερομηνία έναρξης, η Παρασκευή και το Σάββατο υπολογίζονται ως Σαββατοκύριακα και οι αργίες στα Α5:Α8 εξαιρούνται:
=WORKDAY.INTL(A2, 30, 7, A5:A8)
ή
=WORKDAY.INTL(A2, 30, "0000110", A5:A8)
Προς αφαιρέστε 30 εργάσιμες ημέρες από την ημερομηνία έναρξης, η Κυριακή και η Δευτέρα υπολογίζονται ως Σαββατοκύριακα και οι αργίες στα Α5:Α8 εξαιρούνται:
=WORKDAY.INTL(A2, -30, 2, A5:A8)
ή
=WORKDAY.INTL(A2, -30, "1000001", A5:A8)
Για να προσθέσετε 10 εργάσιμες ημέρες στο τρέχουσα ημερομηνία , η Κυριακή είναι η μόνη ημέρα του Σαββατοκύριακου, χωρίς αργίες:
=WORKDAY.INTL(TODAY(), 10, 11)
ή
=WORKDAY.INTL(A2, 10, "0000001")
Στο φύλλο του Excel, οι τύποι μπορεί να μοιάζουν με τους εξής:
Σημείωση. Και οι δύο συναρτήσεις WORKDAY και WORKDAY.INTL του Excel επιστρέφουν αύξοντες αριθμούς που αντιπροσωπεύουν τις ημερομηνίες. Για να εμφανιστούν αυτοί οι αριθμοί ως ημερομηνίες, επιλέξτε τα κελιά με τους αριθμούς και πατήστε Ctrl+1 για να ανοίξετε το παράθυρο Κελιά μορφοποίησης διάλογος. Στο Αριθμός καρτέλα, επιλέξτε Ημερομηνία στο Κατηγορία Για τα λεπτομερή βήματα, ανατρέξτε στην ενότητα Πώς να αλλάξετε τη μορφή ημερομηνίας στο Excel.
Σφάλματα Excel WORKDAY και WORKDAY.INTL
Εάν ο τύπος WORKDAY ή WORKDAY.INTL του Excel επιστρέφει σφάλμα, ο λόγος είναι πιθανό να είναι ένας από τους ακόλουθους:
#NUM! Το σφάλμα εμφανίζεται εάν είτε:
- ένας συνδυασμός των
start_date
καιημέρες
οδηγεί σε μια άκυρη ημερομηνία, ή Σαββατοκύριακο
το όρισμα στη συνάρτηση WORKDAY.INTL είναι άκυρο.
#VALUE! Το σφάλμα εμφανίζεται εάν είτε:
start_date
ή οποιαδήποτε τιμή στοδιακοπές
δεν είναι έγκυρη ημερομηνία, ήημέρες
όρισμα είναι μη αριθμητικό.
Συνάρτηση Excel NETWORKDAYS
Η συνάρτηση NETWORKDAYS στο Excel επιστρέφει τον αριθμό των εργάσιμων ημερών μεταξύ δύο ημερομηνιών, εξαιρουμένων των Σαββατοκύριακων και, προαιρετικά, των αργιών που έχετε καθορίσει.
Η σύνταξη του Excel NETWORKDAYS είναι διαισθητική και εύκολα απομνημονεύσιμη:
NETWORKDAYS(start_date, end_date, [holidays])Τα δύο πρώτα επιχειρήματα είναι υποχρεωτικά και το τρίτο προαιρετικό:
- Ημερομηνία έναρξης_ημερομηνία - αρχική ημερομηνία από την οποία αρχίζει η μέτρηση των εργάσιμων ημερών.
- End_date - το τέλος της περιόδου για την οποία μετράτε τις εργάσιμες ημέρες.
Τόσο η ημερομηνία έναρξης όσο και η ημερομηνία λήξης υπολογίζονται στον επιστρεφόμενο αριθμό εργάσιμων ημερών.
- Διακοπές - προαιρετικός κατάλογος αργιών που δεν πρέπει να υπολογίζονται ως εργάσιμες ημέρες.
Πώς να χρησιμοποιήσετε το NETWORKDAYS στο Excel - παράδειγμα τύπου
Ας υποθέσουμε ότι έχετε μια λίστα διακοπών στα κελιά A2:A5, ημερομηνίες έναρξης στη στήλη B, ημερομηνίες λήξης στη στήλη C, και θέλετε να μάθετε πόσες εργάσιμες ημέρες μεσολαβούν μεταξύ αυτών των ημερομηνιών. Ο κατάλληλος τύπος NETWORKDAYS είναι εύκολο να βρεθεί:
=NETWORKDAYS(B2, C2, $A$2:$A$5)
Παρατηρήστε ότι η συνάρτηση NETWORKDAYS του Excel επιστρέφει μια θετική τιμή όταν η ημερομηνία έναρξης είναι μικρότερη από την ημερομηνία λήξης και μια αρνητική τιμή εάν η ημερομηνία λήξης είναι πιο πρόσφατη από την ημερομηνία έναρξης (όπως στη σειρά 5):
Συνάρτηση NETWORKDAYS.INTL του Excel
Όπως και η NETWORKDAYS, η συνάρτηση NETWORKDAYS.INTL του Excel υπολογίζει τον αριθμό των εργάσιμων ημερών μεταξύ δύο ημερομηνιών, αλλά σας επιτρέπει να καθορίσετε ποιες ημέρες θα πρέπει να υπολογίζονται ως ημέρες Σαββατοκύριακου.
Η σύνταξη της συνάρτησης NETWORKDAYS.INTL μοιάζει πολύ με τη συνάρτηση NETWORKDAYS, εκτός από την πρόσθετη παράμετρο [weekend] που υποδεικνύει ποιες ημέρες της εβδομάδας θα πρέπει να υπολογίζονται ως Σαββατοκύριακα.
NETWORKDAYS.INTL( start_date, end_date, [weekend], [holidays] ) Το Σαββατοκύριακο
Το όρισμα μπορεί να δεχτεί είτε έναν αριθμό είτε μια συμβολοσειρά. Οι αριθμοί και οι συμβολοσειρές του Σαββατοκύριακου είναι ακριβώς οι ίδιες όπως και στην εντολή Σαββατοκύριακο
παράμετρος της συνάρτησης WORKDAY.INTL.
Η συνάρτηση NETWORKDAYS.INTL είναι διαθέσιμη στο Excel 365 - 2010.
Χρήση του NETWORKDAYS.INTL στο Excel - παράδειγμα τύπου
Χρησιμοποιώντας τη λίστα ημερομηνιών από το προηγούμενο παράδειγμα, ας υπολογίσουμε τον αριθμό των εργάσιμων ημερών μεταξύ δύο ημερομηνιών με την Κυριακή να είναι η μόνη ημέρα του Σαββατοκύριακου. Για το σκοπό αυτό, πληκτρολογείτε τον αριθμό 11 στο πεδίο Σαββατοκύριακο
του τύπου NETWORKDAYS.INTL ή δημιουργήστε μια συμβολοσειρά από έξι 0 και ένα 1 ("0000001"):
=NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)
Ή
=NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)
Το ακόλουθο στιγμιότυπο οθόνης αποδεικνύει ότι και οι δύο τύποι επιστρέφουν απολύτως πανομοιότυπα αποτελέσματα.
Πώς να επισημάνετε τις εργάσιμες ημέρες στο Excel
Χρησιμοποιώντας τις συναρτήσεις WORKDAY και WORKDAY.INTL, μπορείτε όχι μόνο να υπολογίζετε τις εργάσιμες ημέρες στα φύλλα εργασίας του Excel, αλλά και να τις επισημαίνετε όπως απαιτεί η επιχειρησιακή σας λογική. Για το σκοπό αυτό, δημιουργείτε έναν κανόνα μορφοποίησης υπό όρους με έναν τύπο WORKDAY ή WORKDAY.INTL.
Για παράδειγμα, σε μια λίστα ημερομηνιών στη στήλη Β, ας επισημάνουμε μόνο τις μελλοντικές ημερομηνίες που απέχουν 15 εργάσιμες ημέρες από τη σημερινή ημερομηνία, εξαιρουμένων των δύο αργιών στα κελιά Α2:Α3. Ο πιο προφανής τύπος που έρχεται στο μυαλό μας είναι ο ακόλουθος:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3))
Το πρώτο μέρος του λογικού ελέγχου αποκόπτει τις παρελθοντικές ημερομηνίες, δηλαδή ελέγχετε αν μια ημερομηνία είναι ίση ή μεγαλύτερη από τη σημερινή: $B2>TODAY(). Και στο δεύτερο μέρος, ελέγχετε αν μια ημερομηνία δεν απέχει περισσότερο από 15 εργάσιμες ημέρες στο μέλλον, εξαιρουμένων των ημερών του Σαββατοκύριακου και των καθορισμένων αργιών: $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)
Ο τύπος φαίνεται σωστός, αλλά μόλις δημιουργήσετε έναν κανόνα με βάση αυτόν, θα συνειδητοποιήσετε ότι αναδεικνύει λάθος ημερομηνίες:
Ας προσπαθήσουμε να καταλάβουμε γιατί συμβαίνει αυτό. Το πρόβλημα δεν είναι με τη συνάρτηση WORKDAY, όπως μπορεί να συμπεράνει κάποιος. Η συνάρτηση είναι σωστή, αλλά... τι κάνει στην πραγματικότητα; Επιστρέφει μια ημερομηνία 15 εργάσιμων ημερών από τώρα, εξαιρουμένων των ημερών του Σαββατοκύριακου (Σάββατο και Κυριακή) και των αργιών στα κελιά A2:A3.
Εντάξει, και τι κάνει ο κανόνας που βασίζεται σε αυτόν τον τύπο; Επισημαίνει ΟΛΕΣ τις ημερομηνίες που είναι ίσες ή μεγαλύτερες από τη σημερινή και μικρότερες από την ημερομηνία που επιστρέφει η συνάρτηση WORKDAY. Βλέπετε, όλες τις ημερομηνίες! Αν δεν θέλετε να χρωματίσετε τα Σαββατοκύριακα και τις αργίες, τότε πρέπει να πείτε ρητά στο Excel να μην το κάνει. Έτσι, προσθέτουμε δύο ακόμη συνθήκες στον τύπο μας:
- Η συνάρτηση WEEKDAY για τον αποκλεισμό των Σαββατοκύριακων: WEEKDAY($B2, 2)<6
- Η συνάρτηση COUNTIF για τον αποκλεισμό των διακοπών: COUNTIF($A$2:$A$3, $B2)=0
Όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης, ο βελτιωμένος τύπος λειτουργεί τέλεια:
=AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3), COUNTIF($A$2:$A$3, $B2)=0, WEEKDAY($B2, 2)<6)
Όπως βλέπετε, οι συναρτήσεις WORKDAY και WORKDAY.INTL κάνουν τον υπολογισμό των εργάσιμων ημερών στο Excel γρήγορο και εύκολο. Φυσικά, οι τύποι της πραγματικής σας ζωής είναι πιθανό να είναι πιο περίπλοκοι, αλλά η γνώση των βασικών βοηθάει πάρα πολύ, επειδή μπορείτε να θυμάστε μόνο ένα μικρό σύνολο βασικών πραγμάτων και να εξάγετε τα υπόλοιπα. Σας ευχαριστώ για την ανάγνωση και ελπίζω να τα πούμε στο blog μας την επόμενη εβδομάδα!