Soru Veri olarak süre girişi ve Süre/Saat arasındaki fark

Katılım
18 Temmuz 2013
Mesajlar
72
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
12-03-2021
Merhabalar.

Ekteki dosyada, bir tezgahın çalışma süresini takip edebilmem için bir tablo hazırlamaya çalıştım. D sütunundaki veri, saat değil. Başlama ve bitiş arasındaki teorik farkı, yani iş süresini gösteriyor. Ancak, ben veriyi girerken saat olarak giriyor. Bir işin başlama saati ile bitiş saatini çıkartıp işin süresini hesaplamak ve bir sonraki işin başlangıç saatini üstteki işin bitiş saatinden çıkartarak da tezgahta kayıp olan süreyi hesaplamak istiyorum. Saatten saat çıkartınca doğru dakika ve saniye gösteriyor ancak, excel bunu saat olarak mı süre olarak mı algılıyor?

Bir de eğer mümkünse, mesela, 1sa7dk26sn olan bir iş süresini, 010726 yazdığımda otomatik olarak "01:07:26" diye ayırsın isterim. Bunun bir ayarı var mı yoksa makro sorusu mu, bilmiyorum. Konu başlığı yanlış yerde ise özür dilerim.

Teşekkür ederim.
 

Ekli dosyalar

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
Merhaba.
-- "SAAT mi SÜRE mi"konusu.
Örneğin I2 hücresine uygulayacağınız =(F3<>"")*(F3-F2+H2) şeklindeki bir formülün sonucu,
bir sonraki işin başlangıcı ile formülün uygulandığı satırdaki işin bitişi arasında geçen SÜREyi saat:dakika:saniye cinsinden gösterir.

Bu tür sürelerin toplamını aldığınızda sonuç 24 saatten fazla olursa alacağınız formül sonucu 1 günden yani 24 saatten artan kısım
gibi görünür ancak hücredeki DEĞER bu 1 günü de içermektedir.
Formül uygulanan hücrenin BİÇİMini, İSTEĞE UYARLANMIŞ seçeneğini kullanarak "[ss] : dd : nn" (aradaki BOŞLUKları silin)
şeklinde ayarlarsınız durum daha iyi anlaşılır ve sonuç, 1 günü aştığında da saat:dakika:saniye cinsinden görülebilir.

-- 010726 yazıldığında 01:07:26 olarak değiştirilmesi:
>> BİÇİM: Bunun için ilgili alanın BİÇİMini, İSTEĞE UYARLANMIŞ kısmından 00":"00":"00 olarak uygulamanız yeterli ancak.
Belirttiğim gibi işlem BİÇİM işlemi olacağından hücreye 010726 yazdığınızda hücredeki değer 10726 olur, sadece göründüğü biçimi
01:07:26 şeklindedir. Yani veri saat dakika filan değil 10726 SAYIsıdır ve bunun üzerinden yapacağınız işlemler SAAT işlemi değildir.


>> DEĞER: İllede 010726 şeklinde (ssddnn'yi temsilen 6 karakter) yazıp bunun gerçekten saat olarak 01:07:26 işleme tabi tutulabilmesi için
sanıyorum makro kullanmak gerekecek.
İlgili alanın/sütunun BİÇİMini METİN olarak ayarlayın, ardından da alt taraftan ilgili sayfanın adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi
seçtiğinizde açılacak VBA ekranında sağdaki boş alana aşağıdaki kod blokunu yapıştırın. (ben D sütunu için kodladım)
Rich (BB code):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Len(Target.Text) = 6 Then
    Target.NumberFormat = "[hh]:mm:ss"
    Target = TimeSerial(Mid(Target, 1, 2), Mid(Target, 3, 2), Mid(Target, 5, 2))
End If
End Sub
 
Katılım
18 Temmuz 2013
Mesajlar
72
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
12-03-2021
Merhaba.
-- "SAAT mi SÜRE mi"konusu.
Örneğin I2 hücresine uygulayacağınız =(F3<>"")*(F3-F2+H2) şeklindeki bir formülün sonucu,
bir sonraki işin başlangıcı ile formülün uygulandığı satırdaki işin bitişi arasında geçen SÜREyi saat:dakika:saniye cinsinden gösterir.


Bu tür sürelerin toplamını aldığınızda sonuç 24 saatten fazla olursa alacağınız formül sonucu 1 günden yani 24 saatten artan kısım
gibi görünür ancak hücredeki DEĞER bu 1 günü de içermektedir.
Formül uygulanan hücrenin BİÇİMini, İSTEĞE UYARLANMIŞ seçeneğini kullanarak "[ss] : dd : nn" (aradaki BOŞLUKları silin)
şeklinde ayarlarsınız durum daha iyi anlaşılır ve sonuç, 1 günü aştığında da saat:dakika:saniye cinsinden görülebilir.


-- 010726 yazıldığında 01:07:26 olarak değiştirilmesi:
>> BİÇİM: Bunun için ilgili alanın BİÇİMini, İSTEĞE UYARLANMIŞ kısmından 00":"00":"00 olarak uygulamanız yeterli ancak.
Belirttiğim gibi işlem BİÇİM işlemi olacağından hücreye 010726 yazdığınızda hücredeki değer 10726 olur, sadece göründüğü biçimi
01:07:26 şeklindedir. Yani veri saat dakika filan değil 10726 SAYIsıdır ve bunun üzerinden yapacağınız işlemler SAAT işlemi değildir.


>> DEĞER: İllede 010726 şeklinde (ssddnn'yi temsilen 6 karakter) yazıp bunun gerçekten saat olarak 01:07:26 işleme tabi tutulabilmesi için
sanıyorum makro kullanmak gerekecek.
İlgili alanın/sütunun BİÇİMini METİN olarak ayarlayın, ardından da alt taraftan ilgili sayfanın adına fareyle sağ tıklayıp KOD GÖRÜNTÜLEyi
seçtiğinizde açılacak VBA ekranında sağdaki boş alana aşağıdaki kod blokunu yapıştırın. (ben D sütunu için kodladım)
Rich (BB code):
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 4 And Len(Target.Text) = 6 Then
    Target.NumberFormat = "[hh]:mm:ss"
    Target = TimeSerial(Mid(Target, 1, 2), Mid(Target, 3, 2), Mid(Target, 5, 2))
End If
End Sub
Cevabınız için teşekkür ederim. Sütunu değiştirmek istersek,

Kod:
Target.Column = 4
ifadesindeki 4'ü mü değiştireceğiz, diye denedim. Ve oldu. Diğer sütunlarda da etkili olması için;

Kod:
Target.Column = 4,5,6
yazdım ama olmadı, ne yapmalıyım?



Teşekkür ederim.
 
Son düzenleme:

Ömer BARAN

Uzman
Katılım
8 Mart 2011
Mesajlar
12,997
Excel Vers. ve Dili
Office 2013 ( 32 bit ) TÜRKÇE
Altın Üyelik Bitiş Tarihi
(18.03.2020) - Uzman olduğu için tarih geçersiz oldu.
If (Target.column = 4 Or Target.column = 5 Or ....) And Len(.........Then
gibi sütun numaralarını yazıp aralarında OR olanları parantez içine almayı unutmadan deneyin.
 
Katılım
18 Temmuz 2013
Mesajlar
72
Excel Vers. ve Dili
2010
Altın Üyelik Bitiş Tarihi
12-03-2021
If (Target.column = 4 Or Target.column = 5 Or ....) And Len(.........Then
gibi sütun numaralarını yazıp aralarında OR olanları parantez içine almayı unutmadan deneyin.
Teşekkür ederim. Musait olunca kontrol edeceğim.
 
Üst