Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Excel07] Σύνολο υπερωριών και ωρών. (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/1748-sinolo-yperorion-kai-oron.html)

bill72 24-03-12 14:15

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

Spirosgr 24-03-12 17:14

2 Συνημμένο(α)
Βασίλη Καλησπέρα
Δες το συνημμένο που σου έχω τροποποιήσει λίγο για να είναι πιο λειτουργικό
Γράφουμε στα λευκά κελιά ενώ τα έγχρωμα περιέχουν τύπους
Βασικά το μόνο που κάνουμε είναι να εισάγουμε την ώρα αποχώρησης από την εργασία
Τα άλλα όλα "έρχονται" μόνα τους
Προσοχή στα σύνολα μήνα δεν δουλεύουν αν δεν γίνει η μορφοποίηση με τον τρόπο στην φωτογραφία
Στην άθροιση ωρών η Excel θέλει ειδική μεταχείριση
Μπορεί να αλλάξει το ωράριο 8:00 με 16:00 πάνω αριστερά σε ότι άλλο προκύψει στο μέλλον
Η μορφοποίηση για τα ΣΚ έχει διατηρηθεί

bill72 24-03-12 18:22

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

Spirosgr 24-03-12 19:02

1 Συνημμένο(α)
Βασίλη
Εισάγεις έναρξη λήξη ωραρίου και αποχώρηση εργαζομένου
το υπόλοιπο σενάριο παραμένει το ίδιο

gr8styl 25-03-12 11:19

1 Συνημμένο(α)
Παράθεση:

Αρχική Δημοσίευση από bill72 (Μήνυμα 10159)
Χαιρετώ όλους τους φίλους του forum,χρειάζομαι την βοήθεια σας και πάλι.Στο συννημμένο που επισυνάπτο χρειάζομαι ένα τύπο που να μου δίνει το άρθροισμα τον συνολικών ωρών του εργαζομένου,καθώς και τις ώρες υπερωρίας που εχει πραγματοποιήση .Σαν υπερωρία λογίζεται κάθε λεπτό μετά το οκτάωρο. ευχαριστώ πολύ.

Το σύνολο των ωρών ανά υπάλληλο μπορεί να υπολογιστεί με τον τύπο Πίνακα (array formula κλείσιμο με Ctrl+Shift+Enter)
στο B5=SUM(IF((D5:AH5)<>"";TIMEVALUE(RIGHT(D5:AH5;5))-TIMEVALUE(LEFT(D5:AH5;5));0)) και αντιγραφή προς τα κάτω.

Οι Υπερωρίες αν κάθε βάρδια είναι τουλάχιστον 8 ώρες ο τύπος
=B5-COUNTA(D5:AH5)*TIMEVALUE("08:00") στο C5 και αντιγραφή προς τα κάτω θα μας δώσει το ζητούμενο
Αν όμως έχεις βάρδιες διάρκειας μικρότερης των 8 ωρών τότε χρησιμοποίησε τον τύπο
=IF(B5>COUNTA(D5:AH5)*TIMEVALUE("08:00");B5-COUNTA(D5:AH5)*TIMEVALUE("08:00");TEXT(ABS(B5-COUNTA(D5:AH5)*TIMEVALUE("08:00"));"-[ω]:λλ"))
για να σου δείχνει και αρνητικές ώρες. (Για αγγλικό Excel το "-[ω]:λλ" πρέπει να γίνει "-[h]:mm")

Όλα τα παραπάνω με την προϋπόθεση ότι δεν υπάρχουν βάρδιες που να περιλαμβάνουν τα μεσάνυχτα δηλαδή μέγιστο πέρας βάρδιας 23:59

bill72 25-03-12 12:01

Αγαπητέ φίλε θανάση είναι ότι ακριβώς ήθελα,όμως το πρόβλημα είναι ότι στις βάρδιες κάποιος εργάζομενος ξεκινάει εργασία πριν της 23:59 και συνεχίζει και μετά

Tasos 25-03-12 14:32

1 Συνημμένο(α)
Καλησπέρα και χρόνια πολλά σε όλους!

Για μένα ο τρόπος που έστησε ο Σπύρος τα δεδομένα στο παράδειγμα του είναι ο ιδανικός επειδή:
  1. Μπορεί να χρησιμοποιηθεί σαν πρόγραμμα για μελλοντικές ημερομηνίες αφού περιέχει τις στήλες για Έναρξη και λήξη ωραρίου χωριστά.
  2. Οι ώρες μπορούν να καταχωρηθούν και να επικυρωθούν πολύ πιο εύκολα και επίσης δεν χρειάζεται να μετατραπούν από κείμενο σε αριθμό αφού ήδη είναι αριθμοί.
  3. Μπορεί να πάρει κανείς με τον πιο απλό τρόπο μερικά γινόμενα και γενικά να επεξεργαστεί τα δεδομένα αυτά χωρίς ειδικούς τύπους και τεχνάσματα.
  4. Είναι πιο εύκολο να διαβάσει κανείς μια λίστα από επάνω προς τα κάτω παρά από αριστερά προς τα δεξιά. Είναι προτιμότερο να χρησιμοποιείται η κάθετη κύλιση του φύλλου (μας βοηθάει ο τροχός του ποντικιού όταν υπάρχει).
Τώρα όσον αφορά το ζητούμενο σου Βασίλη, το κύριο πρόβλημα κατά τη γνώμη μου μου είναι
η ακριβής καταχώρηση των ωρών έναρξης-λήξης εργασίας.

Δες ακόμα μια προσέγγιση στο συνημμένο (με βάση το παράδειγμα σου).

Το συνημμένο αρχείο:
  • Δεν επιτρέπει την καταχώρηση λανθασμένης μορφής των ωρών έναρξης-λήξης εργασίας.
    Για να γίνει το παραπάνω χρησιμοποιείται η συνάρτηση VBA IsValidFormat()
  • Μετρά ώρες πχ από 22:00-06:00
  • Αν οι ώρες μιας ημέρας είναι πχ 6, οι 2 ώρες που υπολείπονται δεν θα αφαιρεθούν από τις υπερωρίες.

Φιλικά

Τάσος

kapetang 25-03-12 17:59

1 Συνημμένο(α)
Καλησπέρα στην παρέα

Στο αρχείο που επισυνάπτω, για την υλοποίηση του ζητούμενου, χρησιμοποιείται η συνάρτηση χρήστη «OverTime», τύπου πίνακα.

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

Για να εισαχθεί στο φύλλο εργασίας:

1) Επιλέγουμε δύο γειτονικά κελιά στην ίδια γραμμή.

2) Καταχωρούμε τη συνάρτηση πχ : =OverTime(D5:AH5).

3)Πατούμε Ctrl+Shift+Enter, για να εισαχθεί ως πίνακας .

4) Σύρουμε προς τα κάτω, όσο χρειάζεται, τη λαβή συμπλήρωσης.

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

Αν δηλαδή, μετά από μία καταχώρηση επιστραφεί «Λάθος!» η καταχώρηση θα παραβιάζει τους κανόνες καταχώρησης.

Για την έναρξη και τη λήξη της βάρδιας δεκτές είναι οι τιμές από 00:00 έως 23:59.

Για τα μεσάνυχτα συνεπώς δε θα καταχωρούμε 24:00, αλλά 00:00 (πχ 10:00-00:00).

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

Φιλικά/Γιώργος

gr8styl 25-03-12 19:58

Παράθεση:

Αρχική Δημοσίευση από bill72 (Μήνυμα 10171)
Αγαπητέ φίλε θανάση είναι ότι ακριβώς ήθελα,όμως το πρόβλημα είναι ότι στις βάρδιες κάποιος εργάζομενος ξεκινάει εργασία πριν της 23:59 και συνεχίζει και μετά

Αγαπητέ Βασίλη,
χωρίς να διαφωνώ με τις σωστές παρατηρήσεις και τις λύσεις των υπολοίπων, και απλά απαντώντας στην ερώτησή σου που παραθέτω παραπάνω, για να καλύψουμε και τις βάρδιες που αρχίζουν πριν τα μεσάνυχτα και τελειώνουν μετά, αρκεί να αλλάξεις τον τύπο πίνακα που σου έδωσα για το Β5
από =SUM(IF((D5:AH5)<>"";TIMEVALUE(RIGHT(D5:AH5;5))-TIMEVALUE(LEFT(D5:AH5;5));0))
σε =SUM(IF((D5:AH5)<>"";1*(TIMEVALUE(LEFT(D5:AH5;5))>TIMEVALUE(RIGHT(D5:AH 5;5)))+TIMEVALUE(RIGHT(D5:AH5;5))-TIMEVALUE(LEFT(D5:AH5;5));0))
και αυτός είναι τύπος πίνακα οπότε κλείνεις με Ctr+Shift+Enter αντί απλά Enter.

Θανάσης.
ΥΓ. τα μεσάνυκτα πρέπει να καταχωρούνται σαν 00:00 και όχι 24:00

bill72 26-03-12 07:40

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

Thanosp 26-03-12 21:58

1 Συνημμένο(α)
Καλησπέρα στην παρέα

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

MANVLIS 07-01-15 22:32

Παράθεση:

Αρχική Δημοσίευση από Spirosgr (Μήνυμα 10166)
Βασίλη
Εισάγεις έναρξη λήξη ωραρίου και αποχώρηση εργαζομένου
το υπόλοιπο σενάριο παραμένει το ίδιο

Πολύ χρήσιμο και δουλεύει άψογα, στα σύνολα ακόμα και με αρνητικές ώρες υπερωρίας ( δηλαδή με ώρες εργασίας λιγότερες από αυτές του ωραρίου)

Ευχαριστώ πάρα πολύ:thumbup1:

Spirosgr 07-01-15 23:31

Ευχαριστώ κι εγώ.
Καλή συνέχεια!


Η ώρα είναι 08:45.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2