İki Tarih Arasında Olma Durumuna Göre Sayı Verme

Katılım
12 Eylül 2005
Mesajlar
66
A1 hücresinde tarih var (aa.gg.yyyy formatında). b1 hücresine; a1 hücresinde bulunan tarih
15.01 ile 14.02 arasında ise 1
15.02 ile 14.03 arasında ise 2
15.03 ile 14.04 arasında ise 3
15.04 ile 14.05 arasında ise 4
15.05 ile 14.06 arasında ise 5
15.06 ile 14.07 arasında ise 6
15.07 ile 14.08 arasında ise 7
15.08 ile 14.09 arasında ise 8
15.09 ile 14.10 arasında ise 9
15.10 ile 14.11 arasında ise 10
15.11 ile 14.12 arasında ise 11
15.12 ile 14.01 arasında ise 12
yazmasını istiyorum. (eğer formülü ile beceremedim. hata veriyor.)bunu b2, b3,b4 hücreleri içinde yapacağım. Yardımlarınız için teşekkür ederim.
 
Katılım
8 Eylül 2006
Mesajlar
21
Excel Vers. ve Dili
Microsoft® Office Excel® (12.0.6036.5000)
Merhaba,

Sizin tablo yapınıza göre gerekli formülü aslında tek hücrede vermek algoritma açısından sorun değil ama Excel buna şuan müsait değil. Gerekli formül çok uzun olduğu için formülü 2 hücreye böldüm.

A1:
07.16.2006

Örneğin B1 hücresinde:
Kod:
=TARİHSAYISI(METNEÇEVİR(A1;"gg.aa.yyyy"))
B1'deki bu formül sizin ay ve günü ters sırada dizmenizden ötürü düzeltmek ve tarih sayısını bu şekilde bulmak içindi.

C1'de ise istediğimiz sonucu içiçe 12 Eğer formül ile alacağız:

Kod:
=(EĞER(VE(B1>=TARİHSAYISI("15.01.2006");B1<=TARİHSAYISI("14.02.2006"));1;EĞER(VE(B1>=TARİHSAYISI("15.02.2006");B1<=TARİHSAYISI("14.03.2006"));2;EĞER(VE(B1>=TARİHSAYISI("15.03.2006");B1<=TARİHSAYISI("14.04.2006"));3;EĞER(VE(B1>=TARİHSAYISI("15.04.2006");B1<=TARİHSAYISI("14.05.2006"));4;EĞER(VE(B1>=TARİHSAYISI("15.05.2006");B1<=TARİHSAYISI("14.06.2006"));5;EĞER(VE(B1>=TARİHSAYISI("15.06.2006");B1<=TARİHSAYISI("14.07.2006"));6;0)))))))+(EĞER(VE(B1>=TARİHSAYISI("15.07.2006");B1<=TARİHSAYISI("14.08.2006"));7;EĞER(VE(B1>=TARİHSAYISI("15.08.2006");B1<=TARİHSAYISI("14.09.2006"));8;EĞER(VE(B1>=TARİHSAYISI("15.09.2006");B1<=TARİHSAYISI("14.10.2006"));9;EĞER(VE(B1>=TARİHSAYISI("15.10.2006");B1<=TARİHSAYISI("14.11.2006"));10;EĞER(VE(B1>=TARİHSAYISI("15.11.2006");B1<=TARİHSAYISI("14.12.2006"));11;EĞER(VE(B1>=TARİHSAYISI("15.12.2006");B1<=TARİHSAYISI("14.01.2007"));12;"")))))))
Ayrıca, bu tür çözümler için VBA'da Select-Case yapısını, If-End-If yapısını incelemenizi öneririm.

Ayrıca istediğiniz sonuç için KTF hazırlamak ta mümkün, başka yerleşik işlevler de çözüm bulmak ta mümkün.

Aslında yerleşik işlev ile tek hücrede de sonuç alabiliriz gibi geliyor bana ama çok detaylı düşünmeden bu çözümü hazırladım, zira aklım FB'nin Palermo ile yapacağı maçta, maça yetişmem lazım.:hey:

Selamlar.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Sonucu görmek istediğiniz hücreye aşağıdaki formulü yazın ...

Kod:
 =AY(ARA(A1;{38732;38763;38791;38822;38852;38883;38913;38944;38975;39005;39036;39066}))

Not:
Karşılaştırılacak tarih, A1 hücresinde olucak.
 
Son düzenleme:

Necdet

Moderatör
Yönetici
Katılım
4 Haziran 2005
Mesajlar
15,371
Excel Vers. ve Dili
Ofis 365 Türkçe
Alternatif olarak DÜŞEYARA ile çözüm ektedir.
 
Üst