Note: The other languages of the website are Google-translated. Back to English
Σύνδεση  \/ 
x
or
x
Εγγραφή  \/ 
x

or

Πώς να μετατρέψετε τους δεκαδικούς βαθμούς σε μοίρες λεπτά δευτερόλεπτα στο Excel;

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

Μετατρέψτε τους δεκαδικούς βαθμούς σε μοίρες, λεπτά, δευτερόλεπτα με VBA

Μετατρέψτε μοίρες, λεπτά, δευτερόλεπτα σε δεκαδικά μοίρες με VBA

Office Tab Ενεργοποιήστε την επεξεργασία με καρτέλες και την περιήγηση στο Office και κάντε την εργασία σας πολύ πιο εύκολη ...
Το Kutools για Excel λύνει τα περισσότερα από τα προβλήματά σας και αυξάνει την παραγωγικότητά σας κατά 80%
  • Επαναχρησιμοποίηση οτιδήποτε: Προσθέστε τους πιο χρησιμοποιούμενους ή σύνθετους τύπους, γραφήματα και οτιδήποτε άλλο στα αγαπημένα σας και χρησιμοποιήστε τους γρήγορα στο μέλλον.
  • Περισσότερα από 20 χαρακτηριστικά κειμένου: Εξαγωγή αριθμού από συμβολοσειρά κειμένου. Εξαγωγή ή κατάργηση μέρους των κειμένων. Μετατροπή αριθμών και νομισμάτων σε αγγλικές λέξεις.
  • Συγχώνευση εργαλείων: Πολλαπλά βιβλία εργασίας και φύλλα σε ένα. Συγχώνευση πολλαπλών κελιών / σειρών / στηλών χωρίς απώλεια δεδομένων. Συγχώνευση διπλών σειρών και αθροίσματος.
  • Διαχωριστικά εργαλεία: Διαχωρίστε δεδομένα σε πολλαπλά φύλλα με βάση την τιμή. Ένα βιβλίο εργασίας για πολλαπλά αρχεία Excel, PDF ή CSV. Μία στήλη σε πολλές στήλες.
  • Επικόλληση παράλειψης Κρυφές / φιλτραρισμένες σειρές; Καταμέτρηση και άθροισμα ανά χρώμα φόντου; Αποστολή εξατομικευμένων μηνυμάτων ηλεκτρονικού ταχυδρομείου σε πολλούς παραλήπτες μαζικά.
  • Σούπερ φίλτρο: Δημιουργήστε προηγμένα σχήματα φίλτρων και εφαρμόστε σε οποιοδήποτε φύλλο. Είδος ανά εβδομάδα, ημέρα, συχνότητα και άλλα. Φίλτρο με έντονη γραφή, φόρμουλες, σχόλια ...
  • Περισσότερα από 300 ισχυρά χαρακτηριστικά. Λειτουργεί με το Office 2007-2019 και 365. Υποστηρίζει όλες τις γλώσσες. Εύκολη ανάπτυξη στην επιχείρηση ή τον οργανισμό σας.

βέλος μπλε δεξιά φούσκα Μετατρέψτε τους δεκαδικούς βαθμούς σε μοίρες, λεπτά, δευτερόλεπτα με VBA


Ακολουθήστε τα παρακάτω βήματα για να μετατρέψετε τους δεκαδικούς βαθμούς σε μοίρες, λεπτά και δευτερόλεπτα με τον κωδικό VBA.

1. Κρατήστε ALT πατήστε το κουμπί F11 στο πληκτρολόγιο για να ανοίξετε ένα Microsoft Visual Basic για εφαρμογή παράθυρο.

2. κλικ Κύριο θέμα > Μονάδα μέτρησηςκαι αντιγράψτε το VBA στη λειτουργική μονάδα.

VBA: Μετατροπή δεκαδικού βαθμού σε βαθμό, λεπτά και δευτερόλεπτα

Sub ConvertDegree()
'Update 20130815
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
    num1 = Rng.Value
    num2 = (num1 - Int(num1)) * 60
    num3 = Format((num2 - Int(num2)) * 60, "00")
    Rng.Value = Int(num1) & "°" & Int(num2) & "'" & Int(num3) & "''"
Next
End Sub

3. κλικ τρέξιμο πατήστε το κουμπί F5 για να εκτελέσετε το VBA.

4. Εμφανίζεται ένας διάλογος στην οθόνη και μπορείτε να επιλέξετε τα κελιά που θέλετε να μετατρέψετε. Δείτε το στιγμιότυπο οθόνης:

5. κλικ OK, τότε τα επιλεγμένα δεδομένα μετατρέπονται σε βαθμό, λεπτά και δευτερόλεπτα. Δείτε το στιγμιότυπο οθόνης:

Άκρο: Η χρήση του παραπάνω κώδικα VBA θα χάσει τα αρχικά σας δεδομένα, οπότε καλύτερα να αντιγράψετε τα δεδομένα πριν εκτελέσετε τον κώδικα.


βέλος μπλε δεξιά φούσκα Μετατρέψτε μοίρες, λεπτά, δευτερόλεπτα σε δεκαδικά μοίρες με VBA

Μερικές φορές, μπορεί να θέλετε να μετατρέψετε τα δεδομένα σε μορφές σε μοίρες / λεπτά / δευτερόλεπτα σε δεκαδικά μοίρες, ο ακόλουθος κώδικας VBA μπορεί να σας βοηθήσει να το κάνετε γρήγορα.

1. Κρατήστε ALΚουμπί T και πατήστε F11 στο πληκτρολόγιο για να ανοίξετε ένα παράθυρο της Microsoft Visual Basic for Application.

2. κλικ Κύριο θέμα > Μονάδα μέτρησηςκαι αντιγράψτε το VBA στη λειτουργική μονάδα.

VBA: Μετατροπή βαθμού, λεπτά και δευτερόλεπτα σε δεκαδικό βαθμό

Function ConvertDecimal(pInput As String) As Double
'Updateby20140227
Dim xDeg As Double
Dim xMin As Double
Dim xSec As Double
xDeg = Val(Left(pInput, InStr(1, pInput, "°") - 1))
xMin = Val(Mid(pInput, InStr(1, pInput, "°") + 2, _
             InStr(1, pInput, "'") - InStr(1, pInput, _
             "°") - 2)) / 60
xSec = Val(Mid(pInput, InStr(1, pInput, "'") + _
            2, Len(pInput) - InStr(1, pInput, "'") - 2)) _
            / 3600
ConvertDecimal = xDeg + xMin + xSec
End Function

3. Αποθηκεύστε τον κωδικό και κλείστε το παράθυρο, επιλέξτε ένα κενό κελί, για παράδειγμα, το κελί A1, εισαγάγετε αυτόν τον τύπο = Μετατροπή δεκαδικού ("10 ° 27 '36" "") ("10 ° 27 '36" "" είναι ο βαθμός που θέλετε να μετατρέψετε σε δεκαδικό βαθμό, μπορείτε να τον αλλάξετε όπως χρειάζεστε) και, στη συνέχεια, κάντε κλικ εισάγετε κουμπί. Δείτε στιγμιότυπα οθόνης:


Σχετικά άρθρα

Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    Jon · 11 months ago
    WRONG calculation results... 29°30'13" 34°55'4" ---> 29.00083333 34.08333333
  • To post as a guest, your comment is unpublished.
    ValdrichF · 2 years ago
    The code has a assumes there is a space after ° and '. Change the 2's to 1's in the code to solve it.
    Function ConvertDecimal(pInput As String) As Double
    'Updateby20140227
    Dim xDeg As Double
    Dim xMin As Double
    Dim xSec As Double
    xDeg = Val(Left(pInput, InStr(1, pInput, "°") - 1))
    xMin = Val(Mid(pInput, InStr(1, pInput, "°") + 1, _
    InStr(1, pInput, "'") - InStr(1, pInput, _
    "°") - 1)) / 60
    xSec = Val(Mid(pInput, InStr(1, pInput, "'") + _
    1, Len(pInput) - InStr(1, pInput, "'") - 1)) _
    / 3600
    ConvertDecimal = xDeg + xMin + xSec
    End Function
  • To post as a guest, your comment is unpublished.
    Ritesh · 3 years ago
    @Sandeep Check your results. this code is wrong.
  • To post as a guest, your comment is unpublished.
    Sandeep · 3 years ago
    Works like a champ! Thanks for sharing!!!
  • To post as a guest, your comment is unpublished.
    Amjid afridi · 3 years ago
    @ahans step 1, Multiply numbers after decimal with 60 (0.5986740026*60)minutes=35.92044015 mean 35 mints
    spet 2, multiply the decimal after minute ie 0.9204401*60=55.2264
    so 317 degree 35 minuts 55 sec
  • To post as a guest, your comment is unpublished.
    RAMON GOMEZ · 3 years ago
    @Corny HI CORNY, NOT WORK FOR ME, EXCEL DO NOT ACCEPT THE FUNCTION..... WHATS WRONG? CAN YOU HELP ME?
  • To post as a guest, your comment is unpublished.
    ahans · 3 years ago
    please
    i want you help and write a computer program on paper to convert decimal of degree to degree minute and second.
    317.5986740026
    from ahans.
  • To post as a guest, your comment is unpublished.
    Corny · 3 years ago
    Not sure whats wrong with the code in the post from Ernie, but this is what I use to convert decimal degrees to DMS degrees in the spread sheet without using VB. The reference to the cell E33 is the cell containing the decimal degrees value.

    =CONCAT(FIXED(INT(B32), 0) , "°", FIXED(((B32 - INT(B32)) * 60), 0), "'", FIXED(((B32 - INT(B32) - INT(B32 - INT(B32))) * 3600), 0 ,TRUE), """)

    Good luck.
  • To post as a guest, your comment is unpublished.
    Ernie · 4 years ago
    Hello,
    I used the scrip to convert decimal to DMS however the code is wrong somewhere as it turned out 37.856908,-120.912469 to 37D 51M 25S, -121D 5M 15S
    This is way off....

    Anyone have a fix for this?
  • To post as a guest, your comment is unpublished.
    Ryan Smith · 4 years ago
    works great but how would i adapt the code to get more numbers for seconds?
  • To post as a guest, your comment is unpublished.
    Gregory · 4 years ago
    I want to plot the positions on a map and we not worry about N, S, E or W. I'm sure these could be added in with "if" statements.
    I have just used a very simple line of functions within the Excel spreadsheet.
    I want to go from Degrees (Decimal) to Degrees, Seconds (Decimal) Changing the negative values to positives as I know which hemispheres I am in. For me, cell E4 contained the target Lat or Long (Decimal).
    This is a bit easier than putting in some VBA code and can be enlarged to do DD,MM,SS

    =CONCATENATE(TRUNC(ABS(E4)),"°",FIXED((ABS(E4)-TRUNC(ABS(E4)))*60,2),"'")
  • To post as a guest, your comment is unpublished.
    Mou · 5 years ago
    Found this code very helpful. Great stuff!
  • To post as a guest, your comment is unpublished.
    Mort Wakeland · 5 years ago
    The most important thing to realize is that you cannot simply use superscript and small letter o for the degree symbol - this may be obvious to some, but not to me. I tried the superscript letter o and it did not work, I deleted the superscript letter o, and used Alt 0176 for the actual degree symbol and it worked!! I am confused as to why after the seconds there are extra sets of double quotes?
    36""") whereas in the subsequent comment if one simply uses =ConvertDecimal(A1) only a single set of quotes are used for seconds. Odd we can use single and double quotes and the thing works for minutes and seconds but superscript letter o does not?
    To check 27/60 = .45 smf 36/3600 = .01 add the two = .46 and add that to the degrees = 10.46 degrees. Hope this helps others? Mort
  • To post as a guest, your comment is unpublished.
    Levi · 6 years ago
    Really helpful.
    Thank you.
  • To post as a guest, your comment is unpublished.
    Gunnar · 6 years ago
    @Rajansinh Zala [quote name="Rajansinh Zala"]there is some error in code i tried to convert 26°10'55.416" using this code which results as 26.00139 which should be 26.18206 (Calculated & Verified.. please let me know if anyone knows the reason.[/quote]

    It seems the code expects a space after the ° and ' symbols.
    26° 10' 55.416" gives the correct answer.
    You can enter your input in a cell (eg A1) and get the result in another cell by using the formula =ConvertDecimal(A1). This is convenient if you have a many numbers to be converted.
  • To post as a guest, your comment is unpublished.
    Rajansinh Zala · 6 years ago
    there is some error in code i tried to convert 26°10'55.416" using this code which results as 26.00139 which should be 26.18206 (Calculated & Verified.. please let me know if anyone knows the reason.