Soru 6
6. sorumuzla devam edelim.
Aşağıdaki gibi bir tablomuz var. Bölgelere göre satışçıların listesi yer alıyor. Bu listenin son sütununa ben manuel olarak değerleri girdim.
Satışçılara bölge içinde bir sıra numarası veriyoruz. Burada Ankara bölgesinin 6 satışçısı olduğu için 6’ya kadar farklı değerler oluşuyor. Bu tüm bölgeler için geçerli olacak. Formül ya da makro kullanarak Sarı renkli sütundaki değerlerin aynısını yakalamaya çalışacağız.
Dosyayı buradan indirebilir, cevaplarınızı yoruma yazabilirsiniz.
CEVAP
Formül ile yapmak istersek;
=EĞERSAY($A$2:A2;A2)
Makro ile yapmak istersek;
For i = 2 To 27 If Cells(i - 1, 1) <> Cells(i, 1) Then Cells(i, 5) = 1 Else Cells(i, 5) = Cells(i - 1, 5) + 1 End If Next i
Hocam merhaba
=EĞER(EĞERSAY($A$2:A2;A2)=0;””;EĞERSAY($A$2:A2;A2))
Bilginize
Saygılarımla
=EĞERSAY($A$2:A2;A2)
=EĞERSAY($A$2:A2;A2)
Merhaba Hocam,
**Sadece şehirler sıralı ise çalışır.
Sub sehir()
Dim i As Integer
Dim sayac As Integer
Dim sonsatir As Integer
‘son satiri bulma
sonsatir = Sheets(“Sayfa1”).UsedRange.Rows.Count
For i = 2 To sonsatir
‘bir üstteki satıra eşit değil ise 1 yaz
If Cells(i, 1) Cells(i – 1, 1) Then
sayac = 1
Cells(i, 4) = sayac
End If
‘bir üstteki satıra eşitse sayacı 1 arttır.
If Cells(i, 1) = Cells(i – 1, 1) Then
sayac = sayac + 1
Cells(i, 4) = sayac
End If
Next i
End Sub
Hocam iyi günler…
Cevabım : =EĞERSAY($A$2:A2;A2)
İnş. ideal cevap budur… Saygılar…
=EĞERSAY($A$2:A2;A2)
zamanım olursa vba ile de yapmaya çalışıcam …
Merhabalar;
– Formül ile =EĞERSAY($A$2:A2;A2)
– Formülün makro karşılığı;
Sub ForNext_EgerSay_ile_sira_no()
Dim x As Integer
For x = 2 To Range(“A” & Rows.Count).End(xlUp).Row
Cells(x, “C”) = WorksheetFunction.CountIf(Range(Cells(2, “A”), Cells(x, “A”)), Cells(x, “A”))
Next x
x = Empty
End Sub
– Alternatif olarak ForNext ve If ile
Sub ForNext_If_ile_sira_no()
Dim x As Integer
For x = 2 To Range(“A” & Rows.Count).End(xlUp).Row
If Cells(x, “A”) Cells(x – 1, “A”) Then
Cells(x, “D”) = 1
Else
Cells(x, “D”) = Cells(x – 1, “D”) + 1
End If
Next x
x = Empty
End Sub
=EĞERSAY($A$2:A5;A5)
=EĞERSAY($A$2:A2;A2)
Sub numaralandirma()
sonsatir = Cells(Rows.Count, “a”).End(xlUp).Row
ilknumara = 1
For i = 2 To sonsatir
If Cells(i, 1) = Cells(i, 1).Offset(1, 0) Then
Cells(i, 3) = ilknumara
Cells(i, 3).Offset(1, 0) = ilknumara + 1
ilknumara = ilknumara + 1
Else
ilknumara = 1
Cells(i, 3).Offset(1, 0) = ilknumara
End If
Next i
Cells(sonsatir + 1, 3).Clear
End Sub
Hocam Merhabalar,
Sub Düğme1_Tıkla()
sayacy = 0
sayaca = 0
sayacg = 0
sayaci = 0
sayacm = 0
sayact = 0
sayacv = 0
For i = 2 To 27
If Cells(i, 1) = “Yozgat” Then
sayacy = sayacy + 1
Cells(i, 5) = sayacy
End If
If Cells(i, 1) = “Ankara” Then
sayaca = sayaca + 1
Cells(i, 5) = sayaca
End If
If Cells(i, 1) = “Gaziantep” Then
sayacg = sayacg + 1
Cells(i, 5) = sayacg
End If
If Cells(i, 1) = “İzmir” Then
sayaci = sayaci + 1
Cells(i, 5) = sayaci
End If
If Cells(i, 1) = “Mersin” Then
sayacm = sayacm + 1
Cells(i, 5) = sayacm
End If
If Cells(i, 1) = “Trabzon” Then
sayact = sayact + 1
Cells(i, 5) = sayact
End If
If Cells(i, 1) = “Van” Then
sayacv = sayacv + 1
Cells(i, 5) = sayacv
End If
Next i
End Sub