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

Similar Posts

11 Comments

  1. Hocam merhaba

    =EĞER(EĞERSAY($A$2:A2;A2)=0;””;EĞERSAY($A$2:A2;A2))

    Bilginize

    Saygılarımla

  2. 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

  3. Hocam iyi günler…

    Cevabım : =EĞERSAY($A$2:A2;A2)

    İnş. ideal cevap budur… Saygılar…

  4. =EĞERSAY($A$2:A2;A2)

    zamanım olursa vba ile de yapmaya çalışıcam …

  5. 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

  6. 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

  7. 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

Osman için bir yanıt yazın Yanıtı iptal et

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.