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

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
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

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
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.
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
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:

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,897
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
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")
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
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

Ali

Uzman
Katılım
21 Temmuz 2005
Mesajlar
7,897
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
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:

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
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
 

incsoft

Altın Üye
Katılım
18 Ağustos 2009
Mesajlar
739
Excel Vers. ve Dili
Office Ev ve İş 2021 - Türkçe
Altın Üyelik Bitiş Tarihi
12-12-2024
integer tanımlı ama neden hata veriyor hocam
 

Cengiz Demir

Altın Üye
Katılım
29 Haziran 2018
Mesajlar
604
Excel Vers. ve Dili
Office 365 TR (32 Bit)
Altın Üyelik Bitiş Tarihi
05-04-2025
Long dener misiniz ?
Yanlış bilmiyorsam integer 32768'e kadar sınırlı.
 
Üst