• DİKKAT

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

Sıklık Hesaplama

  • Konbuyu başlatan Konbuyu başlatan RIKU
  • Başlangıç tarihi Başlangıç tarihi
Katılım
18 Haziran 2006
Mesajlar
112
Arkadaşlar benim sorum şöyle: Bir sütunda 3 değişik karakter var.Bu karakterlerin en son ne zaman o sütunda var olduğu bulmak? Ayrıca bu karakterin hangi sıklkta olduğunu hesaplamak. Umarım extreme bir şey istemiyorumdur?
 
Sn RIKU eğer doğru anladıysam aşağıdaki kodları denermisiniz.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
t = Range("E65536").End(xlUp).Row
For i = t To 1 Step -1
If Cells(i, 5) = "G" Then GoTo 10
Next
10   Range("G2") = Range("E65536").End(xlUp).Row - Cells(i, 5).Row
For i = t To 1 Step -1
If Cells(i, 5) = "B" Then GoTo 20
Next
20   Range("H2") = Range("E65536").End(xlUp).Row - Cells(i, 5).Row
For i = t To 1 Step -1
If Cells(i, 5) = "M" Then GoTo 30
Next
30   Range("I2") = Range("E65536").End(xlUp).Row - Cells(i, 5).Row
For i = t To 1 Step -1
If Cells(i, 6) > 500 Then GoTo 40
Next
40  Range("J2") = Range("F65536").End(xlUp).Row - Cells(i, 6).Row
End Sub
 
Son düzenleme:
Teşekkürler, Sayın Ali. Elinize sağlık doğru olmuş. Fakat total 500+ ve diğer belirttiğim olay hakkında da görüşlerini öğrenmek isterim.
 
500'ü aşan Son total dediğiniz F10 hücrenizdeki 750,00 YTL midir.
 
Doğrudur. Ayrıca sıklık hesaplama konusundaki 2. soruya da yardımlarınızı bekliyorum.
 
Üstteki kodları güncelledim tekrar bakarmısınız.
 
Peki bu soru hakkındaki fikirleriniz : "Ayrıca G, B, M ve total 500+' ün ne sıklıkta geldiklerini hesaplamaya çalışıyorum. Mesela E sütununu takip edersek; G, A1 den itibaren 1 ara vermiş, sonra 4 kere ara vermiş, sonra ara vermemiş ve 3 kere 0 ara vererek gelmiş. Burdan çıkması istenen sonuç şöyle: 1+4+0+0+0=5/5=1 (burdaki "/5" sayısı çıkan "G" sayısı -1) Bu sonucu verebilecek formül hakkında bir fikriniz var mı? "

Bu arada tekrar teşekkürler.
 
Sn RIKU N2 hücresindede G için belirlediğiniz mantıkla okunacak sayı olsun kodları aşağıdaki gibi değiştirin.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
t = Range("E65536").End(xlUp).Row
For i = t To 1 Step -1
If Cells(i, 5) = "G" Then GoTo 10
Next
10 Range("G2") = Range("E65536").End(xlUp).Row - Cells(i, 5).Row
For i = t To 1 Step -1
If Cells(i, 5) = "B" Then GoTo 20
Next
20 Range("H2") = Range("E65536").End(xlUp).Row - Cells(i, 5).Row
For i = t To 1 Step -1
If Cells(i, 5) = "M" Then GoTo 30
Next
30 Range("I2") = Range("E65536").End(xlUp).Row - Cells(i, 5).Row
For i = t To 1 Step -1
If Cells(i, 6) > 500 Then GoTo 40
Next
40 Range("J2") = Range("F65536").End(xlUp).Row - Cells(i, 6).Row
t = Range("E65536").End(xlUp).Row
For i = t To 1 Step -1
If Cells(i, 5) = "G" Then GoTo 50
Next
50 m = Cells(i, 5).Row
For k = m To 1 Step -1
If Cells(k, 5) <> "G" Then
say = say + 1
End If
Next
Range("N2") = say
End Sub
 
Teşekkür ederim sayın Ali. Gerçekten çok yardımcı oldunuz. Şimdiden iyi seneler.
 
Sayın Ali bey affınıza sığınarak son bir şey istirham ediyorum. E sütunundaki formülleri kod ile gerçekleşmesini istesem çok mu olurum? Yani bu da olsa SÜPER olacak!!! :)
 
Son dedi&#287;inize g&#246;re D h&#252;cresine rakam&#305;n&#305;z&#305; yazd&#305;&#287;&#305;n&#305;zda B s&#252;tunu ile k&#305;yas yap&#305;p E s&#252;tununa ilgili G,B ve M leri yazacakt&#305;r. Buna g&#246;re a&#351;a&#287;&#305;daki gibi de&#287;i&#351;tirin.

Kod:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
sonhucre = Range("A65536").End(xlUp).Row
For hucre = sonhucre To 1 Step -1
If Cells(hucre, 2) > Cells(hucre, 4) Then
Cells(hucre, 5) = "G"
End If
If Cells(hucre, 2) = Cells(hucre, 4) Then
Cells(hucre, 5) = "B"
End If
If Cells(hucre, 2) < Cells(hucre, 4) Then
Cells(hucre, 5) = "M"
End If
Next
t = Range("E65536").End(xlUp).Row
For i = t To 1 Step -1
If Cells(i, 5) = "G" Then GoTo 10
Next
10 Range("G2") = Range("E65536").End(xlUp).Row - Cells(i, 5).Row
For i = t To 1 Step -1
If Cells(i, 5) = "B" Then GoTo 20
Next
20 Range("H2") = Range("E65536").End(xlUp).Row - Cells(i, 5).Row
For i = t To 1 Step -1
If Cells(i, 5) = "M" Then GoTo 30
Next
30 Range("I2") = Range("E65536").End(xlUp).Row - Cells(i, 5).Row
For i = t To 1 Step -1
If Cells(i, 6) > 500 Then GoTo 40
Next
40 Range("J2") = Range("F65536").End(xlUp).Row - Cells(i, 6).Row
t = Range("E65536").End(xlUp).Row
For i = t To 1 Step -1
If Cells(i, 5) = "G" Then GoTo 50
Next
50 m = Cells(i, 5).Row
For k = m To 1 Step -1
If Cells(k, 5) <> "G" Then
say = say + 1
End If
Next
Range("N2") = say
End Sub
 
Son düzenleme:
Sayın Ali verdiğiniz kodlar çok güzel çalışıyor. Fakat ben sizin verdiğiniz kodlarla kendi elimde var olan kodu birleştirdim. Fakat o zaman sizin kod çalışmadı. Sorun nedir acaba?

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Intersect(Target, [N2:U50]) Is Nothing Then Exit Sub
Call Makrom
sonhucre = Range("L65536").End(xlUp).Row
For hucre = sonhucre To 1 Step -1
If Cells(hucre, 2) > Cells(hucre, 4) Then
Cells(hucre, 5) = "G"
End If
If Cells(hucre, 2) = Cells(hucre, 4) Then
Cells(hucre, 5) = "B"
End If
If Cells(hucre, 2) < Cells(hucre, 4) Then
Cells(hucre, 5) = "M"
End If
Next
t = Range("P65536").End(xlUp).Row
For i = t To 1 Step -1
If Cells(i, 5) = "G" Then GoTo 10
Next
10 Range("C16") = Range("P65536").End(xlUp).Row - Cells(i, 5).Row
For i = t To 1 Step -1
If Cells(i, 5) = "B" Then GoTo 20
Next
20 Range("D16") = Range("P65536").End(xlUp).Row - Cells(i, 5).Row
For i = t To 1 Step -1
If Cells(i, 5) = "M" Then GoTo 30
Next
30 Range("E16") = Range("P65536").End(xlUp).Row - Cells(i, 5).Row
For i = t To 1 Step -1
If Cells(i, 6) > 2.5 Then GoTo 40
Next
40 Range("F16") = Range("Q65536").End(xlUp).Row - Cells(i, 6).Row
t = Range("P65536").End(xlUp).Row
For i = t To 1 Step -1
If Cells(i, 5) = "G" Then GoTo 50
Next
50 m = Cells(i, 5).Row
For k = m To 1 Step -1
If Cells(k, 5) <> "G" Then
say = say + 1
End If
Next
Range("G16") = say
End Sub
 
If Intersect(Target, [N2:U50]) Is Nothing Then Exit Sub

sat&#305;r&#305; ile de&#287;i&#351;tirilen hedef h&#252;cre N2:U50 aras&#305; de&#287;ilse yordamdan &#231;&#305;k demi&#351;siniz Call Makrom yazm&#305;&#351;s&#305;n&#305;z bu sat&#305;ra

gelincede makrom adl&#305; di&#287;er makroyu &#231;a&#287;&#305;r&#305;yor ve o makro &#231;al&#305;&#351;&#305;yor.
 
Range("G16") = say sat&#305;r&#305;ndan sonra di&#287;er makroyu ekleyip &#231;al&#305;&#351;t&#305;rmay&#305; deneyin.
 
Geri
Üst