İki tarih arası kaç pazar var

emre8456

Altın Üye
Katılım
3 Aralık 2021
Mesajlar
63
Excel Vers. ve Dili
Ofis 365 türkçe
Altın Üyelik Bitiş Tarihi
30-03-2028
Sn: Arkadaşlar merhaba
Ad tanımla yöntemiyle iki tarih arasında kaç adet pazar günü var nasıl formüle edilir.
Tarihler hücrelerde yazılı olmayacak.
İlk tarih her zaman bugün olacak.
Son tarih de her zaman içinde bulunan ayın son günü olacak.
 

Muzaffer Ali

Destek Ekibi
Destek Ekibi
Katılım
5 Haziran 2006
Mesajlar
6,167
Excel Vers. ve Dili
2019 Türkçe
Merhaba.
Dener misiniz?
Kod:
=YUKARIYUVARLA(((SERİAY(AY(EĞER(ŞİMDİ()+(7-(HAFTANINGÜNÜ(ŞİMDİ())))>TARİH(YIL(ŞİMDİ());AY(ŞİMDİ());SERİAY(AY(ŞİMDİ());0));TARİH(YIL(ŞİMDİ());AY(ŞİMDİ());SERİAY(AY(ŞİMDİ());0));ŞİMDİ()+(7-(HAFTANINGÜNÜ(ŞİMDİ())))));0))-(GÜN(EĞER(ŞİMDİ()+(7-(HAFTANINGÜNÜ(ŞİMDİ())))>TARİH(YIL(ŞİMDİ());AY(ŞİMDİ());SERİAY(AY(ŞİMDİ());0));TARİH(YIL(ŞİMDİ());AY(ŞİMDİ());SERİAY(AY(ŞİMDİ());0));ŞİMDİ()+(7-(HAFTANINGÜNÜ(ŞİMDİ())))))))/7;0)
 

antonio

Destek Ekibi
Destek Ekibi
Katılım
13 Şubat 2011
Mesajlar
1,161
Excel Vers. ve Dili
Microsoft Office Professional Plus 2013 Türkçe
Merhaba,
Bunun için bir fonksiyon kullanışlı olabilir diye düşündüm. Aşağıdaki fonksiyonu kod penceresinde bir modül içine yapıştırınız.
Kod:
Function BU_AY_PAZAR_SAYISI()
Dim ilk As Date, son As Date, ay As Byte, sene As Long, gun As Byte
Dim sg As Byte, say As Byte, n As Byte, tarih As Date, i As Byte

ay = Month(Date)
sene = Year(Date)
ilk = DateSerial(sene, ay, 1)
sg = Day(DateSerial(sene, ay + 1, 1) - 1)
son = DateSerial(sene, ay, sg)
n = 0

For i = 1 To sg
    tarih = DateSerial(sene, ay, i)
    If Weekday(tarih, vbMonday) = 7 Then
        n = n + 1
    End If
    tarih = DateAdd("d", 1, tarih)
   
Next i
BU_AY_PAZAR_SAYISI = n
End Function
Sonra herhangi bir hücreye
Kod:
=BU_AY_PAZAR_SAYISI()
yazarak sonucu görebilirsiniz.
Kolay gelsin.
 
Son düzenleme:

DoğanD

Altın Üye
Katılım
22 Eylül 2023
Mesajlar
427
Excel Vers. ve Dili
Office 365 TR
Altın Üyelik Bitiş Tarihi
05-10-2028
Merhaba,

Alternatif olarak aşağıdaki gibi de dener misiniz?

Kod:
=HAFTASAY(SERİAY(BUGÜN();0);1)-HAFTASAY(BUGÜN();1)
 

emre8456

Altın Üye
Katılım
3 Aralık 2021
Mesajlar
63
Excel Vers. ve Dili
Ofis 365 türkçe
Altın Üyelik Bitiş Tarihi
30-03-2028
Merhaba.
Dener misiniz?
Kod:
=YUKARIYUVARLA(((SERİAY(AY(EĞER(ŞİMDİ()+(7-(HAFTANINGÜNÜ(ŞİMDİ())))>TARİH(YIL(ŞİMDİ());AY(ŞİMDİ());SERİAY(AY(ŞİMDİ());0));TARİH(YIL(ŞİMDİ());AY(ŞİMDİ());SERİAY(AY(ŞİMDİ());0));ŞİMDİ()+(7-(HAFTANINGÜNÜ(ŞİMDİ())))));0))-(GÜN(EĞER(ŞİMDİ()+(7-(HAFTANINGÜNÜ(ŞİMDİ())))>TARİH(YIL(ŞİMDİ());AY(ŞİMDİ());SERİAY(AY(ŞİMDİ());0));TARİH(YIL(ŞİMDİ());AY(ŞİMDİ());SERİAY(AY(ŞİMDİ());0));ŞİMDİ()+(7-(HAFTANINGÜNÜ(ŞİMDİ())))))))/7;0)
Muzaffer Ali çok teşekkür ederim
 

emre8456

Altın Üye
Katılım
3 Aralık 2021
Mesajlar
63
Excel Vers. ve Dili
Ofis 365 türkçe
Altın Üyelik Bitiş Tarihi
30-03-2028
Merhaba,
Bunun için bir fonksiyon kullanışlı olabilir diye düşündüm. Aşağıdaki fonksiyonu kod penceresinde bir modül içine yapıştırınız.
Kod:
Function BU_AY_PAZAR_SAYISI()
Dim ilk As Date, son As Date, ay As Byte, sene As Long, gun As Byte
Dim sg As Byte, say As Byte, n As Byte, tarih As Date, i As Byte

ay = Month(Date)
sene = Year(Date)
ilk = DateSerial(sene, ay, 1)
sg = Day(DateSerial(sene, ay + 1, 1) - 1)
son = DateSerial(sene, ay, son)
n = 0

For i = 1 To sg
    tarih = DateSerial(sene, ay, i)
    If Weekday(tarih, vbMonday) = 7 Then
        n = n + 1
    End If
    tarih = DateAdd("d", 1, tarih)
   
Next i
BU_AY_PAZAR_SAYISI = n
End Function
Sonra herhangi bir hücreye
Kod:
=BU_AY_PAZAR_SAYISI()
yazarak sonucu görebilirsiniz.
Kolay gelsin.
sayın antonio çok teşekkür ederim
 

emre8456

Altın Üye
Katılım
3 Aralık 2021
Mesajlar
63
Excel Vers. ve Dili
Ofis 365 türkçe
Altın Üyelik Bitiş Tarihi
30-03-2028
Merhaba,

Alternatif olarak aşağıdaki gibi de dener misiniz?

Kod:
=HAFTASAY(SERİAY(BUGÜN();0);1)-HAFTASAY(BUGÜN();1)
sayın Doğand sizin yazdığınız formülde çalıştı. Teşekkürler
 
Üst