Her ayın ilk çarşamba gününü bulmak

Katılım
30 Ekim 2009
Mesajlar
7
Excel Vers. ve Dili
2003 türkçe
öncelikle herkese iyi geceler. benim sorunum şu şekilde. a1 hücresine ayları rakam olarak girdiğimde o ayın ilk Çarşamba gününün tarihini otomatik olarak a2 hücresine atsın. Örneğin ocak ayı için 1 girdiğimde 06.01.2010 tarihi a2 hücresinde yazılsın.
 

Ekli dosyalar

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
Bir KTF ile yaptım ama fazla deneme fırsatım olmadı.
Formülü,
Kod:
=ayin_ilk_carsambasini_bul(1)
şeklinde kullanabilirsiniz.
Kod:
Function ayin_ilk_carsambasini_bul(ay_sayisi As Integer) As Date
    Dim a As Date
    a = DateSerial(Year(Date), ay_sayisi, 1)
    Select Case Format(a, "dddd")
        Case "Pazartesi": ayin_ilk_carsambasini_bul = a + 2
        Case "Salı": ayin_ilk_carsambasini_bul = a + 1
        Case "Çarşamba": ayin_ilk_carsambasini_bul = a
        Case "Perşembe": ayin_ilk_carsambasini_bul = a + 6
        Case "Cuma": ayin_ilk_carsambasini_bul = a + 5
        Case "Cumartesi": ayin_ilk_carsambasini_bul = a + 4
        Case "Pazar": ayin_ilk_carsambasini_bul = a + 3
    End Select
End Function
 
Katılım
30 Ekim 2009
Mesajlar
7
Excel Vers. ve Dili
2003 türkçe
sayın hmitcan, bu kodları nasıl yapacağımı anlamadım.örnekle anlatırsanız çok memnun olurum
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,712
Excel Vers. ve Dili
Excel 2019 Türkçe
Fonksiyonu bir Module içine yerleştirin.
Bir Excel sayfası içinde aşağıdaki formülü bir hücreye yazarak kullanabilirsiniz. Formüldeki "1" sayısı ay kesirini ifade ediyor.
=ayin_ilk_carsambasini_bul(1)
 
Katılım
30 Ekim 2009
Mesajlar
7
Excel Vers. ve Dili
2003 türkçe
teşekkürler

teşekkürler arkadaşım yardımları için saol. yalnız formülü her ay için değiştirmem gerekecek. eğer bir hücreye ayın rakamını yazsam da formül kendiliğinden değişse çok süper olacak. emeğine sağlık
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,243
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Selamlar,

Alternatif olarak B1 hücresine aşağıdaki formülü girip denermisiniz. Formül dizi formülüdür. Hücreye yazdıktan sonra CTRL+SHIFT+ENTER tuşlarına basarak tamamlayın. Aksi halde hatalı sonuç üretir.

Kod:
=EĞER(A1="";"";TARİH(YIL(BUGÜN());A1;MİN(EĞER(HAFTANINGÜNÜ(TARİH(YIL(BUGÜN());A1;SATIR($1:$31));2)=3;GÜN(TARİH(YIL(BUGÜN());A1;SATIR($1:$31)));"-"))))
 

Ekli dosyalar

Katılım
30 Ekim 2009
Mesajlar
7
Excel Vers. ve Dili
2003 türkçe
çok teşekkür ederim korhan bey tam istediğim gibi oldu, emeğinize sağlık
 

fkalelinet

Altın Üye
Katılım
15 Nisan 2009
Mesajlar
122
Excel Vers. ve Dili
MSOPP2019TR-64bit
Altın Üyelik Bitiş Tarihi
29-04-2025
haftanın 3. çarşambası için bi kaç deneme yaptım ama formülü nasıl revvize etmem gerekir acaba.
 

fkalelinet

Altın Üye
Katılım
15 Nisan 2009
Mesajlar
122
Excel Vers. ve Dili
MSOPP2019TR-64bit
Altın Üyelik Bitiş Tarihi
29-04-2025
Kod:
=EĞER(A1="";"";TARİH(YIL(BUGÜN());A1;MİN(EĞER(HAFTANINGÜNÜ(TARİH(YIL(BUGÜN());A1;SATIR($1:$31));2)=3;GÜN(TARİH(YIL(BUGÜN());A1;SATIR($1:$31)));"-"))))
formlün mantığı açısından sormuştum. yoksa mak deyip -7 yada min +14 ile bulabiliyorum ama formül çok karışık geldi.
 

fkalelinet

Altın Üye
Katılım
15 Nisan 2009
Mesajlar
122
Excel Vers. ve Dili
MSOPP2019TR-64bit
Altın Üyelik Bitiş Tarihi
29-04-2025
şimdi kontrol ettim. orjinal dosyadaki formülde de 9. ay yanlış bilgi veriyor. -7 yada +14 de hatalı sonuç veriyor aralık 31 çarşambaya denk geliyor -7 yapınca 3.üncü değil 4. çarşamba geliyor. ??
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Bu formülü kullanabilirsiniz;

Kod:
[FONT="Trebuchet MS"]=TARİH(YIL(BUGÜN());AY("1." &A1&"."& YIL(BUGÜN()));ELEMAN(HAFTANINGÜNÜ(TARİH(YIL(BUGÜN());AY("1." &A1&"."&YIL(BUGÜN()));1));4;3;2;1;7;6;5))[/FONT]
 

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Kod:
Belirli Bir Ayın n. Haftasının n. günününTarihini Bulma

Diyelim ki bir şirketin ödemeleri periyodik olarak yapılıyor ve bu her ayın 2. haftasının Cuma günü ödeme günü. Bu günü veren formül :

=A1+B1-HAFTANINGÜNÜ(A1;2)+(C1-(B1>=HAFTANINGÜNÜ(A1;2)))*7
=A1+B1-WEEKDAY(A1;2)+(C1-(B1>=WEEKDAY(A1;2)))*7

A1=Tarih (bu tarihten sonraki ödeme gününün tarihini bulacağız) ör:01.10.2005
B1=Haftanın Gün sayısı (1=Pazartesi, 2=Salı, .......7=Pazar) ör:Cuma Günü için 5
C1=Hafta Sayısı, ör: 2. haftanın Cuma günü
14.10.2005 olarak sonuca ulaşırız. (tarih serisidir, tarih olarak biçimlendirmek gerekir.
Bu formülü kullanarak artık her yıl anneler gününün hangi tarihe geldiğini bulmak herhalde zor olmasa gerek.

NOT : Hafta sayısı 4 ten büyük olursa, yani olmayan bir hafta değeri girilirse, formül gelecek ayı dikkate alarak değer verir. 2003 Excel versiyonunda bu durum böyle, önceki versiyonlarda ilk haftanın değerini verebilir.
Excel Dershanesinden alıntı.
 

fkalelinet

Altın Üye
Katılım
15 Nisan 2009
Mesajlar
122
Excel Vers. ve Dili
MSOPP2019TR-64bit
Altın Üyelik Bitiş Tarihi
29-04-2025
teşekkürler
Kod:
=TARİH(YIL(BUGÜN());AY("1." &M1&"."& YIL(BUGÜN()));ELEMAN(HAFTANINGÜNÜ(TARİH(YIL(BUGÜN());AY("1." &M1&"."&YIL(BUGÜN()));1));4;3;2;1;7;6;5))+14
bu kodla her ayın 3.cü çarşambasını
Kod:
=TARİH(YIL(BUGÜN());AY("1." &M1&"."& YIL(BUGÜN()));ELEMAN(HAFTANINGÜNÜ(TARİH(YIL(BUGÜN());AY("1." &M1&"."&YIL(BUGÜN()));1));2;1;7;6;5;4;3))+14
bununla da 3.pazartesini bulabildim.
tekrar teşekkürler.
 

Murat OSMA

Altın Üye
Altın Üye
Katılım
23 Mayıs 2011
Mesajlar
5,508
Excel Vers. ve Dili
Microsoft 365 TR-EN
Altın Üyelik Bitiş Tarihi
31-12-2028
Rica ederim, iyi günler.
 
Üst