• DİKKAT

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

Toplam Miktarı En Fazla ve En Az Olanı Bulmak

Katılım
5 Ocak 2009
Mesajlar
1,586
Excel Vers. ve Dili
2003 Türkçe
Selam,
Örnek dosyamda L sütunundaki toplam miktarları en çok olanı ve en az olanı, E sütunundaki insört'ü bulmak istiyorum. Nasıl yapabiliriz?

Dosyama göre
en çok miktar: Bauhaus 3.739.737 adet
en az miktar: Fiba 2.352 adet
olarak bulmalı.

İyi çalışmalar.
 

Ekli dosyalar

calismaniz bende cok karmasik ifade hatasi verdi, nedeni hakkinda fikriniz varmi?
 
Buda makrolu bir çözüm...

Selam,
Çözüm için çok teşekkür ederim. Kodlarınızdaki kırmızı alanları biraz izah edebilir misiniz? neden 100, neden 1000000 gibi?

Kod:
Option Explicit
Dim enb, enk, [COLOR="Red"]b(100), [/COLOR]e, f, d, n, k, l As Single
Dim [COLOR="red"]a(100), [/COLOR]c As String

Sub encok_enaz_bul()
[COLOR="Red"]enb = 0: enk = 1000000[/COLOR]
a(0) = Cells(2, 5): n = 0

    For k = 2 To [c65536].End(3).Row
    c = Cells(k, 5)
        For l = 0 To n
        If a(l) = c Then GoTo atla1
        Next
    n = n + 1: a(n) = c
atla1:
    Next
    For k = 0 To n
        For l = 2 To [c65536].End(3).Row
        c = Cells(l, 5)
        d = Cells(l, 12)
        If c = a(k) Then b(k) = b(k) + d
        Next
    If b(k) > enb Then enb = b(k): e = k
    If b(k) < enk Then enk = b(k): f = k
    Next
MsgBox "En büyük " & a(e) & " : " & b(e) & vbLf & _
       "En küçük " & a(f) & " : " & b(f)
End
End Sub
 
calismanin bende boyle bir sorun vermesinin cozumu nedir sizce..
 
Sayın mustafaine

kodların başındaki option explicit i kaldırın.
Değişken tanımlarını ise sadece
Dim b(100) As Double, a(100) As String
haline getirin. Eğer yine o uyarıyı alırsanız office kurulumunuzda bir problem olduğunu düşüneceğim. Office'i kaldırıp yeni bir kurulum yapmanız sanırım probleminizi çözecektir.

Sayın Ergün Güler
a(100) ve b(100) benim kabüllerim. Dosyanızda farklı olarak en fazla 100 veri tipi olacağını düşünüp o şekilde bir dizi oluşturdum.
[a(0),a(1),a(2),...,a(100) - b(0),b(1),b(2),...,b(100)] Daha fazla çeşitte veriniz olsaydı bu sayıyı arttıracaktım (200-500-vb.).

enk - enküçük olan için en büyük değeri '1000000'
enb - enbüyük için ise en küçük değeri '0' kabul ettim.
Böylelikle değerleri bu ilk kabullerle karşılaştırınca yeni en büyükleri ve yeni en küçükleri bulmak mümkün hale geldi.

Size tavsiyem kodlar vba düzenleyici de açıkken F8 tuşuna basarak vba işlemcinin yaptığı işlemleri adım adım izlemenizdir. Bu şekilde daha iyi anlayabilirsiniz.
 
Sayın Ergün Güler
a(100) ve b(100) benim kabüllerim. Dosyanızda farklı olarak en fazla 100 veri tipi olacağını düşünüp o şekilde bir dizi oluşturdum.
[a(0),a(1),a(2),...,a(100) - b(0),b(1),b(2),...,b(100)] Daha fazla çeşitte veriniz olsaydı bu sayıyı arttıracaktım (200-500-vb.).

enk - enküçük olan için en büyük değeri '1000000'
enb - enbüyük için ise en küçük değeri '0' kabul ettim.
Böylelikle değerleri bu ilk kabullerle karşılaştırınca yeni en büyükleri ve yeni en küçükleri bulmak mümkün hale geldi.

Size tavsiyem kodlar vba düzenleyici de açıkken F8 tuşuna basarak vba işlemcinin yaptığı işlemleri adım adım izlemenizdir. Bu şekilde daha iyi anlayabilirsiniz.
Selam Sayın ffff7,
Açıklama ve yardımlarınız için çok teşekkür ederim.
İyi çalışmalar.
 
Geri
Üst