Sıklık Hesaplama

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?
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,919
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
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:
Katılım
18 Haziran 2006
Mesajlar
112
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.
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,919
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
500'ü aşan Son total dediğiniz F10 hücrenizdeki 750,00 YTL midir.
 
Katılım
18 Haziran 2006
Mesajlar
112
Doğrudur. Ayrıca sıklık hesaplama konusundaki 2. soruya da yardımlarınızı bekliyorum.
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,919
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Üstteki kodları güncelledim tekrar bakarmısınız.
 
Katılım
18 Haziran 2006
Mesajlar
112
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.
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,919
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
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
 
Katılım
18 Haziran 2006
Mesajlar
112
Teşekkür ederim sayın Ali. Gerçekten çok yardımcı oldunuz. Şimdiden iyi seneler.
 
Katılım
18 Haziran 2006
Mesajlar
112
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!!! :)
 

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,919
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
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:
Katılım
18 Haziran 2006
Mesajlar
112
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
 

Ali

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

Ali

Özel Üye
Katılım
21 Temmuz 2005
Mesajlar
7,919
Excel Vers. ve Dili
İş:Excel 2016-Türkçe
Range("G16") = say sat&#305;r&#305;ndan sonra di&#287;er makroyu ekleyip &#231;al&#305;&#351;t&#305;rmay&#305; deneyin.
 
Üst