• DİKKAT

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

Son ödeme günü sorunu

Katılım
20 Eylül 2006
Mesajlar
27
Excel Vers. ve Dili
excel2002-Türkçe
Merhaba
Formda çok aradım ama bulamadım. Benim aradığım şu. Son ödeme tarihinin hafta sonuna veya resmi tatile rastlaması halinde takip eden ilk iş günü son ödeme günü oluyor. Örneğin borç bugün tebliğ edildi ve 15 gün süresi var. 15. gün tatile denk gelmiyorsa problem yok. Bunun formülü çok kolay. Ancak son gün tatile geliyorsa o zaman son günü tatili takip eden ilk iş gününe kaydıran bir formül lazım. Forumda izin hesabı ile ilgili formüller var ama bu formüllerde yalnız iş günü hesaba alınıyor. Benim işime yaramıyor. Benim aradığım 15 günlük süre içinde sadece iş günleri değil tatillerde sayılacak, sadece son gün tatile denk geliyorsa takip eden ilk iş gününü son gün olarak gösterecek. Buna ait formülü bana gönderirseniz sevinirim. Makrosuz, düz formül olmasında fayda var
 
son ödeme günü sorunu

Tekrar merhaba
Son ödeme gününün tatile denk gelmesi halinde tatili takip eden ilk iş gününü son ödeme günü olarak gösteren formülü size sormuştum. İlginize teşekürler hemen cevap geldi. Ancak gelen cevapta aradığımı bulamadım. Zaten soruyu göndermeden önce formdaki tüm konulara, anlatılanlara baktım, aradığımı bulamadığım için size yazdım. Aslında istediğim çok basit. Mesala borç 05.09.2008 tarihinde tebliğ edildi. Normalde son ödeme gününün 15 gün sonrasını bulmak çok kolay. En basitinden 05.09.2008+15 formulünü girdiğimizde sonuç 20.09.2008 çıkar. Ancak 20'si ve 21'i tatile geldiğinden son ödeme günü 22'si olacak. İşte benim istediğim bunu sağlayan formul. Sayfanın herhangi bir yerine o yıldaki tüm tatil günlerini yazacağım. Formül hesaplama yaparken son günün o tatil günlerine denk gelmesi halinde takip eden ilk iş gününü son ödeme günü olarak verecek. Buradan son gün tatile denk gelirse ilk iş gününe kayacak, yoksa diğer hesaplamarda olduğu gibi başından itibaren tam iş günlerini hesaplamayacak.Bu formülü oluşturmak sizin için çok kolaydır ama ben başaramadım. Sorunumu çözerseniz çok sevinirim. Şimdiden çok teşekkürler.
 
merhaba
A1 de başlangıç tarihi, B1 de gün varsa aşağıdaki formülü deneyiniz

=E&#286;ER(HAFTANING&#220;N&#220;(A1+B1;2)<6;(A1+B1);E&#286;ER(HAFTANING&#220;N&#220;(A1+B1;2)=6;(A1+B1+2);(A1+B1+1)))
 
Merhaba,

A1 : Başlangıç Tarihi
B1 : Ödeme Gün Süresi
C1 :

Kod:
=EĞER(HAFTANINGÜNÜ(A1+B1;2)>5;İŞGÜNÜ(A1+B1;1);A1+B1)
=IF(WEEKDAY(A1+B1;2)>5;WORKDAY(A1+B1;1);A1+B1)

WORKDAY(İŞGÜNÜ) bilgisayarınızda yoksa :

Araçlar
Eklentiler den
Analysis ToolPak ı yüklemelisiniz
 
İlginize çok teşekkür ederim. Yalnız zannederim konuyu ben tam anlatamadım. Verdiğiniz formülde de sadece son ödeme gününe denk gelen cumartesi-pazarı (haftanın günlerini) sonraki ilk iş gününe atlıyor. Ancak son ödeme günü cumartesi-pazar dışındaki resmi ve dini tatil günlerine denk geldiğinde bu formül işe yaramayacaktır. Bunun yerine örneğin birkaç aylık veya o yıldaki tatil günleri bir sütunda alt alta belirtilmeli, formül hesaplama yaparken o tatil günlerini taramalı, son gün bu tatil günlerinden birine veya birkaçına geldiğinde ilk iş gününe atlamalıdır. Toolpak çözümleyicisi veya exceldeki hazır fonksiyon ve işlevler sadece hafta sonu tatillerini esas aldığından istenen sonucu veremez. Örnek dosya ektedir
İlginiz için tekrar teşekkür ederim
 
Merhaba,

Kullan&#305;c&#305; Tan&#305;ml&#305; Fonksiyon yazmaya &#231;al&#305;&#351;t&#305;m. Dener misiniz?

Fonksiyon Ad&#305; : Son&#214;demeG&#252;n&#252;
1. Parametre : Bor&#231; Ba&#351;lang&#305;&#231; Tarihi
2. Parametre : &#214;deyece&#287;i G&#252;n Say&#305;s&#305;
3. Parametre : Resmi Tatil G&#252;nleri (Cumartesi, Pazar Hari&#231;, bu g&#252;nleri zaten otomatik hesapl&#305;yor)


Kod:
Function Son&#214;demeG&#252;n&#252;(Ba&#351;lang&#305;&#231;Tarihi As Date, &#214;demeS&#252;resiG&#252;n As Integer, Tatiller As Range)
If IsDate(Ba&#351;lang&#305;&#231;Tarihi) = False Or IsNumeric(&#214;demeS&#252;resiG&#252;n) = False Then
   Son&#214;demeG&#252;n&#252; = "Yanl&#305;&#351; De&#287;er"
   Exit Function
End If
Dim Adet As Integer, Tarih As Date, Durum As Boolean
Tarih = Ba&#351;lang&#305;&#231;Tarihi + &#214;demeS&#252;resiG&#252;n
Durum = False
Do
Haftan&#305;nG&#252;n&#252; = Weekday(Tarih, vbMonday)
Adet = Application.WorksheetFunction.CountIf(Tatiller, Tarih)
If Adet = 0 And Haftan&#305;nG&#252;n&#252; < 6 Then
    Durum = True
Else
    Tarih = Tarih + 1
End If
Loop While Durum = False
Son&#214;demeG&#252;n&#252; = Tarih
End Function

Not : Dosyadaki D ve E s&#252;tunlar&#305;n&#305;n bir anlam&#305; yok, tarihi kontrol etmek amac&#305;yla kulland&#305;m.
 
Herhalde arkada&#351;&#305;m&#305;z&#305;n i&#351;ine yaramad&#305; :)
 
merhaba
işine yaramışdır eminim.
bayramlar için tarihleri listelerken takıldı sanıyorum. aşure günü resmi tatil mi değil mi diye araştırıyor. bulsun geri dönecektir. :hihoho:
 
Elinize, yüreğinize, emeğinize sağlık, gönderdiğiniz formül işime yaradı. Bir ara kurban bayramı tatillerini ekledim, son ödeme gününün bulunduğu hücredeki formül AD hatası verdi ancak sonra onun sebebini de anladım, o eklemeleri yaparken makroları devre dışı bırakarak exceli açmıştım, sonra makroları etkinleştirerek exceli açtığımda herhangi bir hata vermediğini gördüm. Bu arada aşure günü resmi tatil sayılmıyor, uğraşıp aramanıza gerek yok. Hafta sonları, yılbaşı, resmi ve dini bayram günleri resmi tatil sayılıyor.
Tekrar teşekkürler, iyi çalışmalar.
 
Fonksiyonun do&#287;ru &#231;al&#305;&#351;t&#305;&#287;&#305;na sevindim.

G&#252;le g&#252;le kullan&#305;n&#305;z.
 
Geri
Üst