• DİKKAT

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

İki tarih arası kaç pazar var

emre8456

Altın Üye
Katılım
3 Aralık 2021
Mesajlar
91
Excel Vers. ve Dili
Ofis 365 türkçe
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.
 
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)
 
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:
Merhaba,

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

Kod:
=HAFTASAY(SERİAY(BUGÜN();0);1)-HAFTASAY(BUGÜN();1)
 
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
 
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
 
Geri
Üst