• DİKKAT

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

Yılda Kaç Farklı Ayda Fatura Kesilmiş

Katılım
16 Eylül 2011
Mesajlar
26
Excel Vers. ve Dili
Microsoft Office 2016
Yıllık alım listesinde x firmasından kaç farklı ayda fatura var. Bulmam mümkün mü?

A sütununda firma isimleri
b Sütununda firmanın kestiği faturaların tarihleri var.
C sütununa da; x firmasının o yılın kaç farklı ayında faturası var onu yazmalıyım.Örneğin x firmasının ocak ayında 10, şubatta 4, martta 15, aralıkta 10 faturası var; ben c sütununa 4 yazdırmak istiyorum. Çünkü yılın 4 farklı ayında faturası var.
Toplam fatura sayısını (tüm yıldaki) özet tabloda fatura numarasını saydırarak bulabiliyorum. Ama kaç farklı ayda faturası var onu bulmak istiyorum.

Bu nasıl yapılır. Yardımcı olabilir misiniz ? Makro vs. yapamıyorum.
 
Aşağıdaki formülü dener misiniz?

Kod:
=TOPLA.ÇARPIM((A2:A1000=A2)*(AY(B2:B1000)=AY(B2))*(YIL(B2:B1000)=YIL(B2)))
 
. . .

Aranacak firma sayısı sabit bir tane mi yoksa
A sütunundaki firmaları aşağıya doğru yazarak mı gelecek.

. . .
 
Aşağıdaki formülü dener misiniz?

Kod:
=TOPLA.ÇARPIM((A2:A1000=A2)*(AY(B2:B1000)=AY(B2))*(YIL(B2:B1000)=YIL(B2)))

A 03.04.2013 1
A 06.06.2013 1
A 13.07.2013 1
A 10.10.2013 1
A 24.12.2013 1
B 12.01.2013 6
B 16.01.2013 5
B 16.01.2013 4
B 18.01.2013 3
B 29.01.2013 2
B 29.01.2013 1


İlki firma ismi, ikincisi fatura tarihi 1 yazanlarda formülün sonucu:
İlgili ayda kaç tane faturası var onu yazmış galiba. Çünkü
A firmasının o yılda 5 farklı ayda faturası ama her ay 1 tane faturası olduğundan karşısına 1 yazılmış, Aynı şekilde B Firmasının ocak ayında 6 faturası var. Ama B firmasının ilgili yılda sadece ocak ayında faturası var.
:(
 
Sorunuzu şimdi anladım, daha doğrusu önce de anlamıştım ama çözümümün yanlış olduğunu şimdi anladım. Maalesef bu sorunu çözemeyeceğim sanıyorum.
 
Sorunuzu şimdi anladım, daha doğrusu önce de anlamıştım ama çözümümün yanlış olduğunu şimdi anladım. Maalesef bu sorunu çözemeyeceğim sanıyorum.

Ay formülü ile faturaların kesildiği ayları c sütununa yazıdırıp, sonra bunlar bul ve değiştir ile (1 yerine ocak, 2 yerine şubat vs.) yazdırıyorum.
Alt toplamı firma ünvanı (a sütunu) her değiştiğinde (C sütunu) dönemleri say dediğimde de olmuyor
 
İstediğiniz sonucu da gösteren örnek bir dosya ekleyebilir misiniz.

Özet tablo ile çok rahat yapılabilir.
 
A 03.04.2013 1
A 06.06.2013 1
A 13.07.2013 1
A 10.10.2013 1
A 24.12.2013 1
B 12.01.2013 6
B 16.01.2013 5
B 16.01.2013 4
B 18.01.2013 3
B 29.01.2013 2
B 29.01.2013 1


İlki firma ismi, ikincisi fatura tarihi 1 yazanlarda formülün sonucu:
İlgili ayda kaç tane faturası var onu yazmış galiba. Çünkü
A firmasının o yılda 5 farklı ayda faturası ama her ay 1 tane faturası olduğundan karşısına 1 yazılmış, Aynı şekilde B Firmasının ocak ayında 6 faturası var. Ama B firmasının ilgili yılda sadece ocak ayında faturası var.
:(
. . .

Tarihler arasında boş satır yoksa şu kodları deneyiniz.

Kod:
Sub KOD()
    Application.ScreenUpdating = False
    
    son = Cells(Rows.Count, "A").End(3).Row
    If WorksheetFunction.CountIf(Range("B1:B" & son), "") <> 0 Then
        MsgBox "Boş Satır Var", vbCritical
        Exit Sub
    End If
    
    Range("D:E").ClearContents
    Sat = 1
    For i = 1 To son
        If WorksheetFunction.CountIf(Range("A1:A" & i), Cells(i, "A")) = 1 Then
            
            Cells(Sat, "D") = Cells(i, "A")
            adr = Cells(i, "A").Address
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""January""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""February""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""March""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""April""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""May""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""June""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""July""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""August""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""September""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""October""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""November""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""December""))") <> 0 Then say = say + 1
            
            Cells(Sat, "E") = say
            say = Empty
            Sat = Sat + 1
        End If
    Next i
    Application.ScreenUpdating = True
    MsgBox " B i t t i "
End Sub

. . .
 
Son düzenleme:
Merhabalar,
Yardımcı sütun kullanarak alternatif;
Adımları izleyiniz.

  • B sütununa tıklayıp yeni bir sütun açın,
  • Açılan sütuna ilgili formülü girip verileriniz kadar aşağıya doğru çekiniz,
  • A2 hücresine;
  • Kod:
    =METNEÇEVİR(C2;"AAAA")
  • D2 hücresine firma ismini yazınız,
Sonuç almak için;
Kod:
=BAĞ_DEĞ_SAY(EĞER(EĞER(KAÇINCI(A2:A10&B2:B10;A2:A10&B2:B10;0)=
  SATIR(A2:A10)-1;B2:B10)=D2;SATIR(B2:B10)))
[COLOR="Blue"]Formül dizi formülüdür.CTRL + SHİFT + ENTER ile tamamlayınız.[/COLOR]

Not
: Verileriniz 2. satırdan başladığı düşünülmüştür. Formül on satıra göre ayarlanmıştır.

Daxe Syán
 
Son düzenleme:
. . .

Tarihler arasında boş satır yoksa şu kodları deneyiniz.

Kod:
Sub KOD()
    Application.ScreenUpdating = False
    
    son = Cells(Rows.Count, "A").End(3).Row
    If WorksheetFunction.CountIf(Range("B1:B" & son), "") <> 0 Then
        MsgBox "Boş Satır Var", vbCritical
        Exit Sub
    End If
    
    Range("D:E").ClearContents
    Sat = 1
    For i = 1 To son
        If WorksheetFunction.CountIf(Range("A1:A" & i), Cells(i, "A")) = 1 Then
            
            Cells(Sat, "D") = Cells(i, "A")
            adr = Cells(i, "A").Address
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""January""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""February""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""March""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""April""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""May""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""June""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""July""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""August""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""September""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""October""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""November""))") <> 0 Then say = say + 1
            If Evaluate("=SUMPRODUCT((A1:A" & son & "=" & adr & ")*(TEXT(B1:B" & son & ",""mmmm"")=""December""))") <> 0 Then say = say + 1
            
            Cells(Sat, "E") = say
            say = Empty
            Sat = Sat + 1
        End If
    Next i
    Application.ScreenUpdating = True
    MsgBox " B i t t i "
End Sub

. . .

Sadece mayıs ayında faturası olan firmaların karşısını boş bıraktı, ayrıca hiç 12 (yılın tüm aylarında faturası olan firmalar olduğu halde) çıkmadı.
Neyi yanlış yapmış olabilirim.
 
. . .

9 nolu mesajımdaki kodlar ile işlem sonucu şu şekilde.

Ekran Görüntüsü:

do.php


. . .
 
Geri
Üst