Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Γενικά] μετατροπή σε ωρα (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/709-metatropi-se-ora.html)

misirlis 22-08-10 12:35

μετατροπή σε ωρα
 
Καλησπέρα στην παρέα!

Το πρόβλημα μου είναι το εξης..

Θέλω να βαζω σε ενα κελη π.χ 1245 και να μου μετατρεπει σε ώρα 12:45
ευχαριστώ .

Iceland 22-08-10 15:42

Καλησπέρα στο Forum!


Φίλε Νίκο, αυτό που θέλεις δε μπορεί να γίνει γιατί ο αριθμός 1245 σαν αριθμός δε σχετίζεται με την ώρα 12:45.

Κάνε το εξής παράδειγμα: γράψε σε ένα κελί 12:45 (όπως το βλέπεις) και μετά κάνε δεξί κλικ, μορφοποίηση κελιών και πήγαινε στη κατηγορία αριθμός. Θα σου βγάλει 0,53 σαν αποτέλεσμα. Το ίδιο γίνεται και με άλλους αριθμούς αλλά είναι αδύνατο να τα συνδυάσεις.

Το καλύτερο που έχεις να κάνεις είναι να βάζεις απ'ευθείας την ώρα εκτός και αν κάποιος άλλος φίλος έχει να προτείνει κάτι άλλο πιο κοντά σε αυτό που θες.

Λυπάμαι που δε βοήθησα αλλά ουσιαστικά απέκλεισα!!

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

kapetang 22-08-10 16:49

Καλησπέρα

Αν ο αριθμός είναι στο κελί F4 και έχει τρία ή τέσσερα ψηφία, από τα οποία τα δύο τελευταία είναι τα λεπτά και τα υπόλοιπα (δύο ή ένα) οι ώρες, πιθανόν να εξυπηρετούσε ο τύπος: =LEFT(F4;LEN(F4)-2) & ":" & RIGHT(F4;2). Υπάρχει και ο τύπος:=TIME(LEFT(F2;LEN(F2)-2);RIGHT(F2;2);0), που θεωρώ καλύτερο.

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

Tasos 22-08-10 16:57

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

Νίκο, ο Γιώργος έχει δίκιο. Δεν γίνεται με κάποια μορφοποίηση κελιού να μετατρέψουμε το
1245 σε 12:45 και να μπορεί ταυτόχρονα να υπολογιστεί για να βγεί κάποιο άθροισμα κτλ.

Με τη βοήθεια της VBA και με μια μικρή προετοιμασία στο φύλλο θα μπορέσουμε να εμφανίζουμε την ώρα σε μορφή "ωω:λλ" σε μορφή κειμένου η οποία μπορεί να υπολογιστεί από την Excel σαν αριθμός ή ώρα!

1) Μορφοποίησε τις στήλες που θα πληκτρολογείται η ώρα ως κείμενο (Επιλογή στήλης και συνδυασμος πλήκτρων CTRL+1).

Συνημμένο Αρχείο 616

2) στην πρώτη γραμμή των στηλών που θα πληκτρολογείται η ώρα (πχ. στο κελί C1, D1, F1 κοκ.) να πληκτρολογήσεις την τιμή -1.
Έτσι, με βάση αυτή την τιμή, ο κώδικας παρακάτω θα μπορεί να ελέγξει αν προκειται για στήλη που πρέπει να γίνουν οι απαραίτητες αλλαγές.

3) Kανε δεξί κλικ στην καρτέλα του φύλλου και επίλεξε: "Προβολή κώδικα".
Στο παράθυρο που θα εμφανιστεί, επικόλλησε τον παρακάτω κώδικα:

Κώδικας:

Option Explicit
 
  Private Sub Worksheet_Change(ByVal Target As Range)        ' Target = το κελί που προκαλεί το συμβάν αυτό
      On Error Resume Next
      If Cells(1, Target.Column) <> -1 Then Exit Sub
      If Target.Row > 50 Or Target.Row < 2 Then Exit Sub ' αν η γραμμή του "Target" είναι
            'μεγαλύτερη του 50 ή μικρότερη του  2  τοτε δεν θα συνεχίσει η εκτέλεση του κώδικα.
            'Προσάρμοσε τα νούμερα αυτά στα μέτρα σου.


      If Target.Value = "" Then Exit Sub
      Application.EnableEvents = False
      Select Case Len(Target.Text)
          Case Is > 4
              Target.ClearContents
              Target.Select
              GoTo TheEnd
          Case Is = 4
              If Left(Target, 2) > 24 Or Right(Target, 2) > 59 Then
                  Target.ClearContents
                  Target.Select
                  GoTo TheEnd
              End If
              Target.Value = Left(Target, 2) & ":" & Right(Target, 2)
 
          Case Is = 3
              If Right(Target, 2) > 59 Then
                  Target.ClearContents
                  Target.Select
                  GoTo TheEnd
              End If
              Target.Value = "0" & Left(Target, 1) & ":" & Right(Target, 2)
          Case Is = 2
              If Target.Value > 23 Then
                  Target.ClearContents
                  Target.Select
                  GoTo TheEnd
              End If
              Target.Value = Format(Target, "00") & ":" & "00"
 
          Case Is = 1
              Target.Value = Format(Target.Text, "00") & ":" & "00"
      End Select
      If Target.Value = 0 Then Target.Value = "00:00"
 
  TheEnd:
      Application.EnableEvents = True
  End Sub

Δοκίμασε τον τρόπο λειτουργίας με διαφορες τιμές.

Αν κάπου υπαρχει κάποια απορία... εδώ είμαστε.

Καλη συνέχεια!

Φιλικά

Τάσος

misirlis 23-08-10 10:15

Καλημέρα στο forum!

Τάσο και Γιώργο,οι προτάσεις σας δούλεψαν άψογα και σας ευχαριστώ πολύ.

nisgia 24-08-10 01:07

Πολύ καλησπέρα στην αγαπητή παρέα!!!
Να ρίξω και εγώ μια πρόταση;

Θέτουμε λοιπόν την προσαρμοσμένη μορφοποίηση "0\:00" (χωρίς τα εισαγωγικά)
στη στήλη με τους αριθμούς, και αν θέλουμε να συμμετέχουν σε υπολογισμούς,
η μετατροπή τους σε τιμές ώρας μπορεί να γίνει με τον τύπο:
=TIME(INT(A1/100);MOD(A1;100);)

Έτσι λοιπόν, αν στο κελί Α1 εισάγουμε το "1245", θα εμφανιστεί το "12:45"
ενώ η επιστρεφόμενη τιμή του παραπάνω τύπου θα είναι το "0,53" (όλα χωρίς εισαγωγικά).

Ελπίζω να σας αρέσει.:dft009:
Γιάννης

kapetang 24-08-10 09:48

Καλημέρα στην παρέα
Γιάννη τη βρίσκω καταπληκτική!!!
Φιλικά/Γιώργος

Tasos 24-08-10 17:26

Καλησπέρα!

Σε περίπτωση χρήσης τύπου θα πρότεινα τον εξής τύπο:

Στο A1 έχουμε: 1245

Ο τύπος είναι: =--TEXT(A1;"00\:00") και μας επιστρέφει 0,53125

Φιλικά

Τάσος

kapetang 24-08-10 19:34

Καλησπέρα στην παρέα

Τάσο συγχαρητήρια και σε σένα!!!
Αποδείχθηκε και πάλι ότι μια απλή ερώτηση μπορεί να γίνει αφορμή για μια αρκετά διδακτική συζήτηση.
1. Είδαμε ότι αλλάζοντας την τιμή ενός κελιού πυροδοτείται το συμβάν Worksheet_Change, οπότε έχουμε τη δυνατότητα (γράφοντας τον κατάλληλο κώδικα) να την επικυρώσουμε, να την αλλάξουμε, κλπ.
2. Είδαμε και την ισχύ της μορφοποίησης.
Θα πρότεινα στο φόρουμ, αν δεν το έκανε, να παρουσιάσει το θέμα της μορφοποίησης λεπτομερέστερα.

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

nisgia 07-09-10 11:15

Παράθεση:

Αρχική Δημοσίευση από Tasos (Μήνυμα 3475)
Καλησπέρα!

Σε περίπτωση χρήσης τύπου θα πρότεινα τον εξής τύπο:

Στο A1 έχουμε: 1245

Ο τύπος είναι: =--TEXT(A1;"00\:00") και μας επιστρέφει 0,53125

Φιλικά

Τάσος

ΚΑΤΑΠΛΗΚΤΙΚΟΣ Ο ΤΑΣΟΣ!!! :victory:

Νομίζω Τάσο, πως σε αυτή την περίπτωση, με τον παραπάνω τύπο ανακάλυψες το ...άτομο!:wink:

@kapetang
Γιώργο, σ' ευχαριστώ για τα εύσημα!:happy:

Η μορφοποίηση ενός αριθμού, είναι απλά η περιγραφή της αλήθειας.
Η πραγματική αλήθεια είναι ο ίδιος ο αριθμός.:wink:

Φιλικά,
Γιάννης


Η ώρα είναι 18:36.

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


Search Engine Optimization by vBSEO 3.3.2