Soru Numaralandırma

konas06

Altın Üye
Katılım
27 Kasım 2007
Mesajlar
661
Excel Vers. ve Dili
ofis 2016 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2025
Merhaba,
Bir numaralandırma konusunda yardımınıza ihtiyacım vardır.
Değerli vaktini yardım etmek için ayıran üstatlara şimdiden teşekkür ederim.

223406
 

Ekli dosyalar

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Merhaba,

Numaralandırma işleminde kullandığınız mantık nedir?
 

konas06

Altın Üye
Katılım
27 Kasım 2007
Mesajlar
661
Excel Vers. ve Dili
ofis 2016 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2025
Hocan ilginiz için teşekkürler.
Aynı isimler kendi aralarında 1 den başlayarak artarak devam ediyor
Ancak, isim - şehri ile aynı şekilde tekrar etmesi halinde aynı numarayı alıyor.
Umarım izah edebilmişimdir.
 
Katılım
24 Nisan 2005
Mesajlar
3,669
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Ben konuyu sanırım yanlış anlamışım. Belki birinin işine yarar :)
Yatay dağılımı dikey, dikey dağılımı yatay yapan kod.

C#:
Sub yatayi_dikey_yap()
   sonsatir = Cells(Rows.Count, "F").End(3).Row
   If sonsatir < 5 Then sonsatir = 5
   sonsutun = Cells(4, Columns.Count).End(xlToLeft).Column
   If sonsutun < 10 Then Exit Sub
   Range("G5:H" & sonsatir).ClearContents
  
   For i = 10 To sonsutun
      isimref = Cells(4, i).Value
      For i1 = 5 To sonsatir
       rakam = Cells(i1, i).Value
       isim = Cells(i1, "G").Value
       If isim <> "" Then GoTo atla
       If rakam <> "" Then
          Cells(i1, "G").Value = isimref
          Cells(i1, "H").Value = rakam
       End If
atla:
      Next i1
   Next i
  
End Sub


Sub dikey_yatay_yap()
   isimler = "/"
   sonsatir = Cells(Rows.Count, "G").End(3).Row
   sonsutun = Cells(4, Columns.Count).End(xlToLeft).Column
   If sonsutun < 9 Then sonsutun = 9
   Range(Cells(4, "J"), Cells(sonsatir, sonsutun)).Clear
   sonsutun = Cells(4, Columns.Count).End(xlToLeft).Column
   If sonsutun < 9 Then sonsutun = 9
   For i = 5 To sonsatir
      isimref = Cells(i, "G").Value
      If InStr(isimler, isimref) > 0 Then GoTo atla
      sonsutun = sonsutun + 1
      Cells(4, sonsutun).Value = isimref
      isimler = isimler & isimref & "/"
      Range("H5:H" & sonsatir).Copy Cells(5, sonsutun)
      For i1 = 5 To sonsatir
       isim = Cells(i1, "G").Value
       If isimref <> isim Then
          Cells(i1, sonsutun).Value = ""
       End If
      Next i1
atla:
   Next i
  
End Sub
 

konas06

Altın Üye
Katılım
27 Kasım 2007
Mesajlar
661
Excel Vers. ve Dili
ofis 2016 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2025
Asri Bey,
H sütunu formüle etmek istiyorum,
J ve M sütun aralığı konuyu açıklamak için ekledim. Kullandığım dosya da o kısım yok.
Teşekkür ederim.
 
Katılım
24 Nisan 2005
Mesajlar
3,669
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Biraz kolaya kaçtım. Sağlama yapmak için zamanım yok.
Kontrol ediniz.


C#:
Sub numaralandır()
   sonsatir = Cells(Rows.Count, "G").End(3).Row
   If sonsatir < 5 Then sonsatir = 5
   Range("H5:H" & sonsatir).ClearContents
   liste = Range("F5:H" & sonsatir)
    For i = 1 To UBound(liste)
     il = liste(i, 1)
     isim = liste(i, 2)
     buldu = False
     For i1 = 1 To UBound(liste)
        il2 = liste(i1, 1)
        isim2 = liste(i1, 2)
        If il = il2 And isim = isim2 And liste(i1, 3) <> "" Then
           sonrakam = liste(i1, 3)
           buldu = True
           Exit For
        End If
     Next i1
     If buldu Then
      liste(i, 3) = sonrakam
     Else
      sonrakam = 0
      For i1 = 1 To UBound(liste)
        il2 = liste(i1, 1)
        isim2 = liste(i1, 2)
        If isim = isim2 And (liste(i1, 3) >= sonrakam Or sonrakam = 0) Then
           sonrakam = liste(i1, 3) + 1
        End If
      Next i1
      liste(i, 3) = sonrakam
     End If

    Next i
    Range("F5:H" & sonsatir).Resize(sonsatir - 4) = liste
End Sub
 

konas06

Altın Üye
Katılım
27 Kasım 2007
Mesajlar
661
Excel Vers. ve Dili
ofis 2016 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2025
Biraz kolaya kaçtım. Sağlama yapmak için zamanım yok.
Kontrol ediniz.


C#:
Sub numaralandır()
   sonsatir = Cells(Rows.Count, "G").End(3).Row
   If sonsatir < 5 Then sonsatir = 5
   Range("H5:H" & sonsatir).ClearContents
   liste = Range("F5:H" & sonsatir)
    For i = 1 To UBound(liste)
     il = liste(i, 1)
     isim = liste(i, 2)
     buldu = False
     For i1 = 1 To UBound(liste)
        il2 = liste(i1, 1)
        isim2 = liste(i1, 2)
        If il = il2 And isim = isim2 And liste(i1, 3) <> "" Then
           sonrakam = liste(i1, 3)
           buldu = True
           Exit For
        End If
     Next i1
     If buldu Then
      liste(i, 3) = sonrakam
     Else
      sonrakam = 0
      For i1 = 1 To UBound(liste)
        il2 = liste(i1, 1)
        isim2 = liste(i1, 2)
        If isim = isim2 And (liste(i1, 3) >= sonrakam Or sonrakam = 0) Then
           sonrakam = liste(i1, 3) + 1
        End If
      Next i1
      liste(i, 3) = sonrakam
     End If

    Next i
    Range("F5:H" & sonsatir).Resize(sonsatir - 4) = liste
End Sub
Hocam çok teşekkür ederim,
Ancak bunu kendi dosyama uygulamam çok vaktimi alacak.
Formül ile kolay uyarlanabilir bir çözüm daha faydalı olacaktır.
Ancak alternatif bulmazsam mecbur değerlendireceğim.
Teşekkürler.
 
Katılım
24 Nisan 2005
Mesajlar
3,669
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Hocam çok teşekkür ederim,
Ancak bunu kendi dosyama uygulamam çok vaktimi alacak.
Formül ile kolay uyarlanabilir bir çözüm daha faydalı olacaktır.
Ancak alternatif bulmazsam mecbur değerlendireceğim.
Teşekkürler.
Tabiki tercih sizin.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
"Google Sheets" ile alternatif:


Capture.PNG


E1 hücresindeki formül: 📌

Kod:
={"";A2:A}

F1 hücresindeki formül: 📌

Kod:
=TRANSPOSE(UNIQUE(B2:B))

F2 hücresine de aşağıdaki formülü girip, sağa ve aşağıya doğru sürükleyin; 📌

Kod:
=IF(($B3=F$1)*$C3>0;($B3=F$1)*$C3;"")

.
 
Son düzenleme:

konas06

Altın Üye
Katılım
27 Kasım 2007
Mesajlar
661
Excel Vers. ve Dili
ofis 2016 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2025
"Google Sheets" ile alternatif:


Ekli dosyayı görüntüle 223409


E1 hücresindeki formül:

Kod:
={"";A2:A}

F1 hücresindeki formül:

Kod:
=TRANSPOSE(UNIQUE(B2:B))

F2 hücresine de aşağıdaki formülü girip, sağa ve aşağıya doğru sürükleyin;

Kod:
=IF(($B3=F$1)*$C3>0;($B3=F$1)*$C3;"")

.
Haluk Hocam, bir şey yanlış anlaşıldı.
Sizin eklediğiniz resme göre söylüyorum, Tablo C sütunu son sütun olacak, sonraki kısım durumu izah etmek için eklenmiştir.
Sadece C sütunu na formül gerekiyor.
Teşekkür ederim.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Ne demek istiyorsunuz, anlamadım ..... Benim resimdeki A2:C10 hücreleri olmadan, E1:I10 aralığındaki tablo yapılamaz ama, başka bir sayfada oluşturulabilir.

.
 
Katılım
24 Nisan 2005
Mesajlar
3,669
Excel Vers. ve Dili
Office 2016 EN 64 Bit
Altın Üyelik Bitiş Tarihi
25/05/2022
Ne demek istiyorsunuz, anlamadım ..... Benim resimdeki A2:C10 hücreleri olmadan, E1:I10 aralığındaki tablo yapılamaz ama, başka bir sayfada oluşturulabilir.

.
Haluk bey bende aynı yanlış anlamayı yaşadım. :) C sütunundaki numaralandırmayı silin ve formüller ile yeniden oluşturun.
E sütunu ve sonrasını dikkate almayın.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Haluk bey bende aynı yanlış anlamayı yaşadım. :) C sütunundaki numaralandırmayı silin ve formüller ile yeniden oluşturun.
E sütunu ve sonrasını dikkate almayın.
Hmmmm..... şimdi anladım !

.
 

konas06

Altın Üye
Katılım
27 Kasım 2007
Mesajlar
661
Excel Vers. ve Dili
ofis 2016 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2025
Haluk bey bende aynı yanlış anlamayı yaşadım. :) C sütunundaki numaralandırmayı silin ve formüller ile yeniden oluşturun.
E sütunu ve sonrasını dikkate almayın.
Teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,191
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

DİZİ formüldür.

C++:
=TOPLA(EĞER(SIKLIK(EĞER(($G$5:G5=G5);KAÇINCI($F$5:F5;$F$5:F5;0));SATIR($F$5:F5)-4)>0;1))
 

konas06

Altın Üye
Katılım
27 Kasım 2007
Mesajlar
661
Excel Vers. ve Dili
ofis 2016 Türkçe
Altın Üyelik Bitiş Tarihi
01-07-2025
Korhan Hocam teşekkürler.
Ayrıca yardımlarınız için hepinize teşekkürler.
 
Üst