• DİKKAT

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

Kaçıncı olduğunu bulma makrosu

  • Konbuyu başlatan Konbuyu başlatan gertt
  • Başlangıç tarihi Başlangıç tarihi
Katılım
1 Haziran 2009
Mesajlar
149
Excel Vers. ve Dili
2007
Türkçe
Değerlerin kendi gruplarında kaçıncı olduğunu bulmak için formül değil makro kodu lazım.Yardımcı olursanız sevinirim.Dosyada örneğini verdim.
 

Ekli dosyalar

Aşağıdaki kod ile istediğinizi elde edebilirsiniz. Ayrıca ekli dosyada uygulamayı görebilirsiniz.

Kod:
Sub sirala()
son = [b65536].End(3).Row
For a = 3 To son
Cells(a, "f") = Evaluate(Replace(Replace("SUMPRODUCT((B3:B65536=B999)*(D999<D3:D65536)/COUNTIF(D3:D65536,D3:D65536&" & """" & """" & "))+1", 65536, son), 999, a))
Next
End Sub
Not: Kod mantığı oluşturulurken aşağıdaki linkte bulunan Ali beyin 10 nolu mesajındaki formülün algoritması kullanılmıştır. Aslında çözüm VBA ile değil yine fonksiyonlarla bulunmuştur. Kodun yaptığı sadece ilgili formülü kendi içinde hesaplayıp sonucu sayfaya yazmaktır.

http://www.excel.web.tr/f142/girilen-sayysal-deoere-gore-hucre-renklendirme-t32274.html
 

Ekli dosyalar

Levent bey merhaba.Yazmış olduğunuz kod gerçekten güzel çalışıyor.Elinize sağlık.Bu konuyla ilgili iki sorum daha olacak.Eğer yardımcı olursanız sevinirim.
B sütununda değer olup D sütununda puan yoksa sıralama hücresinde o değerle ilgili boş geçmesini nasıl sağlayabiliriz?Bir de kriteri baz almadan sadece puanlama bölümündekilerin kaçıncı sırada olduğu makrosunu nasıl yazabiliriz?
Teşekkürler...
 
Rica ederim.

B sütununda değer olup D sütununda puan yoksa sıralama hücresinde o değerle ilgili boş geçmesini nasıl sağlayabiliriz?

Aşağıdaki kodu deneyin.

Kod:
Sub sirala()
son = [b65536].End(3).Row
For a = 3 To son
If Cells(a, "d") <> "" Then
Cells(a, "f") = Evaluate(Replace(Replace("SUMPRODUCT((B3:B65536=B999)*(D999<D3:D65536)/COUNTIF(D3:D65536,D3:D65536&" & """" & """" & "))+1", 65536, son), 999, a))
Else
Cells(a, "f") = ""
End If
Next
End Sub

Bir de kriteri baz almadan sadece puanlama bölümündekilerin kaçıncı sırada olduğu makrosunu nasıl yazabiliriz?
Teşekkürler...

Bu sorunuz içinde aşağıdaki gibi deneyin.

Kod:
Sub sirala()
son = [b65536].End(3).Row
For a = 3 To son
Cells(a, "f") = Evaluate(Replace(Replace("SUMPRODUCT((D999<D3:D65536)/COUNTIF(D3:D65536,D3:D65536&" & """" & """" & "))+1", 65536, son), 999, a))
Next
End Sub
 
İlginiz için tekrar teşekkür ederim.Kolay gelsin.
 
Hayırlı geceler.
Puanlama bölümünde virgüllü sayılar var.Kaçıncı sırada olduğunu bulmak için yukarıda Sayın Levent Bey'in yazmış olduğu kodu kullandığımda örneğin;
12,10 puanının sıralamasını 2 gösteriyorsa, 12,30 puanının sıralamasını da 2 gösteriyor.Yani sıralamada virgülden sonraki yuvarlamayı baz alıyor.İstediğim sıralamada virgülden sonraki sayıda dahil olmak üzere sıralamayı yapması.12,10 sıralamada 2. ise 12,30 3. sırada olmalı.
Teşekkürler.
 
Merhaba,

Levent beyin önerdiği kodu dosyanıza virgüllü sayılar girerek denedim ve olumlu sonuç aldım.
 
Geri
Üst