• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

ALFABETİK SIRAYA GÖRE SIRA NUMARASI VERME

  • Konbuyu başlatan Konbuyu başlatan teyadih
  • Başlangıç tarihi Başlangıç tarihi
Katılım
15 Ekim 2014
Mesajlar
833
Excel Vers. ve Dili
Excell 2016 Türkçe 64 bit
Kolay Gelsin Arkadaşlar
D Sütununda bulunan isimlerin baş harflerine göre sıra numarası veren bir formüle ihtiyacım var
Yani Örnekte 7 tane A ile başlayan isim var Önce A olanları 1 den 7 ye kadar verecek sonra varsa B yi 8 den başlatıp,
sıradaki diğer harflere göre Örnek Numaralandırma sütununda olduğu üzere devam edecek şekilde
Örnek dosyayı ekte gönderiyorum. Teşekkür ederim
 

Ekli dosyalar

Tavsiye:
Muhtemelen Orijinal dosyanızda; "Adı Soyadı" olarak yer alan Personel için ayrı bir sayfada A1 hücresinden başlayaraka İsim listesi oluşturun.
Bu listeyi Küçükten Büyüğe (A-Z) dizin, sonra yanındaki sütuna 1 den başlayan numaralarını yazın.
Bu numaraları dilerseniz B1 hücresine =SATIR() formül yazarak otomatik numaralandırabilirsiniz.
Daha sonra "Personel" sayfasında DÜŞEYARA fonksiyonu ile bu numaraları Y sütununa yazdırabilirsiniz.
İyi çalışmalar.
 
Evet sayın turist dediğiniz gibi verilen sıra numarasına göre diğer sayfaya taşıyacağım. Genel listemde çok fazla değişiklik olduğundan her defasındı A-Z sıralaması yapmadan alfabetik olarak otomatik sıra numarası vermesi ve sıra numarasına göre de otomatik olarak sıralaması için istemiştim formülü
 
Formülü D Sütununda bulunan isimlerin baş harflerine göre sıra numarası verecek şekilde istemiştim ama AB sütununda baş harfleri var sıralama Ab sütununa göre de olabilir
 
Alternatif olarak makrolu çözüm için aşağıdaki kodları bir modüle kopyalayıp deneyiniz:

Kod:
Option Base 1
Sub numaralama()
Dim alfabe()
alfabe = Array("A", "B", "C", "Ç", "D", "E", "F", "G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z")
son = Cells(Rows.Count, "D").End(3).Row
sıra = 1
Range("Y3:Y" & son) = ""
For başharf = 1 To 29
    For isim = 3 To son
        If Cells(isim, "Y") = "" Then
            If Left(Cells(isim, "D"), 1) = alfabe(başharf) Then
                Cells(isim, "Y") = sıra
                sıra = sıra + 1
            End If
        End If
    Next
Next

End Sub
 
Sayın turist sizi yoruyorum hakkınızı helal edin. aynı formülle ilgili bir şey daha rica edebilir miyim? Formülü gönderdiğim örnek dosyadaki hem hakim hem de personel sayfasını kapsayacak şekilde yapabilir misiniz. Yani önce Hakim sayfasındaki A lara sıra numarası verecek sonra Personel sayfasındaki A lara
 
sayın turist formül daha önceki personel sayfasında olacak ama önce Hakim sayfasındaki harf durumunu sonra personel sayfasındaki harf durumunu dikkate alacak şekilde
 
sayın turist formül daha önceki personel sayfasında olacak ama önce Hakim sayfasındaki harf durumunu sonra personel sayfasındaki harf durumunu dikkate alacak şekilde
#5 No.lu cevapta dosya güncellenmiştir.Tekrar indirip bakınız.
 
Teşekkür ederim sayın turist elinize sağlık. p.tesi bakıp dönüş yapacağım
 
Merhaba sayın turist eksik bilgi verdim sanırım. Sıra no yu önce Hakim sayfasındaki A lara verecek Sonra Personel sayfasındaki A lara
aynı şekilde diğer harfler içinde önce Hakim sonra Personel sayfasındaki harfleri yani her 2 sayfada ki harfleri dikkate alacak şekilde. Örnek Hakim sayfasında 7 tane A ile Personel sayfasında ki 7 tane A dan sonra Hakim sayfasındaki B nin 15 den başlayıp devam etmesi. Yordum sizi kusura bakmayın
 
Alternatif,

Kod:
=TOPLA.ÇARPIM(--DEĞİL(($A$2:$A$114>A2)))-EĞERSAY(A2:$A$114;A2)+1
 
Her ne kadar bir önceki verdiğim çözümle ilgili herhangi bir dönüş yapmamış olsanız da aşağıdaki kodları bir deneyin isterseniz:

Kod:
Option Base 1
Sub numaralama()
Set s1 = Sheets("HAKİM")
Set s2 = Sheets("personel")
Dim alfabe()
alfabe = Array("A", "B", "C", "Ç", "D", "E", "F", "G", "Ğ", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z")
sonhakim = s1.Cells(Rows.Count, "D").End(3).Row
sonpersonel = s2.Cells(Rows.Count, "D").End(3).Row
sıra = 1
s1.Range("Y3:Y" & sonhakim) = ""
s2.Range("Y3:Y" & sonpersonel) = ""
For başharf = 1 To 29
    For hakim = 3 To sonhakim
        If s1.Cells(hakim, "Y") = "" Then
            If Left(s1.Cells(hakim, "D"), 1) = alfabe(başharf) Then
                s1.Cells(hakim, "Y") = sıra
                sıra = sıra + 1
            End If
        End If
    Next
    For personel = 3 To sonpersonel
        If s2.Cells(personel, "Y") = "" Then
            If Left(s2.Cells(personel, "D"), 1) = alfabe(başharf) Then
                s2.Cells(personel, "Y") = sıra
                sıra = sıra + 1
            End If
        End If
    Next
Next

End Sub
 
Sağ olun sayın kuvari elinize sağlık. Yukarıda yazdığım gibi ilk önce hakim listesinden başlamak üzere hakim ve personel listelerinin her ikisini de dikkate alacak şekilde düzenleyebilir misiniz formülü
 
Özür dilerim sayın yusuf44 eğerli formülle ilgili verdiğim eksik bilgilerle ilgilenirken sizi atlamışım.
 
Sayın yusuf44 makrodan hiç anlamadığım için bir arkadaşın yardımı ile uyguladık ancak nerede hata yaptık anlamadım A lara vermiyor 10.satırdan itibaren B lerden veriyor numaraları. Birde otomatik çalışmıyor bir düğme koymak gerekiyor sanırım. Örnek dosyaya uygulama şansınız var mı acaba
 
Ekli dosyayı inceleyiniz. Örnek dosyanızda düzgün şekilde çalışıyor. Sizde düzgün çalışmadıysa asıl dosyanız örnek dosyanızla aynı yapıda değildir.
 

Ekli dosyalar

Geri
Üst