Otomatik Harf Verme

aydinsert

Altın Üye
Katılım
11 Ağustos 2006
Mesajlar
35
Excel Vers. ve Dili
Ofis365-Eng
Altın Üyelik Bitiş Tarihi
25-03-2025
Merhaba Arkadaşlar,
elimde ekteki gibi bir dosya mevcut. Dosyada iller aldıkları puana göre sıralı. H sütununda harf skalası var. Yapmak istediğim otomatik olarak harf sklasanın altında yazan sayı kadar soldaki illere harf vermek. Yani ilk sıradaki ilin yanına A yazacak sonraki 4 ile B yazacak daha sonraki 13 ile ise C.
Destekleriniz için şimdiden teşekkürler.
 

Ekli dosyalar

netzone

Altın Üye
Katılım
10 Mayıs 2006
Mesajlar
791
Excel Vers. ve Dili
🅾🅵🅵🅸🅲🅴
⎝365 64 Bit 𝙏𝙍⎠
🆆🅸🅽🅳🅾🆆🆂
⎝11 64 Bit 𝙏𝙍⎠
Altın Üyelik Bitiş Tarihi
12-09-2027
Merhaba,
Göndermiş olduğunuz tabloda işlem sonrası; sonucu nerede nasıl almak istediğinizi manuel olarak bir kaç örnek ile doldurursanız, girilen değerler doğrultusunda çözüm üretmeye çalışalım.

iyi çalışmalar.
 

erkan1903

Altın Üye
Katılım
23 Temmuz 2007
Mesajlar
74
Excel Vers. ve Dili
Professional Plus 2013 / Türkçe
Altın Üyelik Bitiş Tarihi
11-11-2027
Merhaba,
F2 hücresine şu formülü yazıp aşağı doğru çekin. Aklıma gelen ilk yol bu oldu.Ayrıca I2-M2 arası hücrelerdeki sayılar değişince formül yine çalışır.
Biraz uzun oldu formül :oops:
İyi çalışmalar
Kod:
=EĞER(VE($C2>$I$2;$C2<=$I$2+$J$2);$J$1;EĞER(VE($C2>$I$2+$J$2;$C2<=$I$2+$J$2+$K$2);$K$1;EĞER(VE($C2>$I$2+$J$2+$K$2;$C2<=$I$2+$J$2+$K$2+$L$2);$L$1;EĞER(VE($C2>$I$2+$J$2+$K$2+$L$2;$C2<=$I$2+$J$2+$K$2+$L$2+$M$2);$M$1;$I$1))))
 

1Al2Ver

Altın Üye
Katılım
5 Kasım 2007
Mesajlar
4,715
Excel Vers. ve Dili
64 Bit TR - Microsoft Office 365 - Win11 Home
Altın Üyelik Bitiş Tarihi
04-01-2026
Merhaba,

Formülden ben de faydalandım, teşekkür ederim,

Sayın erkan1903'ün formülünü biraz sadeleştirip kullandım ;

Kod:
=EĞER(VE($C2>$I$2;$C2<=$I$2+$J$2);$J$1;EĞER(VE($C2>$I$2+$J$2;$C2<=TOPLA($I$2:$K$2));$K$1;EĞER(VE($C2>TOPLA($I$2:$K$2);$C2<=TOPLA($I$2:$L$2));$L$1;EĞER(VE($C2>TOPLA($I$2:$L$2);$C2<=TOPLA($I$2:$M$2));$M$1;$I$1))))
 

aydinsert

Altın Üye
Katılım
11 Ağustos 2006
Mesajlar
35
Excel Vers. ve Dili
Ofis365-Eng
Altın Üyelik Bitiş Tarihi
25-03-2025
ilginiz için teşekkürler. Sayın netzone kısaca: f2 ye A yazacak f3,f4,f5 ve f6 ya ise B yazacak aşağıya doğru devam edecek. Çünkü A harfinden bir tane b harfinden ise 4 tane olacak.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Makrolu çözüm isterseniz aşağıdaki kodları bir modüle kopyalayıp deneyiniz:

Sub harf()
son = Cells(Rows.Count, "F").End(3).Row + 1
Range("F2:F" & son) = ""
For i = 9 To 13
For j = 1 To Cells(2, i)
Cells(Cells(Rows.Count, "F").End(3).Row + 1, "F") = Cells(1, i)
Next
Next
End Sub
 

aydinsert

Altın Üye
Katılım
11 Ağustos 2006
Mesajlar
35
Excel Vers. ve Dili
Ofis365-Eng
Altın Üyelik Bitiş Tarihi
25-03-2025
sayın Yusuf44 ve erkan1903 çok teşekkür ediyorum ikisi de işe yaradı. :)
 

aydinsert

Altın Üye
Katılım
11 Ağustos 2006
Mesajlar
35
Excel Vers. ve Dili
Ofis365-Eng
Altın Üyelik Bitiş Tarihi
25-03-2025
Makrolu çözüm isterseniz aşağıdaki kodları bir modüle kopyalayıp deneyiniz:

Sub harf()
son = Cells(Rows.Count, "F").End(3).Row + 1
Range("F2:F" & son) = ""
For i = 9 To 13
For j = 1 To Cells(2, i)
Cells(Cells(Rows.Count, "F").End(3).Row + 1, "F") = Cells(1, i)
Next
Next
End Sub
Şunu belirtmeliyim; sıralama bozulunca verilen harfte bozuluyor.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Sorunun ne olduğunu anlamadım. Örnekle gösterirseniz iyi olur.
 

aydinsert

Altın Üye
Katılım
11 Ağustos 2006
Mesajlar
35
Excel Vers. ve Dili
Ofis365-Eng
Altın Üyelik Bitiş Tarihi
25-03-2025
Merhaba Yusuf Bey demek istediğim normalde liste büyükten küçüğe doğru sıralı. Sıralama karışık olursa yani en büyük en üstte değilde aralarda olursa macro yanlış çalışıyor.
 

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Lütfen örnek dosya ile gösterin. "Makro yanlış çalışıyor" demişsiniz ama ne önceki sorularınızda ne de örnek dosyanızda buna ilişkin bir uyarı ya da istek bulunmuyor. Makro siz neyi istediyseniz onu yapıyor, yanlış çalışmıyor. Eğer başka bir şey istiyorsanız lütfen ne istediğinizi daha açık bir şekilde belirtiniz.
 

aydinsert

Altın Üye
Katılım
11 Ağustos 2006
Mesajlar
35
Excel Vers. ve Dili
Ofis365-Eng
Altın Üyelik Bitiş Tarihi
25-03-2025
Demek istediğim şu: Normalde kod düzgün onda bir sorun yok Yusuf Bey. Sorun en büyük değer ilk sırada değilse yani sıralama karışıksa verdiği harf doğru olmuyor. İlk sırada hangi il varsa A yı ona veriyor. Dosya ekte. Yanlış anlaşılma olduysa kusura bakmayın.
 

Ekli dosyalar

YUSUF44

Destek Ekibi
Destek Ekibi
Katılım
4 Ocak 2006
Mesajlar
12,073
Excel Vers. ve Dili
İş : Ofis 365 - Türkçe
Ev: Ofis 365 - Türkçe
Bu durumda nasıl olacağını manuel yazıp paylaşır mısınız?
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,276
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Alternatif olarak aşağıdaki kodu deneyiniz.

Kod:
Option Explicit

Sub HARF_NOTU()
    Dim Veri As Range, WF As WorksheetFunction, Kacinci As Integer
    Dim X As Byte, Sayi As Double, Bul As Range, Adres As String, Say As Integer
    
    Set WF = WorksheetFunction
    
    Range("F2:F" & Rows.Count).ClearContents
    
    For Each Veri In Range("I2:M2")
        For X = 1 To Veri.Value
            Kacinci = Kacinci + 1
            Sayi = WF.Large(Range("E:E"), Kacinci)
            Say = WF.CountIf(Range("E:E"), Sayi)
            Select Case Say
                Case 1
                    Set Bul = Range("E:E").Find(Sayi, , , xlWhole)
                    If Not Bul Is Nothing Then
                        Bul.Offset(0, 1) = Veri.Offset(-1, 0)
                    End If
                Case Is > 1
                    Set Bul = Range("E:E").Find(Sayi, , , xlWhole)
                    If Not Bul Is Nothing Then
                        Adres = Bul.Address
                        Do
                            Bul.Offset(0, 1) = Veri.Offset(-1, 0)
                            Set Bul = Range("E:E").FindNext(Bul)
                        Loop While Not Bul Is Nothing And Bul.Address <> Adres
                    End If
            End Select
        Next
    Next

    MsgBox "İşleminiz tamamlanmıştır.", vbInformation
End Sub
 

aydinsert

Altın Üye
Katılım
11 Ağustos 2006
Mesajlar
35
Excel Vers. ve Dili
Ofis365-Eng
Altın Üyelik Bitiş Tarihi
25-03-2025
Korhan Bey, Yusuf Bey, desteğiniz için teşekkürler son kod işimi çözdü.
 
Üst