SAYIYI SAAT OLARAK FORMATLAMAK

saka

Altın Üye
Katılım
24 Haziran 2023
Mesajlar
29
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
25-07-2028
Merhaba arkadaşlar,

Amacım, hücreye yazdığım sayıyı saat formatına çevirmek ve bunu başka bir hücreye formül yazmadan yapmak istemiyorum.

Hücreyi, HÜCRELERİ BİÇİMLENDİR'in SAYI grubu altındaki SAAT seçeneklerinden 13:30 veya İSTEĞE UYARLANMIŞ kategorisinden ss:dd olarak biçimlendiriyorum.

A1 hücresine 10 yazdığımda 10:00 şeklini almasını bekliyorum; ama 00:00 oluyor. Formül çubuğunda ise 10.01.1900 00:00:00 olarak görünüyor.

A1 hücresine 8,30 yazdığımda 08:30 şeklini almasını bekliyorum; ama 07:12 oluyor. Formül çubuğunda ise 08.01.1900 07:12:00 olarak görünüyor.

Anladığım kadarıyla benim sayıyı saate değil, Excel'in başlangıç zamanını esas alıp tarih ve saate çeviriyor.

Tarihten nasıl kurtulabilirim?
Sorunumu nasıl çözebilirim?




 

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
314
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Hücreye 10 yerine "=10/24", 8,30 yerine de "=8,5/24" yazarsanız istediğiniz sonucu verir. Tabi hücre biçimlendirmeyi ayarlamanız lazım
 

ccuneyt13

Altın Üye
Katılım
20 Ocak 2011
Mesajlar
392
Excel Vers. ve Dili
Office 365 Türkçe
Altın Üyelik Bitiş Tarihi
01-11-2026
Merhaba,
Aşağıdaki konunun talebinize uygun olduğunu düşündüğüm için paylaşıyorum.
4. mesaj çözüm için sizin istediğiniz sanırım.
12. mesajıda okumanızı öneririm.

 

saka

Altın Üye
Katılım
24 Haziran 2023
Mesajlar
29
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
25-07-2028
Hücreye 10 yerine "=10/24", 8,30 yerine de "=8,5/24" yazarsanız istediğiniz sonucu verir. Tabi hücre biçimlendirmeyi ayarlamanız lazım
Puantaj verileri giriyorum; amacım saati yazarken aradaki ÜST ÜSTE İKİ NOKTADAN kurtularak seri kayıt yapmak.
Öneriniz işimi daha da zorlaştırır.

Yine de teşekkürler.
 

saka

Altın Üye
Katılım
24 Haziran 2023
Mesajlar
29
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
25-07-2028
Merhaba,
Aşağıdaki konunun talebinize uygun olduğunu düşündüğüm için paylaşıyorum.
4. mesaj çözüm için sizin istediğiniz sanırım.
12. mesajıda okumanızı öneririm.

İsteğe uyarlanmış o yapı sadece görüntüyü kurtarıyor, hesaplamalarda saat işlemi yapmıyor.

Bunu makrosuz yapma imkanı yok galiba.
 

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
314
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Hücreye 10 yerine "=10/24", 8,30 yerine de "=8,5/24" yazarsanız istediğiniz sonucu verir. Tabi hücre biçimlendirmeyi ayarlamanız lazım
O zaman sabit olan değerleri "=" ve "/24" başka hücrelere yazarak birleştir formülü ile birleştirerek daha hızlı yapabilirsiniz.
 

walabi

Altın Üye
Katılım
22 Eylül 2012
Mesajlar
593
Excel Vers. ve Dili
excel 2010

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
Sanırım sayfanın makro kısmına ilgili sütundaki değişime bağlı olarak veri girişi sonrası formatsal çözüm olabilir.
 

saka

Altın Üye
Katılım
24 Haziran 2023
Mesajlar
29
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
25-07-2028
Sanırım sayfanın makro kısmına ilgili sütundaki değişime bağlı olarak veri girişi sonrası formatsal çözüm olabilir.
walabi, ifadeniz çok teknik, bir şey anlaşılmıyor.

Makro atanmalı, diyorsanız, önerdiğiniz makroyu yazabilir misiniz?
 

tugkan

Altın Üye
Katılım
6 Kasım 2004
Mesajlar
314
Excel Vers. ve Dili
Excel 2016
Türkçe 64 BIT
Altın Üyelik Bitiş Tarihi
16-10-2025
Sanırım aşağıdaki kod işinizi çözecektir. A sütunu için ayarladım.

Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cell As Range
    Dim Saat As Integer
    Dim Dakika As Integer
    Dim Zaman As Double
    
    ' A sütununda değişiklik olup olmadığını kontrol eder
    If Not Intersect(Target, Me.Columns("A")) Is Nothing Then
        Application.EnableEvents = False ' Döngüye girmemesi için etkinlikleri kapat
        For Each Cell In Target
            If IsNumeric(Cell.Value) Then
                ' Sayıyı saat ve dakikaya bölüyoruz
                Saat = Int(Cell.Value) ' Tam kısım saat
                Dakika = Round((Cell.Value - Saat) * 100) ' Ondalık kısım dakika
                
                ' Saat ve dakikayı zaman formatına dönüştürme
                Zaman = Saat / 24 + Dakika / 1440 ' 1 gün = 24 saat, 1 saat = 60 dakika (1440 dakika/gün)
                Cell.Value = Zaman
                Cell.NumberFormat = "hh:mm"
            End If
        Next Cell
        Application.EnableEvents = True ' Etkinlikleri yeniden aç
    End If
End Sub
Nasıl Çalışır?
  1. Saat ve Dakika Ayrıştırma: Girilen değerin tam kısmı saat olarak, ondalıklı kısmı ise dakikaya çevrilir.
  2. Dönüştürme: Dakikaları doğru şekilde hesaplayarak girilen değeri saat formatına çevirir.
    • Örneğin, 8,3 girdiğinizde 8 saat 30 dakika olarak hesaplanır.
Kullanım:
  1. Makroyu Excel'e Ekleyin: Alt + F11 ile VBA düzenleyicisini açıp ilgili çalışma sayfasına bu kodu yapıştırın.
  2. Excel'e geri dönün ve A sütununa sayılar girdiğinizde, sayıların doğru şekilde saat formatına dönüştüğünü göreceksiniz.
Örneğin:

  • 8,3 → 08:30
  • 10 → 10:00
  • 12,45 → 12:45
 

walabi

Altın Üye
Katılım
22 Eylül 2012
Mesajlar
593
Excel Vers. ve Dili
excel 2010

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
Excelin VBA kısmını hiç kullanmadıysanız bu gerekecektir. Yapılmadığı sürece dosya kaydederken sürekli bir uyarı alırsınız.

Dosya >> Seçenekler >> Güvenlik Merkezi >> Güvenlik Merkezi Ayarları >> Gizlilik Seçenekleri adımları sonrası açılan ekranda ,
"Kaydederken dosya özelliklerinden kişisel bilgileri kaldır" kutucuğunun işaretini kaldırın ve TAMAM deyin
 
Katılım
11 Temmuz 2024
Mesajlar
77
Excel Vers. ve Dili
Excel 2021 Türkçe
Şöyle bir makro işinize yarar düşüncesindeyim, deneyip sonucu paylaşabilir misiniz;


Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Zaman As Date
    Dim Hucre As Range
    Application.EnableEvents = False
    On Error GoTo ExitHandler
    For Each Hucre In Target
        If Not Intersect(Hucre, Range("A:A")) Is Nothing Then ' Giriş yapılacak sütunu ayarlayın
            If IsNumeric(Hucre.Value) Then
                Select Case Len(Hucre.Value)
                    Case 1, 2
                        ' Sadece saat girilmişse
                        Zaman = TimeSerial(Hucre.Value, 0, 0)
                    Case 3
                        ' 3 basamaklı sayıysa, örn. 830 ise 8:30
                        Zaman = TimeSerial(Int(Hucre.Value / 100), Hucre.Value Mod 100, 0)
                    Case 4
                        ' 4 basamaklı sayıysa, örn. 1030 ise 10:30
                        Zaman = TimeSerial(Int(Hucre.Value / 100), Hucre.Value Mod 100, 0)
                    Case Else
                End Select
                Hucre.Value = Zaman
                Hucre.NumberFormat = "hh:mm"
            End If
        End If
    Next Hucre
ExitHandler:
    Application.EnableEvents = True
End Sub
 

saka

Altın Üye
Katılım
24 Haziran 2023
Mesajlar
29
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
25-07-2028
Gelin makro kullanmadan çözelim bu sorunu.

Tablonun A sütununda işe giriş (A1 0830),
B sütununda işi bırakma (B1 1700) saatleri, parantez içinde olduğu gibi SAYI OLARAK yazılacak.
C1 hücresinde işçinin işyerinde bulunduğu süreyi DAKİKA olarak hesaplayacağız.
 
Katılım
11 Temmuz 2024
Mesajlar
77
Excel Vers. ve Dili
Excel 2021 Türkçe
Şu formülü deneyip sonucu paylaşabilir misiniz;

=(TAM(B1/100)*60 + MOD(SAYI.BIRİM(B1;100))) - (TAM(A1/100)*60 + MOD(SAYI.BIRİM(A1;100)))
 

saka

Altın Üye
Katılım
24 Haziran 2023
Mesajlar
29
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
25-07-2028
BU İŞLEM İÇİN ÇOK AZ BAĞIMSIZ DEĞİŞKEN GİRDİNİZ
mesajı veriyor.
 
Katılım
11 Temmuz 2024
Mesajlar
77
Excel Vers. ve Dili
Excel 2021 Türkçe
Şöyle deneyin;

=(TAM(B1/100)*60 + MOD(B1;100)) - (TAM(A1/100)*60 + MOD(A1;100))
 

saka

Altın Üye
Katılım
24 Haziran 2023
Mesajlar
29
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
25-07-2028
Bu sefer de
#AD?
hatası verdi.
 

saka

Altın Üye
Katılım
24 Haziran 2023
Mesajlar
29
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
25-07-2028
Excel'in hazır fonksiyon yeteneklerine inanıyorum.
Makro ile çözmek istemiyorum. :)
 

walabi

Altın Üye
Katılım
22 Eylül 2012
Mesajlar
593
Excel Vers. ve Dili
excel 2010

excel 2013
Altın Üyelik Bitiş Tarihi
06-08-2025
Veri girerken Shift + : yapmak istemiyorsunuz. Böyle anlıyorum. Saat formatını ortadan kaldırıp aşağıdakine benzer bir yapı işinizi görmez mi? Saat girerken sürekli tam sayı girmezsiniz. Mutlaka saat / dakika ayırmak için bir ayraç olmalı diye düşünüyorum. Sizin amacınız dakika cinsinden geçen zamanı bulmak ise cevap yazanlar buna göre yardımcı olurlar.

Giriş Saati

Çıkış Saati

Geçen Süre

Saat

Dakika

Toplam Dakika

8,3​

17,35​

9,05​

9

05

545​

 

Ekli dosyalar

saka

Altın Üye
Katılım
24 Haziran 2023
Mesajlar
29
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
25-07-2028
Evet walabi, amacım "dakika cinsinden geçen zamanı bulmak"
12 numaralı mesajda bunu söylemiştim zaten: C1 hücresinde işçinin işyerinde bulunduğu süreyi DAKİKA olarak hesaplayacağız.

Sizin önerinizde olduğu gibi sütun sayısını artırırsak farklı farklı çözümler bulunabilir.
Bunu tek bir hücrede (C1) formüle edebiliriz, diye umuyorum.

İlginize teşekkürler.
 
Üst