Soru 6

317 defa okundu

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;

Bunlar da ilginizi çekebilir

  1. Abdullah Özdem dedi ki:

    Hocam merhaba

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

    Bilginize

    Saygılarımla

  2. Alper Düryaz dedi ki:

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

  3. Hilmi Uğuzay dedi ki:

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

  4. Utku dedi ki:

    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

  5. MURAT DÜNDAR dedi ki:

    Hocam iyi günler…

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

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

  6. kadir dedi ki:

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

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

  7. Mustafa dedi ki:

    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

  8. ahmet gökay demir dedi ki:

    =EĞERSAY($A$2:A5;A5)

  9. ahmet gokay demir dedi ki:

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

  10. Osman dedi ki:

    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

  11. Abdullah Özdem dedi ki:

    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

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.