• DİKKAT

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

countif ile ilgili

Katılım
4 Mayıs 2009
Mesajlar
64
Excel Vers. ve Dili
excel 2003
12 tane textbox ve bir tanedede bu günün tarihini gösteren textboxım var. m kolonunda erkek yazıyorsa ve bugünün tarihi 01./07/2009 ile31/07/2009 arasında kalıyorsa erkek yazan kaç tane ise texbox17 ye at bugüntarihi texbox24 te yazıyor.yani textbox24 hangi tarihi gösteriyorsa aşağıda kodlarla anlatım ama yanlış bişey var yardımcı olrsanız sevinirim.

u = WorksheetFunction.CountIf(Worksheets("sayfa1").Range("M2:M5550"), "ERKEK")

If 1 / 1 / 2009 >= TextBox24.Value < =31 / 1 / 2009 Then

TextBox11.Value = u

Else


If 1 / 2 / 2009 = TextBox24.Value =28 / 2 / 2009 Then
TextBox12.Value = u

Else


If 1 / 3 / 2009 = TextBox24.Value = 31 / 3 / 2009 Then
TextBox13.Value = u

Else
If 1 / 4 / 2009 = TextBox24.Value = 30 / 4 / 2009 Then
TextBox14.Value = u

Else
If 1 / 5 / 2009 = TextBox24.Value = 31 / 5 / 2009 Then
TextBox15.Value = u
Else
If 1 / 6 / 2009 = TextBox24.Value = 30 / 6 / 2009 Then
TextBox16.Value = u
Else

If 1 / 7 / 2009 < TextBox24.Value < 31 / 7 / 2009 Then
TextBox17.Value = u
Else


If 1 / 8 / 2009 = TextBox24.Value = 31 / 8 / 2009 Then
TextBox18.Value = u
Else

If 1 / 9 / 2009 = TextBox24.Value = 30 / 9 / 2009 Then
TextBox19.Value = u
Else

If 1 / 10 / 2009 = TextBox24.Value = 31 / 10 / 2009 Then
TextBox20.Value = u
Else

If 1 / 11 / 2009 = TextBox24.Value = 30 / 11 / 2009 Then
TextBox21.Value = u
Else

If 1 / 12 / 2009 = TextBox24.Value = 31 / 12 / 2009 Then
TextBox22.Value = u
Else
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If
End If


End Sub
 
Son düzenleme:
Kod:
Private Sub TextBox1_Change()
TextBox1.Text = Format(TextBox1, "dd.mm.yyyy")
gün = Day(TextBox1)
ay = Month(TextBox1)
yıl = Year(TextBox1)
Cells(1, "l") = gün
Cells(1, "m") = ay
Cells(1, "n") = yıl
ilk = "01." & ay & "." & yıl
son = "31." & ay & "." & yıl
    Set c = Sheets("sayfa1").Range("l2:l65000").Find(CDate(son))
    If Not c Is Nothing Then
    Set s1 = Sheets("sayfa1").Range("l2:l65000").Find(CDate(ilk))
u = Application.WorksheetFunction.CountIf(Sheets("sayfa1").Range("M" & s1.Row & ":M" & c.Row), "erkek")
Controls("textbox" & ay + 1).Value = u
Exit Sub
Else
son = 0
son = "30." & ay & "." & yıl
    Set c = Sheets("sayfa1").Range("l2:l65000").Find(CDate(son))
    If Not c Is Nothing Then
    Set s1 = Sheets("sayfa1").Range("l2:l65000").Find(CDate(ilk))
u = Application.WorksheetFunction.CountIf(Sheets("sayfa1").Range("M" & s1.Row & ":M" & c.Row), "erkek")
Controls("textbox" & ay + 1).Value = u
Exit Sub
Else
son = 0
son = "29." & ay & "." & yıl
    Set c = Sheets("sayfa1").Range("l2:l65000").Find(CDate(son))
    If Not c Is Nothing Then
    Set s1 = Sheets("sayfa1").Range("l2:l65000").Find(CDate(ilk))
u = Application.WorksheetFunction.CountIf(Sheets("sayfa1").Range("M" & s1.Row & ":M" & c.Row), "erkek")
Controls("textbox" & ay + 1).Value = u
Exit Sub
Else
son = 0
son = "28." & ay & "." & yıl
    Set c = Sheets("sayfa1").Range("l2:l65000").Find(CDate(son))
    If Not c Is Nothing Then
    Set s1 = Sheets("sayfa1").Range("l2:l65000").Find(CDate(ilk))
u = Application.WorksheetFunction.CountIf(Sheets("sayfa1").Range("M" & s1.Row & ":M" & c.Row), "erkek")
Controls("textbox" & ay + 1).Value = u
Exit Sub
Else
End If
End If
End If
End If
End Sub
soru biraz daha karışık saydırmayı yaptıracagımız aralığı öncelikle bulmalıyız. birde ayın 28.29.30.31 çekme durumu biraz uzatıyor kodu,sonuç olarak uzun ama çalışıyor.Uzmanlarımız daha kısa bir yanıt bulursa ögrenmek adına bende sevinirim.
ekli dosyayı inceleyin ,saygılar.
 

Ekli dosyalar

counta if dosya ekte

Kod:
Private Sub TextBox1_Change()
TextBox1.Text = Format(TextBox1, "dd.mm.yyyy")
gün = Day(TextBox1)
ay = Month(TextBox1)
yıl = Year(TextBox1)
Cells(1, "l") = gün
Cells(1, "m") = ay
Cells(1, "n") = yıl
ilk = "01." & ay & "." & yıl
son = "31." & ay & "." & yıl
    Set c = Sheets("sayfa1").Range("l2:l65000").Find(CDate(son))
    If Not c Is Nothing Then
    Set s1 = Sheets("sayfa1").Range("l2:l65000").Find(CDate(ilk))
u = Application.WorksheetFunction.CountIf(Sheets("sayfa1").Range("M" & s1.Row & ":M" & c.Row), "erkek")
Controls("textbox" & ay + 1).Value = u
Exit Sub
Else
son = 0
son = "30." & ay & "." & yıl
    Set c = Sheets("sayfa1").Range("l2:l65000").Find(CDate(son))
    If Not c Is Nothing Then
    Set s1 = Sheets("sayfa1").Range("l2:l65000").Find(CDate(ilk))
u = Application.WorksheetFunction.CountIf(Sheets("sayfa1").Range("M" & s1.Row & ":M" & c.Row), "erkek")
Controls("textbox" & ay + 1).Value = u
Exit Sub
Else
son = 0
son = "29." & ay & "." & yıl
    Set c = Sheets("sayfa1").Range("l2:l65000").Find(CDate(son))
    If Not c Is Nothing Then
    Set s1 = Sheets("sayfa1").Range("l2:l65000").Find(CDate(ilk))
u = Application.WorksheetFunction.CountIf(Sheets("sayfa1").Range("M" & s1.Row & ":M" & c.Row), "erkek")
Controls("textbox" & ay + 1).Value = u
Exit Sub
Else
son = 0
son = "28." & ay & "." & yıl
    Set c = Sheets("sayfa1").Range("l2:l65000").Find(CDate(son))
    If Not c Is Nothing Then
    Set s1 = Sheets("sayfa1").Range("l2:l65000").Find(CDate(ilk))
u = Application.WorksheetFunction.CountIf(Sheets("sayfa1").Range("M" & s1.Row & ":M" & c.Row), "erkek")
Controls("textbox" & ay + 1).Value = u
Exit Sub
Else
End If
End If
End If
End If
End Sub
soru biraz daha karışık saydırmayı yaptıracagımız aralığı öncelikle bulmalıyız. birde ayın 28.29.30.31 çekme durumu biraz uzatıyor kodu,sonuç olarak uzun ama çalışıyor.Uzmanlarımız daha kısa bir yanıt bulursa ögrenmek adına bende sevinirim.
ekli dosyayı inceleyin ,saygılar.



dosya ektedir
 

Ekli dosyalar

tarih: 10.7.2009 ise her ay için bir textbox varsa,
sayfa1 m sütunundaki tüm erkek yazanları sayıp ayla ilgili textboxamı yazdıracagız
yoksa
sayfa1 m sütunundaki o aydaki yani 7 aydaki erkek yazanları sayıp ayla ilgili textboxamı yazdıracagız.
kadro sayfasına baktım tam olarak yukarda yazdıgınız kodla bağlantı kuramadım.
 
tarih: 10.7.2009 ise her ay için bir textbox varsa,
sayfa1 m sütunundaki tüm erkek yazanları sayıp ayla ilgili textboxamı yazdıracagız

dediğiniz doğru ,ayrıca bekar,kadın,lisans mezunu gibi bölümlerdede yanı şeyi yapacağım.Böylece her ay sonuda alacağımız raporla 1 yılın hangi aylarında kaç tane erkek kaçtane kadın kaçtane lisans mezunu çalıştığını raporlayabilirz.veya rapor aldımız gün oranlar ne durumda öğrnebiliriz.böylece şirketin istatistiğini tutabiliriz.buda patronların istediği şey, Tabiki bunları grafiğede dökmek gerekli
ilginiz için teşekkürler şimdi yardımlarınızı bekliyorum
saygılarımla
 
Biz bunu hangi sayfadaki listenin hangi sütunundan alacagız örnegin sayfa1 deki listenin hangi sütununda tarih yazıyor?
yıllık rapor listesinde bunu topla.çarpımla alabiliriz(yada textboxlara başka yöntemle) ama 1.7.2009 - 31.7.2009 aralıgının sorgulancagı bir liste olmalı ve o listeden bilgileri alabilelim.
 
AY sütununda bugünün tarihi var veya textbox24 hep bu günü gösteriyor.ben textbox24'egöre RAPOR ALSAK OLURMU
 
benim ekledigim örnege bakın L sütünundaki şekilde tarihler olmazsa nasıl rapor alabilirizki yani bu ay çalışan elemanları hangi kritere göre belirleyecegiz vede hangi sayfayada olacak bu şu şekildemi düşünecegiz giriş sayfasının u sütunda girişi olupta v sütununda çıkış tarhi olmayanlar gibi.
 
sorun çözüldü

sorunu çözdüm başka proplemlerle
Private Sub Label33_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

Dim ock As Range, tar1 As Date, tar2 As Date, tarih As Integer
tarih = WorksheetFunction.CountIf(Sheets("sayfa1").Range("m2:m6500"), "ERKEK")
tar1 = "1 / 1 / 2009"
tar2 = "31 / 1 / 2009"
If TextBox24.Value > tar1 And TextBox24.Value < tar2 Then
TextBox11.Value = tarih

End If


Dim tmm As Range, tar13 As Date, tar14 As Date, tarih6 As Integer
tarih6 = WorksheetFunction.CountIf(Sheets("sayfa1").Range("m2:m6500"), "ERKEK")
tar13 = "1 / 7 / 2009"
tar14 = "31 / 7 / 2009"
If TextBox24.Value > tar13 And TextBox24.Value < tar14 Then

TextBox17.Value = tarih6
End If

End Sub

SAYGILAR
 
Geri
Üst