• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Saatleri saat formatında yazdırma

Katılım
19 Haziran 2017
Mesajlar
219
Excel Vers. ve Dili
365
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.
 
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.
 
Merhaba,

Alternatif olsun.
Necdet beyin önerisinin formül hali.
Kod:
=METNEÇEVİR(A1/24;"[s]:dd:nn")
 
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
 
Geri
Üst