Excel - Ερωτήσεις / Απαντήσεις Ότι έχει σχέση με συναρτήσεις, μορφοποίηση, εκτυπώσεις γραφήματα κτλ. |
| Εργαλεία Θεμάτων | Τρόποι εμφάνισης |
#1
| |||
| |||
Excel Υπολογισμοί ωραρίων - ωρών, προβλήματα
Αγαπητέ διαχειριστή Αγαπητοί επισκέπτες Παρακολουθώ και επισκέπτομαι τακτικά τη σελίδα σας αφού τη βρίσκω εξαιρετικά ενδιαφέρουσα και χρήσιμη, το τελευταίο δε διάστημα έχω δημιουργήσει και λογαριασμό μέλους. Σήμερα θα ήθελα να σας εκθέσω ένα θέμα που με έχει ταλαιπωρήσει αρκετά. Σε υπολογισμούς ωρών, ωραρίων, όταν χρησιμοποιείται ένας τύπος - συνάρτηση για την αφαίρεση του 7,5 - 7,5 που θεωρητικά μας δίνει αποτέλεσμα 0 (μηδέν), το Excel δημιουργεί ένα ανεξήγητο bag και δίνει ένα αποτέλεσμα με πάρα πολλά δεκαδικά ψηφία. Στο αναφερόμενο παράδειγμα χρησιμοποιούμε φύλλα του Excel για την καταχώρηση των εβδομαδιαίων προγραμμάτων εργασίας των Υπαλλήλων μιας εταιρείας, που λειτουργεί σε 24ωρη βάση όλες τις μέρες της εβδομάδος. Χρειάζεται να υπολογίζονται και να καταχωρούνται οι ώρες εργασίας και οι υπερωρίες των υπαλλήλων σε καθημερινή βάση για όλο το προσωπικό. Το πρόβλημα αυτό εμφανίζεται μόνο στο ωράριο 10:00 - 17:30 και σε κανένα άλλο, παρ' όλο που χρησιμοποιούνται προφανώς οι ίδιες ακριβώς συναρτήσεις για όλα τα ωράρια. Ευχαριστώ |
#2
| |||
| |||
Καλησπέρα Άκη, δεν πρόκειται για λάθος του excel. Το excel, όπως και άλλα προγράμματα, για την αποθήκευση των αριθμών χρησιμοποιεί ένα περιορισμένο πλήθος ψηφίων. Έτσι υπάρχουν αριθμοί που αποθηκεύονται με απόλυτη ακρίβεια και άλλοι με προσέγγιση. Υπάρχει περίπτωση ένας υπολογισμός με θεωρητικό αποτέλεσμα 7,5 να δώσει ως αποτέλεσμα, λόγω των στρογγυλοποιήσεων που κάνει το excel, έναν αριθμό παραπλήσιο του 7,5, αλλά διαφορετικό. Η διαφορά τους συνεπώς θα είναι ένας αριθμός κοντά στο μηδέν, αλλά όχι μηδέν. Για την αντιμετώπιση αυτού του προβλήματος συνήθως χρησιμοποιείται η συνάρτηση ROUND(). Αν οι υπερωρίες υπολογίζονται με ακρίβεια δεκάτου, μπορείς να τις υπολογίζεις με ένα τύπο της μορφής: =IF(F64="";"";ROUND(F64-7,5;1)) Φιλικά/Γιώργος Τελευταία επεξεργασία από το χρήστη kapetang : 21-04-13 στις 22:50. Αιτία: διόρθωση ορθογραφικού λάθους |
#3
| |||
| |||
Kαλησπέρα μήπως με μορφοποίηση της περιοχής σε αριθμό , με δεκαδικά θανάσης |
#4
| |||
| |||
Σας ευχαριστώ όλους για τις απαντήσεις σας. Δεν υπήρξε άμεση δική μου παρέμβαση γιατί έλειψα για λίγες ώρες, χωρίς εκ παραδρομής να έχω αποσυνδεθεί. Το πρόβλημα θα έπρεπε να εμφανίζεται σε όλες τις αφαιρέσεις 7,5 - 7,5 άλλων ωραρίων (που δεν εμφανίζεται,) ενώ εμφανίζεται στην αφαίρεση που προέρχεται από ωράριο 10:00 - 17:30. Δεν αφορά δηλ. θέμα ακρίβειας υπολογισμού αφού σε όλες τις περιπτώσεις το αποτέλεσμα είναι μηδέν (ακριβώς,) όπως βλέπετε στο συνημμένο παράδειγμα και όχι περίπου μηδέν και μάλιστα στα είκοσι δεκαδικά ψηφία. Είναι εμφανές στο xlsx αν διευρύνουμε τις στήλες πάρα πολύ. Άκης |
#5
| |||
| |||
Καλησπέρα Στο κελί G68 από την τιμή του κελιού F68 αφαιρείται το 7,5. Αν σε κάποιο κελί βάλουμε τον τύπο: =F68=7,5 θα πάρουμε TRUE (δηλαδή F68=7,5). Υπολογίζοντας όμως το excel την παράσταση F68-7,5 , λόγω στρογγυλοποιήσεων, δε δίνει το αναμενόμενο αποτέλεσμα, που είναι το μηδέν, αλλά ένα αρνητικό αριθμό πολύ κοντά στο μηδέν. Αν βάλουμε σε κάποιο κελί τον τύπο: =F68-7,5=0 θα πάρουμε FALSE (δηλαδή το αποτέλεσμα της πράξης F68-7,5<>0 ). Αυτή η συμπεριφορά, είναι παράλογη για την ανθρώπινη λογική, αλλά για τη λογική του PC φυσιολογική. Το παραπάνω πρόβλημα είναι πολύ γνωστό στους προγραμματιστές και όταν γράφουν κώδικα παίρνουν μέτρα για να το αντιμετωπίσουν. Για παράδειγμα αντί να γράψουν: If x=a Then … γράφουν: If Abs(x-a)<=e Then … (e πολύ μικρός θετικός). Όπως πρότεινα και στο προηγούμενο μήνυμά μου το πρόβλημα στο excel μπορεί να αντιμετωπιστεί με τη συνάρτηση ROUND. Φιλικά/Γιώργος |
#6
| |||
| |||
Καλησπέρα Ο Γιώργος έχει δίκιο, με την διαφορά η στρογγυλοποίηση θα γίνει στο τύπο που δημιουργεί τα δεκαδικά δηλ =...(G65-F65+(G65<F65))*24 σε =....round((G65-F65+(G65<F65))*24;1) Θανάσης |
#7
| |||
| |||
Γιώργο, Θανάση, αγαπητοί φίλοι, καλησπέρα Πολύ αναλυτικές οι απαντήσεις σας και κατατοπιστικές. Όμως εξακολουθώ και αναρωτιέμαι, γιατί αυτή η "ιδιομορφία" του excel εμφανίζεται μόνο στο συγκεκριμένο υπολογισμό (10:00 - 17:30) και όχι στα υπόλοιπα ωράρια αφενός και αφετέρου, δεν εμφανίζεται στην αρχική διαδικασία υπολογισμών, που γίνονται με απλές πράξεις προσθαφαιρέσεων, (επάνω μέρος του φύλλου row 1;34), αλλά στη δεύτερη περίπτωση (row 44;74) όπου υπάρχουν τα κριτήρια αριθμών ή κενών κελιών. Τι είναι δηλ. αυτό που το "ενοχλεί" και δεν βγαίνουν οι πράξεις ακριβώς με το σωστό αποτέλεσμα. Τι διαφορά έχει το κελί G68 από το αντίστοιχο G28. Συγχωρέστε με που ξαναρωτάω, αλλά προσπαθώ να το ξεκαθαρίσω. Ευχαριστώ Άκης |
#8
| ||||
| ||||
Καλημέρα σε όλους! Άκη καλωσόρισες στο φόρουμ! Ο τύπος που χρησιμοποιείται στο G28 είναι: =F28-7,5 (δεν περιβάλλεται από παρενθέσεις) ενώ ο τύπος στο G68 είναι: =IF(F68="";"";F68-7,5) (περιβάλλεται από παρενθέσεις). Άρα μιλάμε για διαφορετικές προσεγγίσεις. Πιο απλά, αν στο G68 χρησιμοποιήσεις: =F68-7,5 το αποτέλεσμα θα είναι το αναμενόμενο ενώ αν στο G68 χρησιμοποιήσεις: =(F68-7,5) δεν θα πάρεις το στρογγυλοποιημένο από την Excel αποτέλεσμα ( 0 ) αλλά το ακριβές αποτέλεσμα (-1,77636E-15 η -2E-15). Βλέπουμε λοιπόν ότι η Excel (πολύ σωστά κατά τη γνώμη μου) δεν στρογγυλοποιεί τιμές όταν βρίσκονται μέσα στις παρενθέσεις ενός τύπου. Αυτό θα μπορούσε να προκαλέσει μεγαλύτερες αποκλίσεις στο τελικό αποτέλεσμα ενός τύπου με ότι συνεπάγεται απ' αυτό. Με εκτίμηση Τάσος
__________________ Ms-Office Development Team Ανάπτυξη επαγγελματικών εφαρμογών Τελευταία επεξεργασία από το χρήστη Tasos : 23-04-13 στις 08:55. |
#9
| |||
| |||
Καλημέρα Άκη, από τη φύση τους, τα σφάλματα στρογγυλοποίησης μπορεί να συμβαίνουν για κάποιους συνδυασμούς αριθμών, πράξεων και σειράς εκτέλεσης των πράξεων και για άλλους όχι. Οι δεκαδικοί αριθμοί που αντιστοιχούν στα ωράρια 10:10-17:30 είναι διαφορετικοί από αυτούς που αντιστοιχούν στα υπόλοιπα, συνεπώς δεν είναι αδικαιολόγητα τα διαφορετικά αποτελέσματα. Αν αναζητήσεις στο διαδίκτυο τη φράση excel precision , θα βρεις πάρα πολλά στοιχεία που εξηγούν το θέμα με κάθε λεπτομέρεια.. Φιλικά/Γιώργος |
#10
| |||
| |||
Καλησπέρα σε όλους Λόγω απουσίας δεν είχα δυνατότητα να συνδεθώ τις προηγούμενες ημέρες. Τάσο, Γιώργο σας ευχαριστώ για τις εξειδικευμένες λύσεις σας. Ομολογουμένως δεν τις είχα προσεγγίσει στο παρελθόν και μου παρέχουν σημαντική βοήθεια για την επίλυση και άλλων προβλημάτων, αλλά και την προτροπή για περαιτέρω μελέτη και εμβάθυνση. Όπως είδατε στο αναφερόμενο φύλλο, υπάρχουν αρκετά διαφορετικά ωράρια εκτός του 10:10 - 17:30, στα οποία δεν έχει προκύψει ζήτημα ακρίβειας αποτελέσματος, ούτε στην περίπτωση φερ' ειπείν υπερωριακής απασχόλησης που περιλαμβάνει αντίστοιχη ώρα 07:30 - 17:30 ή 10:00 - 22:00. Εν τέλει excel precision εμφανίζεται μόνο στο 10:10 - 17:30 και σε καμία άλλη περίπτωση, αυτό θεωρείτε είναι σύμπτωση, υπάρχει κάποια άλλη εξήγηση; Φιλικά Άκης |
« Προηγούμενο Θέμα
|
Επόμενο Θέμα »
| |
Παρόμοια Θέματα | ||||
Θέμα | Δημιουργός | Forum | Απαντήσεις | Τελευταίο Μήνυμα |
[Γράφημα] ΓΡΑΦΗΜΑ ΕΠΙΚΑΛΥΨΗΣ ΩΡΑΡΙΩΝ | GEORGE1 | Excel - Ερωτήσεις / Απαντήσεις | 5 | 25-11-17 22:43 |
[Excel07] διαφορα ωραριων | pnemtsa | Excel - Ερωτήσεις / Απαντήσεις | 6 | 29-11-16 11:03 |
Dlookup προβλήματα | mikekal1oo | Access - Ερωτήσεις / Απαντήσεις | 28 | 14-03-16 12:11 |
[ Φόρμες ] Υπολογισμοί σε κελιά | alexikakos | Access - Ερωτήσεις / Απαντήσεις | 4 | 31-10-12 18:58 |
[ Ερωτήματα ] Υπολογισμοί | xristos0718 | Access - Ερωτήσεις / Απαντήσεις | 4 | 16-01-12 21:27 |
Η ώρα είναι 09:32.