Tarihler Farkı 216 Adet

Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Merhabalar,
Belki çözümü çok basittir ama içinden çıkamadım.
AN hücresinden başlayıp Sonuna Kadar 216 hücrelik
giriş çıkış tarihleri var.
Numarası.....giriş(an)-çıkış(ao)-giriş(ap)-çıkış(aq)-giriş(ar)-çıkış(as)-......
diye devam edip excelin son sütununa kadar devam ediyor.
ben bunların arasındaki farkları
ak=yıl
al=ay
am=gün ..... yazdıracağım.

birde eğer en sonunda çıkışı yoksa çıkışını bugün görüp hesaplayacak.
formülle denedim uzadığı için kabul etmiyor.
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Bu dosyada 63 tanelik var ama 200 tane olanda var aralarında.
 
Son düzenleme:
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Sağolun hallettim
kod adıyla modül adını aynı yazmışım bende çok uzun olduğu için yapıyor sanıyordum yanlız tek problemim yılı 365 görmesi 360 olarak görmesini nasıl sağlayabiliriz?
kod bu:
Function tarihfark2(d1, d2) As Variant
Dim yilfarki As Integer
Dim ayfarki As Integer
Dim gunfarki As Integer
Dim tarih As Date
If d1 > d2 Then
tarih = d1
d1 = d2
d2 = tarih
End If
yilfarki = Year(d2) - Year(d1)
If DateSerial(Year(d2), Month(d1), Day(d1)) > d2 Then
yilfarki = yilfarki - 1
End If
If Month(d2) > Month(d1) Then
If Day(d2) >= Day(d1) Then
ayfarki = Month(d2) - Month(d1)
Else
ayfarki = Month(d2) - Month(d1) - 1
End If
Else
If Day(d2) >= Day(d1) Then
ayfarki = Month(d2) - Month(d1) + 12
If ayfarki = 12 Then ayfarki = 0
Else
ayfarki = Month(d2) - Month(d1) + 11
End If
End If
If Day(d2) >= Day(d1) Then
gunfarki = Day(d2) - Day(d1)
Else
gunfarki = Day(DateSerial(Year(d1), Month(d1) + 1, 1) - 1) - Day(d1) + Day(d2)
End If
tarihfark2 = gunfarki
End Function

Formülüde bu şekilde yazdım çok uzun oldu bilmiyorum kısa bir yolu varsa kontrolü daha iyi olur ama
=tarihfark(AO7-AN7+AQ7-AP7+AS7-AR7+AU7-AT7+AW7-AV7+AY7-AX7+BA7-AZ7+BC7-BB7+BE7-BD7+BG7-BF7+BI7-BH7+BK7-BJ7+BM7-BL7+BO7-BN7+BQ7-BP7+BS7-BR7+BU7-BT7+BW7-BV7+BY7-BX7+CA7-BZ7+CC7-CB7+CE7-CD7+CG7-CF7+CI7-CH7+CK7-CJ7+CM7-CL7+CO7-CN7+CQ7-CP7+CS7-CR7+CU7-CT7+CW7-CV7+CY7-CX7+DA7-CZ7+DC7-DB7+DE7-DD7+DG7-DF7+DI7-DH7+DK7-DJ7+DM7-DL7+DO7-DN7+DQ7-DP7+DS7-DR7+DU7-DT7+DW7-DV7+DY7-DX7+EA7-DZ7+EC7-EB7+EE7-ED7+EG7-EF7+EI7-EH7;0)
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
yanlız yukarda yazdığım eğer çıkışı yoksa bugün görme olayını yapamadım unutmuşum bu halde bu da bir işe yaramıyor.
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
formül

arkadaşım ben kodla değil formülle yaptım dosya ektedir...
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
Bu dosyada 63 tanelik var ama 200 tane olanda var aralarında.

Formülle işinize yarar mı? Bilmiyorum.

Formüller sonuçlar verdi ama doğru mu test etmedim.

Ancak kurduğum formülün mantığı sağlam.

AK2 hücresindeki formül:

=DATEDIF(SUMPRODUCT((COLUMN(AN2:IV2)=EVEN(COLUMN(AN2:IV2)))*(AN2:IV2));SUMPRODUCT((COLUMN(AN2:IV2)=ODD(COLUMN(AN2:IV2)))*(AN2:IV2));"Y")

AN2 hücresindeki formül:

=DATEDIF(SUMPRODUCT((COLUMN(AN2:IV2)=EVEN(COLUMN(AN2:IV2)))*(AN2:IV2));SUMPRODUCT((COLUMN(AN2:IV2)=ODD(COLUMN(AN2:IV2)))*(AN2:IV2));"YM")

AM2 hücresindeki formül:

=DATEDIF(SUMPRODUCT((COLUMN(AN2:IV2)=EVEN(COLUMN(AN2:IV2)))*(AN2:IV2));SUMPRODUCT((COLUMN(AN2:IV2)=ODD(COLUMN(AN2:IV2)))*(AN2:IV2));"MD")

Bu formüllerin mantığı şu:

"Giriş"ler çift sütunlarda, "Çıkış"lar tek sütunlarda olduğu dikkate alarak, tek sütunluların toplamından çift sütunluları toplamlarını aldıktan sonra DATEDIF fonksiyonu yardımı ile yıl, ay ve gün olarak iki toplanmış tarihler arasındaki farklar bulunmuştur.

Umarım bu yöntemle bulunan sonuçlar doğrudur.

Dosyanız ekte.

..
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Çok sağolun ikiside tam istediğim gibi olmuş teşekkürler.
Yanlız tek sorunum var oda daha önce dediğim gibi en son tarih bilgisinin olduğu yerde girişten sonra çıkış yoksa bugün olarak görmesi.
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
son hücre

Çok sağolun ikiside tam istediğim gibi olmuş teşekkürler.
Yanlız tek sorunum var oda daha önce dediğim gibi en son tarih bilgisinin olduğu yerde girişten sonra çıkış yoksa bugün olarak görmesi.
arkadaşım son hücremi yoksa yani "IU2" den mi bahsediyoruz...
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
1 gün kayıp var eksik yani diğerlerinde nasıl olur bilmiyorum.
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
boş

arkadaşım yani boş olan hücrelerdeki değerlerin bugünün tarihini mi almasını istiyorsun ?
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
denk gelen hücre yani illaki IU2 değil 2 öncesi yada sonrasıda olabilir.
hepsinin giriş çıkış sayısı aynı değil yani kiminin toplam 4 tane var kiminin 96 tane yada 97.
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
demek istediğim mantık şu yani toplam alırken hangi hücre boşsa oradaki değeri bugün olarak alması değil mi bi açabilir misin konuyu...
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
12.5.2005 girmiş 13.05.2005 çıkmış 14.05.2005 girmiş """"" çıkışı yok
bu olmayan yere bugünün tarihini koyarak hesaplasın.
eğer varsa koymayacak.
inşallah anlatabilmişimdir.
sizide yoruyorum kusura bakmayın.
 
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
bir iki tane denedim malesef yanlış hesaplıyor.
:(
ama formüller çok harikaydı :)
Not: Günde hata veriyor yani birisinde -11 çıkardı.
 
Katılım
15 Ocak 2007
Mesajlar
791
Excel Vers. ve Dili
2003 excel visual basic
etarihli

sn yurttas hocam bu etarihli formülü yanılmıyorsam Office 2007'de var değil mi çünkü bende böyle bir işlev yok ve doğru çalışıyor bu formülün açıklaması nedir acaba ? :)
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
sn yurttas hocam bu etarihli formülü yanılmıyorsam Office 2007'de var değil mi çünkü bende böyle bir işlev yok ve doğru çalışıyor bu formülün açıklaması nedir acaba ? :)
Office 2007'de olup olmadığını bilmiyorum. Ama Microsoft, bu fonksiyonu, Lotus 1-2-3 ile uyum sağlamak için eklediğini biliyorum.

ETARİHLİ - DATEDIF
İki tarih arasındaki gün, ay ve yıl sayısını hesaplamada kullanılır.

Sözdizimi:

ETARİHLİ(başlangıç_tarihi, bitiş_tarihi, birim)
DATEDIF(başlangıç_tarihi, bitiş_tarihi, birim)


Başlangıç_tarihi: Dönem tarihinin başlangıcını veya ilk kısmını belirten bir tarihtir.

Bitiş_tarihi: Dönem tarihinin bitişini veya sonunu belirten bir tarihtir.

Birim: Farkı istenilen bilgi türüdür:

Birim’in parametreleri:
"Y" Dönemdeki tamamlanmış yılların sayısı.

"M" Dönemdeki tamamlanmış ayların sayısı.

"D" Dönemdeki günlerin sayısı.

"MD" Başlangıç_tarihi ile bitiş_tarihi arasındaki gün farkı. Tarihlerdeki ay ve yıllar yok sayılır.

"YM" Başlangıç_tarihi ile bitiş_tarihi arasındaki ay farkı. Tarihlerdeki gün ve yıllar yok sayılır.

"YD" Başlangıç_tarihi ile bitiş_tarihi günleri arasındaki fark. Tarihlerdeki yıllar yok sayılır.


..
 
Son düzenleme:
Katılım
1 Haziran 2005
Mesajlar
105
Excel Vers. ve Dili
Excel 2003-Türkçe
Bu formüller tekli tarihlerde işe yarıyor ama iş benimki gibi bir duruma gelip çoğalınca bir yerde bize göre yanlış hesaplama yapıyor aylardanmı kaynaklanıyor 28 - 30 - 31 çekmesi gibi bilmiyorum.
iyi akşamlar..
 

Merhum İdris SERDAR

Moderatör
Yönetici
Katılım
21 Ekim 2005
Mesajlar
17,094
Excel Vers. ve Dili
Excel, 365 - İngilizce
Bu formüller tekli tarihlerde işe yarıyor ama iş benimki gibi bir duruma gelip çoğalınca bir yerde bize göre yanlış hesaplama yapıyor aylardanmı kaynaklanıyor 28 - 30 - 31 çekmesi gibi bilmiyorum.
iyi akşamlar..
Hangi formüller yanlış hesaplıyor?

Eğer DATEDIF=ETARİHLİ'den söz ediyorsanız, bildiğim kadarı ile bu yanlış hesaplamaz.

AK2 hücresindeki formül:

=E&#286;ER(DOLAYLI(E&#286;ER(BA&#286;_DE&#286;_DOLU_SAY(AN2:IV2)+S&#220;TUNSAY(A2:AJ2)+3<=26;PAR&#199;AAL("ABCDEFGHIJKLMNOPQRSTUVWXYZ";BA&#286;_DE&#286;_DOLU_SAY(AN2:IV2)+S&#220;TUNSAY(A2:AJ2)+3;1);PAR&#199;AAL("ABCDEFGHIJKLMNOPQRSTUVWXYZ";TAMSAYI((BA&#286;_DE&#286;_DOLU_SAY(AN2:IV2)+S&#220;TUNSAY(A2:AJ2)+3-1)/26);1)&PAR&#199;AAL("ABCDEFGHIJKLMNOPQRSTUVWXYZ";MOD(BA&#286;_DE&#286;_DOLU_SAY(AN2:IV2)+S&#220;TUNSAY(A2:AJ2)+3-1;26)+1;1))&1)="&#231;&#305;k&#305;&#351;";ETAR&#304;HL&#304;(TOPLA.&#199;ARPIM((S&#220;TUN(AN2:IV2)=&#199;&#304;FT(S&#220;TUN(AN2:IV2)))*(AN2:IV2));TOPLA.&#199;ARPIM((S&#220;TUN(AN2:IV2)=TEK(S&#220;TUN(AN2:IV2)))*(AN2:IV2));"Y");ETAR&#304;HL&#304;(TOPLA.&#199;ARPIM((S&#220;TUN(AN2:IV2)=&#199;&#304;FT(S&#220;TUN(AN2:IV2)))*(AN2:IV2));TOPLA.&#199;ARPIM((S&#220;TUN(AN2:IV2)=TEK(S&#220;TUN(AN2:IV2)))*(AN2:IV2))+BUG&#220;N();"Y"))

AN2 h&#252;cresindeki form&#252;l:

=E&#286;ER(DOLAYLI(E&#286;ER(BA&#286;_DE&#286;_DOLU_SAY(AN2:IV2)+S&#220;TUNSAY(A2:AJ2)+3<=26;PAR&#199;AAL("ABCDEFGHIJKLMNOPQRSTUVWXYZ";BA&#286;_DE&#286;_DOLU_SAY(AN2:IV2)+S&#220;TUNSAY(A2:AJ2)+3;1);PAR&#199;AAL("ABCDEFGHIJKLMNOPQRSTUVWXYZ";TAMSAYI((BA&#286;_DE&#286;_DOLU_SAY(AN2:IV2)+S&#220;TUNSAY(A2:AJ2)+3-1)/26);1)&PAR&#199;AAL("ABCDEFGHIJKLMNOPQRSTUVWXYZ";MOD(BA&#286;_DE&#286;_DOLU_SAY(AN2:IV2)+S&#220;TUNSAY(A2:AJ2)+3-1;26)+1;1))&1)="&#231;&#305;k&#305;&#351;";ETAR&#304;HL&#304;(TOPLA.&#199;ARPIM((S&#220;TUN(AN2:IV2)=&#199;&#304;FT(S&#220;TUN(AN2:IV2)))*(AN2:IV2));TOPLA.&#199;ARPIM((S&#220;TUN(AN2:IV2)=TEK(S&#220;TUN(AN2:IV2)))*(AN2:IV2));"Ym");ETAR&#304;HL&#304;(TOPLA.&#199;ARPIM((S&#220;TUN(AN2:IV2)=&#199;&#304;FT(S&#220;TUN(AN2:IV2)))*(AN2:IV2));TOPLA.&#199;ARPIM((S&#220;TUN(AN2:IV2)=TEK(S&#220;TUN(AN2:IV2)))*(AN2:IV2))+BUG&#220;N();"Ym"))

AM2 h&#252;cresindeki form&#252;l:

=E&#286;ER(DOLAYLI(E&#286;ER(BA&#286;_DE&#286;_DOLU_SAY(AN2:IV2)+S&#220;TUNSAY(A2:AJ2)+3<=26;PAR&#199;AAL("ABCDEFGHIJKLMNOPQRSTUVWXYZ";BA&#286;_DE&#286;_DOLU_SAY(AN2:IV2)+S&#220;TUNSAY(A2:AJ2)+3;1);PAR&#199;AAL("ABCDEFGHIJKLMNOPQRSTUVWXYZ";TAMSAYI((BA&#286;_DE&#286;_DOLU_SAY(AN2:IV2)+S&#220;TUNSAY(A2:AJ2)+3-1)/26);1)&PAR&#199;AAL("ABCDEFGHIJKLMNOPQRSTUVWXYZ";MOD(BA&#286;_DE&#286;_DOLU_SAY(AN2:IV2)+S&#220;TUNSAY(A2:AJ2)+3-1;26)+1;1))&1)="&#231;&#305;k&#305;&#351;";ETAR&#304;HL&#304;(TOPLA.&#199;ARPIM((S&#220;TUN(AN2:IV2)=&#199;&#304;FT(S&#220;TUN(AN2:IV2)))*(AN2:IV2));TOPLA.&#199;ARPIM((S&#220;TUN(AN2:IV2)=TEK(S&#220;TUN(AN2:IV2)))*(AN2:IV2));"md");ETAR&#304;HL&#304;(TOPLA.&#199;ARPIM((S&#220;TUN(AN2:IV2)=&#199;&#304;FT(S&#220;TUN(AN2:IV2)))*(AN2:IV2));TOPLA.&#199;ARPIM((S&#220;TUN(AN2:IV2)=TEK(S&#220;TUN(AN2:IV2)))*(AN2:IV2))+BUG&#220;N();"md"))

olacak &#351;ekilde deneyin.


Dosyan&#305;z ekte. E&#287;er "&#199;&#305;k&#305;&#351; tarihi bo&#351; b&#305;rak&#305;lm&#351;sa bug&#252;n&#252;n tarihini dikkate alarak hesapl&#305;yor.

..
 
Son düzenleme:
Üst