Soru izin rapor durumunda günsay formülü

Katılım
9 Eylül 2010
Mesajlar
638
Excel Vers. ve Dili
2016&2019 TR
Değerli hocalarım personel izniyle ilgili yardımınıza ihtiyacım var Günsay formülü ile 1 eksik buluyorum. Ekli dosyada gerekli açıklamayı yaptım. Mümkünatı var ise kod ile yardımcı olabilir misiniz.
Kurum bilgisayarları dosya çıkışını engelliyor. Maalesef dosya yüklemesi yapamadım.

 

23.09.2022​

=BUGÜN()

  
     
     

Başlama

Bitiş

Gün/Toplam

istenilen sonuç

 

22.09.2022​

28.09.2022​

6​

2/7

S sütunundaki sonuçlar ilk değer izinde kaçıncı günü, ikinci değer ise toplam izin süresi.

23.09.2022​

02.10.2022​

9​

1/10

kod ya da formülle çözüm olabilir.

15.09.2022​

29.09.2022​

14​

9/15

 

22.09.2022​

29.09.2022​

7​

  

19.09.2022​

28.09.2022​

9​

  

17.09.2022​

26.09.2022​

9​

 

R sütunda Personelin izni 22sinde başlamış 28inde bitiyor. 7 gün izin almış, günsay 6 veriyor. 7 veren formüle ya da koda ihtiyacım var.

21.12.2018​

26.12.2018​

5​

  

16.09.2022​

23.09.2022​

7​

 

S sütunu açıklama için koydum tüm hesaplamalar R sütununda da yapılabilir. Mümkün değilse S sütunu da kalabilir.

 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
21,951
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

2/7 sonucunun nasıl olduğunu anlayamadım fakat, bitiş ve başlangıç gününü dahil ediyorsanız kullandığınız formülün sonuna +1 ekleyebilirsiniz.

=GÜNSAY(B2;A2)+1

Yada

=B2-A2+1

Gibi.
 
Katılım
9 Eylül 2010
Mesajlar
638
Excel Vers. ve Dili
2016&2019 TR
Yanıt için teşekkürler hocam. 2/7 yi açıklayayım. Ayın 22 sinde izne çıkmış bugün ayın 23 ü. İznin ikinci günü yani 2. 22 sinden 28 i dahil izne ayrılmış toplam izin gün sayısı 7. Yardıkcı sütun ile çözebildim sizin mantığı kullanarak ama pekişlevsel olmadı. Yinede teşekkürler hocam.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
21,951
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
İstediğiniz bu mu?
Veriler A2 ve B2 de düşünüldü.

=BUGÜN()-A2+1&"/"&B2-A2+1

.
 
Katılım
9 Eylül 2010
Mesajlar
638
Excel Vers. ve Dili
2016&2019 TR
Budur hocam. Çok teşekkürler. Peki bunu kod olarak yazabilmemiz mümkün müdür.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
21,951
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Çalışma sayfasının kod bölümüne kopyalayınız.
A ve B sütunlarına veri girince C sütununa istediğinizi değeri yazar.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Intersect(Target, Range("A:B")) Is Nothing Then Exit Sub
    With Target
        If .Count > 1 Then Exit Sub
        If .Row < 2 Then Exit Sub
        Cells(.Row, "C").NumberFormat = "@"
        If Cells(.Row, "A") <> "" And Cells(.Row, "B") <> "" Then
            Cells(.Row, "C") = Date - Cells(.Row, "A") + 1 & "/" & Cells(.Row, "B") - Cells(.Row, "A") + 1
        Else
            Cells(.Row, "C") = ""
        End If
    End With
End Sub
 
Katılım
9 Eylül 2010
Mesajlar
638
Excel Vers. ve Dili
2016&2019 TR
Teşekkürler hocam zihninize sağlık. Butona atasak kodlarda düzenleme gerekir mi? Veriyi elle girmiyorum. Sistemden indirdiğimiz dosyadan veri çekerek yapıyoruz işlemi. Pc başında olsam deneyecektim ama mobilden bağlanıyorum.
 

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
21,951
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Buton için:
Kod:
Sub test()
    
    Dim i As Long
    
    Application.ScreenUpdating = False
    Range("C2:C" & Rows.Count) = ""
    Range("C2:C" & Rows.Count).NumberFormat = "@"
    
    For i = 2 To Cells(Rows.Count, "A").End(xlUp).Row
        If Cells(i, "A") <> "" And Cells(i, "B") <> "" Then
            Cells(i, "C") = Date - Cells(i, "A") + 1 & "/" & Cells(i, "B") - Cells(i, "A") + 1
        End If
    Next i
    
     Application.ScreenUpdating = True
    
End Sub
 
Katılım
9 Eylül 2010
Mesajlar
638
Excel Vers. ve Dili
2016&2019 TR
Hocam zihninize sağlık. Çok teşekkürler.
 
Üst