![]() |
Αφαίρεση ωρών και μετατροπή υπολοίπου σε ημέρες ώρες. 1 Συνημμένο(α) Καλησπέρα σε όλη την κοινότητα: χρειάζομαι την βοήθεια σας γιατί όσο και αν το προσπάθησα δεν κατάφερα τίποτα ανεβάζω ένα δείγμα αυτού που ζητάω ,στην φόρμα Πίνακας1 Ερώτημα θέλω την αφαίρεση ΔΙΚΑΙΟΥΜΕΝΑ-ΔΙΑΡΚΕΙΑΩΡΕΣ και αυτό που θα προκύψει το υπόλοιπο δηλαδή να μετατρέπεται σε ημέρες ώρες λεπτά εάν υπάρχουν , για παράδειγμα στην πρώτη εγγραφή 32-3=29 δηλαδή να φαίνεται 3ημέρες,5ώρες για κάθε ημέρα υπολογίζεται ένα 8ωρο γιατί πρόκειται για μεροκάματα σας ευχαριστώ . |
Κώστα, δοκίμασε στο ερώτημα, ένα νέο πεδίο με : Κώδικας: ΠΕΡΙΦΡΑΣΤΙΚΑ: Int(([ΔΙΚΑΙΟΥΜΕΝΑ]-[ΔΙΑΡΚΕΙΑ]*24)/8) & " οκτάωρα, |
1 Συνημμένο(α) Σπύρο κατ’ αρχήν σ’ ευχαριστώ πάρα πολύ για την άμεση απάντηση σου, ομολογώ ότι εξεπλάγην με το αποτέλεσμα και σίγουρα όσο και να προσπαθούσα δεν θα τα κατάφερνα γιατί οι γνώσεις μου δεν είναι τέτοιου επιπέδου , χωρίς να γίνομαι φορτικός και δεν ξέρω αν γίνεται βέβαια ανεβάζω και πάλι το δείγμα έχοντας περάσει τον τύπο σου στην φόρμα στο αποτέλεσμα που θα δεις αντί να μου βγάζει 2 οκτάωρα, 7 ώρες, 60 λεπτά δεν θα μπορούσε να γράφει 3 οκτάωρα ; |
1 Συνημμένο(α) Σπύρο έχεις δίκιο μάλλον δεν το διευκρίνισα σωστά μετά από πολύωρη εργασία το έστησα όπως ακριβώς ήθελα το ζητούμενο είναι το εξής: χρησιμοποιώ των τύπο =Int(Άθροισμα([ΔΙΑΡΚΕΙΑ]))*24+Hour(Άθροισμα([ΔΙΑΡΚΕΙΑ])) & ":" & Minute(Άθροισμα([ΔΙΑΡΚΕΙΑ])) για να βρω το άθροισμα των ωρών στο πάνω μέρος της φόρμας, αυτό που ζητάω στο παράδειγμα της φωτογραφίας είναι οι δικαιούμενες 32 μείων σύνολο ωρών 18:15 = 13,85 δηλαδή να μου βγάζει 1οκτάωρα,6ώρες,25λεπτά |
Καλησπέρα Κώστα κάνεις πολλές μετατροπές μονάδων με αποτέλεσμα σύγχυση και λάθη. Για παράδειγμα: 1) οι 18:15 (18 ώρες και 15 λεπτά) ισούνται με 18 +15/60 ώρες =18,25. Η διαφορά 32-18,25=13,75 ώρες και όχι 13,85 που γράφεις. 2) Οι 13,85 ώρες, όταν εκφραστούν σε οκτάωρα, ώρες και λεπτά είναι 1 οκτάωρο, 5 ώρες και 51 (0,85*60) λεπτά και όχι 1 οκτάωρο, 6 ώρες και 25 λεπτά. Προτείνω: 1) Να προσθέσεις στη φόρμα σου ένα πεδίο (μπορεί να είναι και κρυφό) οποίο θα ονομάσεις Η (αγγλικό) και στο οποίο θα υπολογίζεται η διαφορά= [ΔΙΚΑΙΟΥΜΕΝΕΣ]- Άθροισμα([ΔΙΑΡΚΕΙΑ])*24 σε ώρες (δεκαδικός αριθμός). 2) Το πεδίο Η είναι βοηθητικό και θα χρησιμοποιηθεί για να πάρεις την έκφραση, που θέλεις. Βάλε στο πεδίο που θέλεις την έκφραση τον τύπο: =H\8 & " Οκτάωρα, " & int(H-(H\8)*8) & " ώρες, " & (H-(H\8)*8-INT(H-(H\8)*8))*60 & " λεπτά" Φιλικά/Γιώργος |
3 Συνημμένο(α) Γιώργο καλησπέρα σ’ ευχαριστώ πολύ για την βοήθεια σου, έχεις απόλυτο δίκιο είναι αυτό που ζητάω όμως αν δεις τα παραδείγματα που ανέβασα χρειάζεται μια στρογγυλοποίηση ή εγώ δεν εφαρμόζω κάτι καλά; |
Κώστα χρειάζεται στρογγυλοποίηση. Είναι δύσκολο να δημιουργηθεί ένας τύπος λαμβάνοντας υπόψη μας και τις στρογγυλοποιήσεις. Για το λόγο αυτό προτείνω μια λύση με κώδικα VBA. 1) Θα πρέπει να αντιγράψεις την παρακάτω συνάρτηση σε μια μονάδα κώδικα (Module). Κώδικας: Public Function Expression(T As Variant) As Variant |
Γιώργο για μια φορά ακόμη θέλω να σε ευχαριστήσω με έβγαλες από πολύ κόπο γιατί θα αναγκαζόμουν χιλιάδες εγγραφές να τις κάνω χειροκίνητα μία προς μία αυτό ακριβώς ζητούσα. Να ΄σαι καλά. |
Κώστα δοκίμασε και την παρακάτω συνάρτηση, που είναι πιο σύντομη. Κώδικας: Public Function Expression(T As Variant) As Variant |
Οκ όλα καλά. |
Η ώρα είναι 02:25. |
Ms-Office.gr - ©2000 - 2025, Jelsoft Enterprises Ltd.