• DİKKAT

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

Soru değer aralığında saydırma

  • Konbuyu başlatan Konbuyu başlatan incsoft
  • Başlangıç tarihi Başlangıç tarihi
Katılım
18 Ağustos 2009
Mesajlar
752
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Arkadaşlar A ve B sütunundaki değer karşılıklarına göre J,K,L,M,N,O vb.. aralıklardaki değerlere göre adet saydırması yapmak istiyorum. Bu örnek bir data dosyasıdır ve gerçek dosya 350.000 satırdan oluşmaktadır. Bunu formülle nasıl yapabilirim? Tercihim formüldür olmazsa macro.

Teşekkürler...
 

Ekli dosyalar

Merhaba
1. B sütununuzda değer yok
2. Neyi neye göre saydırdığınızı anlamadım. Zira cümlenizi tekrar okursanız konuyu bilmeyen birisinin anlayacağı bir soru değil.
A ve B sütunundaki değer karşılıklarına göre J,K,L,M,N,O vb.. aralıklardaki değerlere göre adet saydırması

3. Belki Sütun başlıklarını yazarsanız sorunuzun anlaşılırlığı artacaktır.
4. 35.000 satırda kullanılacak formül her durumda kasacaktır. Yapısına göre daha az ya da da çok olabilir.
 
Merhaba
1. B sütununuzda değer yok
2. Neyi neye göre saydırdığınızı anlamadım. Zira cümlenizi tekrar okursanız konuyu bilmeyen birisinin anlayacağı bir soru değil.
A ve B sütunundaki değer karşılıklarına göre J,K,L,M,N,O vb.. aralıklardaki değerlere göre adet saydırması

3. Belki Sütun başlıklarını yazarsanız sorunuzun anlaşılırlığı artacaktır.
4. 35.000 satırda kullanılacak formül her durumda kasacaktır. Yapısına göre daha az ya da da çok olabilir.

Pardon özür dilerim A ve D olacaktı.. A ve D karşılığı eşit olan I sütununa göre adet sayması.. Dosyanın içinde örnek vardı hocam
 
Son düzenleme:
Siz diğerlerini aşağıda ki formüle benzer şekilde ayarlarsınız.

K2 , 1000-2000 arası için

Kod:
=ÇOKEĞERSAY($A$2:$A$760;A2;$D$2:$D$760;D2;$I$2:$I$760;">1000";$I$2:$I$760;"<=2000")

M2, 3000-4000 arası için

Kod:
=ÇOKEĞERSAY($A$2:$A$760;A2;$D$2:$D$760;D2;$I$2:$I$760;">3000";$I$2:$I$760;"<=4000")
 
Siz diğerlerini aşağıda ki formüle benzer şekilde ayarlarsınız.

K2 , 1000-2000 arası için

Kod:
=ÇOKEĞERSAY($A$2:$A$760;A2;$D$2:$D$760;D2;$I$2:$I$760;">1000";$I$2:$I$760;"<=2000")

M2, 3000-4000 arası için

Kod:
=ÇOKEĞERSAY($A$2:$A$760;A2;$D$2:$D$760;D2;$I$2:$I$760;">3000";$I$2:$I$760;"<=4000")

Öncelikle çok teşekkürler Ali bey dediğiniz oldu ancak formül Ömer bey'in dediği gibi de çok kastı. 250.000 hatta yeri geldiğinde 500.000 satırda olabileceği için kasacaktır. Bunun için buna macro sistemi mümkün değilmidir? Ekte sizin formülünüze göre kısa bir örnek verdim.
 

Ekli dosyalar

Aşağıdaki gibi macroyu dener misiniz.

Kod:
Sub Hesapla()
Dim lr As Integer
Dim ws As Worksheet
Dim rng As Range
Set ws = ThisWorkbook.Sheets("Sayfa1")
lr = ws.Cells(Rows.Count, 1).End(xlUp).Row
Set rng = ws.Range("D1:D" & lr)
rng.Offset(, 7).Formula = "=countifs($A$1:$A$" & lr & ",$A1,$D$1:$D$" & lr & ",$D1,$I$1:$I$" & lr & ","">""&0,$I$1:$I$" & lr & ",""<=""&1000)"
rng.Offset(, 8).Formula = "=countifs($A$1:$A$" & lr & ",$A1,$D$1:$D$" & lr & ",$D1,$I$1:$I$" & lr & ","">""&1000,$I$1:$I$" & lr & ",""<=""&2000)"
rng.Offset(, 9).Formula = "=countifs($A$1:$A$" & lr & ",$A1,$D$1:$D$" & lr & ",$D1,$I$1:$I$" & lr & ","">""&2000,$I$1:$I$" & lr & ",""<=""&3000)"
rng.Offset(, 10).Formula = "=countifs($A$1:$A$" & lr & ",$A1,$D$1:$D$" & lr & ",$D1,$I$1:$I$" & lr & ","">""&3000,$I$1:$I$" & lr & ",""<=""&4000)"
Range("K1:V" & lr).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

rng.Offset(, 10).Formula kısmında sonra siz diğer kriterleri yazarak genişletirsiniz.
 
Son düzenleme:
Aşağıdaki gibi macroyu dener misiniz.

Kod:
Sub Hesapla()
Dim lr As Integer
Dim ws As Worksheet
Dim rng As Range
Set ws = ThisWorkbook.Sheets("Sayfa1")
lr = ws.Cells(Rows.Count, 1).End(xlUp).Row
Set rng = ws.Range("D1:D" & lr)
rng.Offset(, 7).Formula = "=countifs($A$1:$A$" & lr & ",$A1,$D$1:$D$" & lr & ",$D1,$I$1:$I$" & lr & ","">""&0,$I$1:$I$" & lr & ",""<=""&1000)"
rng.Offset(, 8).Formula = "=countifs($A$1:$A$" & lr & ",$A1,$D$1:$D$" & lr & ",$D1,$I$1:$I$" & lr & ","">""&1000,$I$1:$I$" & lr & ",""<=""&2000)"
rng.Offset(, 9).Formula = "=countifs($A$1:$A$" & lr & ",$A1,$D$1:$D$" & lr & ",$D1,$I$1:$I$" & lr & ","">""&2000,$I$1:$I$" & lr & ",""<=""&3000)"
rng.Offset(, 10).Formula = "=countifs($A$1:$A$" & lr & ",$A1,$D$1:$D$" & lr & ",$D1,$I$1:$I$" & lr & ","">""&3000,$I$1:$I$" & lr & ",""<=""&4000)"
Range("K1:V" & lr).Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

rng.Offset(, 10).Formula kısmında sonra siz diğer kriterleri yazarak genişletirsiniz.


Verileri ve kontrol alanını çoğaltınca sanırım bellek hatas verdi


234679
 
integer tanımlı ama neden hata veriyor hocam
 
Long dener misiniz ?
Yanlış bilmiyorsam integer 32768'e kadar sınırlı.
 
Geri
Üst