Saatleri saat formatında yazdırma

Katılım
19 Haziran 2017
Mesajlar
216
Excel Vers. ve Dili
365
Altın Üyelik Bitiş Tarihi
05-04-2024
Merhaba

A sutununda ki veriler saattir. dakika değildir.

a1 60,5
a2 30.5
a3 18
a4 55

bu 60,5 verisi saattir. saat fomatında yazılırken 60:30:00 dk yazılmasını istiyorum. Ancak yapamadım, ve bu yazılan saatleri en son toplayabilmeliyim.

Yardımcı olan herkese şimdiden teşekkür ederim.
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,372
Excel Vers. ve Dili
Ofis 365 Türkçe
Merhaba,

Bir hücreye 24 yazın ve o hücreyi kopyalayın

Verilerinizi seçiin
Özel Yapıştır
Böl
Tamam

Verilerinizi Özel Hücre Biçiminden

Kod:
[s]:dd:nn
Şeklinde biçimlendirin.
 

Mahir64

Destek Ekibi
Destek Ekibi
Katılım
19 Nisan 2006
Mesajlar
6,677
Excel Vers. ve Dili
Excel 2013-Türkçe
Excel 2016-Türkçe
Merhaba,

Alternatif olsun.
Necdet beyin önerisinin formül hali.
Kod:
=METNEÇEVİR(A1/24;"[s]:dd:nn")
 
Katılım
29 Mayıs 2021
Mesajlar
1
Excel Vers. ve Dili
2019 TR,EN
Altın Üyelik Bitiş Tarihi
29-05-2023
Merhaba,
Sanırım bu macro işinizi görecektir. Çalışmanıza modül olarak ekleyin. Cevir_DDS ile hücre içerisindeki veriyi saat derece dakiya çevirir. Cevir_Ondalık ile bu işlemin tersini yapabilirsiniz. Github linkindeki macro negatifleri yanlış hesapladığı için üzerinde biraz oynayarak bu hale getirdim. Formülün kullanımında ufak bir eksik var formül içerisine yazılan değeri hesaplamıyor. Herhangi bir hücre içerisinden veri aktarılması gerek.Macro olayında yeni olduğum için henüz ekleyemedim.



Kod:
Function Cevir_DDS(Decimal_Deg) As Variant
    With Application
    If Decimal_Deg.Value < 0 Then
    Decimal_Deg = -Decimal_Deg
        derece = Int(Decimal_Deg)
        dakika = Format((Int((Decimal_Deg - derece) * 60)), "00")
        saniye = Format((((((Decimal_Deg - derece) * 60) - Int((Decimal_Deg - derece) * 60)) * 60)), "00.00000")
                Cevir_DDS = "-" & derece & "° " & dakika & "' " _
            & saniye + Chr(34)
            Else
        derece = Int(Decimal_Deg)
        dakika = Format((Int((Decimal_Deg - derece) * 60)), "00")
        saniye = Format((((((Decimal_Deg - derece) * 60) - Int((Decimal_Deg - derece) * 60)) * 60)), "00.00000")
        Cevir_DDS = " " & derece & "° " & (dakika) & "' " _
            & saniye + Chr(34)
            End If
    End With
End Function
Function Cevir_Ondalık(Degree_Deg As String) As Double
   Dim derece As Double
   Dim dakika As Double
   Dim saniye As Double
   Dim Kontrol As Variant
   Dim d2k As Double
   derece = Val(Left(Degree_Deg, InStr(1, Degree_Deg, "°") - 1))
   d2k = Mid(Degree_Deg, 1, 2) & Val(Right(Degree_Deg, 12)) & Val(Right(Degree_Deg, 8))
   dakika = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "°") + 2, _
             InStr(1, Degree_Deg, "'") - InStr(1, Degree_Deg, _
             "°") - 2)) / 60
    saniye = Val(Mid(Degree_Deg, InStr(1, Degree_Deg, "'") + _
            2, Len(Degree_Deg) - InStr(1, Degree_Deg, "'") - 2)) _
            / 3600
    If d2k < 0 Then
        Cevir_Ondalık = derece - dakika - saniye
        Else
        Cevir_Ondalık = derece + dakika + saniye
     End If
End Function
 
Üst