Note: The other languages of the website are Google-translated. Back to English

Cum se convertesc grade zecimale în grade minute secunde în Excel?

Uneori, este posibil să aveți o listă de date afișate ca grade zecimale într-o foaie de lucru și acum trebuie să convertiți formatele zecimale în grade, minute și secunde formatate după cum se arată în următoarele capturi de ecran, cum puteți obține conversația rapid în Excel?

Convertiți grade zecimale în grade, minute, secunde cu VBA

Convertiți grade, minute, secunde în grade zecimale cu VBA

Fila Office Activați editarea și navigarea cu file în Office și faceți munca mult mai ușoară ...
Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%
  • Reutilizați orice: Adăugați cele mai utilizate sau complexe formule, diagrame și orice altceva la preferatele dvs. și reutilizați-le rapid în viitor.
  • Peste 20 de caracteristici text: Extrageți numărul din șirul de text; Extrageți sau eliminați o parte din texte; Conversia numerelor și valutelor în cuvinte în limba engleză.
  • Instrumente de îmbinare: Mai multe cărți de lucru și foi într-unul; Combinați mai multe celule / rânduri / coloane fără a pierde date; Combinați rândurile duplicate și suma.
  • Instrumente divizate: Împărțiți datele în mai multe foi bazate pe valoare; Un registru de lucru pentru mai multe fișiere Excel, PDF sau CSV; O coloană la mai multe coloane.
  • Lipiți săriți Rânduri ascunse / filtrate; Număr și sumă de Culoarea fundalului; Trimiteți e-mailuri personalizate către mai mulți destinatari în bloc.
  • Super Filtru: Creați scheme avansate de filtrare și aplicați oricăror foi; Sortează pe săptămână, zi, frecvență și multe altele; Filtru prin îndrăznețe, formule, comentarii ...
  • Peste 300 de caracteristici puternice; Funcționează cu Office 2007-2021 și 365; Suporta toate limbile; Implementare ușoară în întreprinderea sau organizația dvs.

săgeată albastru dreapta balon Convertiți grade zecimale în grade, minute, secunde cu VBA

Urmați pașii de mai jos pentru a converti grade zecimale în grade, minute și secunde cu codul VBA.

1. ține ALT și apăsați F11 pe tastatură pentru a deschide un Microsoft Visual Basic pentru aplicație fereastră.

2. clic Insera > Module, și copiați VBA în modul.

VBA: convertiți gradul zecimal în grade, minute și secunde

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. clic Alerga sau apăsați F5 pentru a rula VBA.

4. Un dialog afișat pe ecran și puteți selecta celulele pe care doriți să le convertiți. Vedeți captura de ecran:

5. clic OK, apoi datele selectate sunt convertite în grade, minute și secunde. Vedeți captura de ecran:

varful: Utilizarea codului VBA de mai sus vă va pierde datele originale, deci ar fi mai bine să copiați datele înainte de a rula codul.


săgeată albastru dreapta balon Convertiți grade, minute, secunde în grade zecimale cu VBA

Uneori, poate doriți să convertiți datele în grade / minute / secunde formatate în grade zecimale, următorul cod VBA vă poate ajuta să realizați rapid.

1. ține ALApăsați butonul T și apăsați F11 pe tastatură pentru a deschide o fereastră Microsoft Visual Basic pentru aplicație.

2. clic Insera > Module, și copiați VBA în modul.

VBA: convertiți gradul, minutele și secundele în grad zecimal

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. Salvați codul și închideți fereastra, selectați o celulă necompletată, de exemplu, celula A1, introduceți această formulă = ConvertDecimal ("10 ° 27 '36" "") ("10 ° 27 '36" "" reprezintă gradul pe care doriți să îl convertiți în grad zecimal, îl puteți modifica după cum doriți), apoi faceți clic pe Intrați buton. Vedeți capturi de ecran:


Articole relative

Comentarii (16)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Există o eroare în codul pe care am încercat să convertesc 26°10'55.416" folosind acest cod, care rezultă ca 26.00139, care ar trebui să fie 26.18206 (calculat și verificat... vă rog să-mi spuneți dacă cineva știe motivul.
Acest comentariu a fost redus la minimum de moderatorul de pe site
[citat] există o eroare în codul pe care am încercat să convertesc 26°10'55.416" folosind acest cod, care rezultă ca 26.00139, care ar trebui să fie 26.18206 (calculat și verificat... vă rog să-mi spuneți dacă cineva știe motivul.De Rajansinh Zala[/quote] Se pare că codul așteaptă un spațiu după simbolurile ° și '. 26° 10' 55.416" oferă răspunsul corect. Puteți introduce intrarea într-o celulă (de exemplu A1) și puteți obține rezultatul într-o altă celulă utilizând formula =ConvertDecimal(A1). Acest lucru este convenabil dacă aveți multe numere de fi convertit.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cu adevărat util. Mulțumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cel mai important lucru de realizat este că nu puteți folosi pur și simplu superscript și litera o mică pentru simbolul gradului - acest lucru poate fi evident pentru unii, dar nu pentru mine. Am încercat litera o superscript și nu a funcționat, am șters litera o superscript și am folosit Alt 0176 pentru simbolul gradului real și a funcționat!! Sunt confuz de ce după secunde există seturi suplimentare de ghilimele duble? 36"""), în timp ce în comentariul următor, dacă se folosește pur și simplu =ConvertDecimal(A1), este folosit doar un singur set de ghilimele pentru secunde. Ciudat putem folosi ghilimele simple și duble și lucrul funcționează timp de minute și secunde, dar litera superscript o nu? Pentru a verifica 27/60 = .45 smf 36/3600 = .01 adăugați cele două = .46 și adăugați asta la grade = 10.46 grade. Sper că acest lucru îi ajută pe alții? Mort
Acest comentariu a fost redus la minimum de moderatorul de pe site
Am găsit acest cod foarte util. Lucruri minunate!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vreau să trasez pozițiile pe o hartă și nu ne facem griji pentru N, S, E sau V. Sunt sigur că acestea ar putea fi adăugate cu afirmații „dacă”. Tocmai am folosit o linie foarte simplă de funcții în foaia de calcul Excel. Vreau să trec de la grade (zecimală) la grade, secunde (zecimală) Schimbarea valorilor negative în pozitive, deoarece știu în ce emisfere mă aflu. Pentru mine, celula E4 conținea țintă Lat sau Long (Decimal). Acest lucru este puțin mai ușor decât introducerea unui cod VBA și poate fi mărit pentru a face DD,MM,SS =CONCATENATE(TRUNC(ABS(E4)),"°",FIXED((ABS(E4)-TRUNC(ABS(E4) )))*60,2),"'")
Acest comentariu a fost redus la minimum de moderatorul de pe site
funcționează grozav, dar cum aș adapta codul pentru a obține mai multe numere pentru secunde?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună ziua, am folosit scrip pentru a converti zecimal în DMS, dar codul este greșit undeva, deoarece s-a dovedit 37.856908,-120.912469 la 37D 51M 25S, -121D 5M 15S Acest lucru este departe... Are cineva o soluție pentru asta?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Nu sunt sigur ce este în neregulă cu codul din postarea de la Ernie, dar asta este ceea ce folosesc pentru a converti grade zecimale în grade DMS în foaia de calcul fără a folosi VB. Referința la celula E33 este celula care conține valoarea gradelor zecimale. =CONCAT(FIXED(INT(B32), 0) , "°", FIXED(((B32 - INT(B32)) * 60), 0), "'", FIXED(((B32 - INT(B32) - INT(B32 - INT(B32))) * 3600), 0 ,TRUE), """) Mult succes.
Acest comentariu a fost redus la minimum de moderatorul de pe site
HI CORNY, NU MUNCEAZĂ LA MINE, EXCEL NU ACCEPTĂ FUNCȚIA..... CE S-A GREUT? MA POTI AJUTA?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Vă rog, vreau să mă ajutați și să scrieți un program de calculator pe hârtie pentru a converti zecimală de grade în grad minut și secundă. 317.5986740026 de la ahans.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Pasul 1, Înmulțiți numerele după zecimală cu 60 (0.5986740026*60) minute = 35.92044015 înseamnă 35 de menți
spet 2, înmulțiți zecimala după minut, adică 0.9204401*60=55.2264
deci 317 grade 35 minute 55 sec
Acest comentariu a fost redus la minimum de moderatorul de pe site
Funcționează ca un campion! Multumesc pentru partajare!!!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Verificați-vă rezultatele. acest cod este gresit.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Codul are o presupune că există un spațiu după ° și '. Schimbați 2 cu 1 din cod pentru a o rezolva.
Funcția ConvertDecimal(pInput As String) As Double
„Actualizare până în 20140227
Dim xDeg As Double
Dim xMin ca dublu
Dim xSec ca dublu
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
Sfârşit Funcţia
Acest comentariu a fost redus la minimum de moderatorul de pe site
Rezultate calcul greșite... 29°30'13" 34°55'4" ---> 29.00083333 34.08333333
Nu există comentarii postate aici încă
Lăsa comentarii
Postare ca invitat
×
Evaluează această postare:
0   Caractere
Locații sugerate

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL