• DİKKAT

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

Sıra numarasına göre sınıf ismi verme

Katılım
29 Haziran 2018
Mesajlar
297
Excel Vers. ve Dili
2016 TÜRKÇE
Arkadaşlar merhaba . e okul programından branş notları excele aktarılırken ekteki gibi bir liste oluyor. Bu listede sıra no okul no adı soyadı ve notlar geliyor. Ancak sınıf isimleri çıkmıyor. Bu listeyi başka bir dosyaya yapıştırınca sınıf isimlerine de ihtiyaç duyuyorum.

Şimdi diyelim ki F1 hücresine 4A yazınca A sütununa B deki sıra numaralarına göre 4A 4B ... gibi sınıf adları verilebilir mi? Sınıf adları "Ç" harfi hariç Alfabetik sırada olmalı. Teşekkürler.

http://s3.dosya.tc/server17/u9476r/Yeni_Microsoft_Excel_Calisma_Sayfasi.xlsx.html
 
Merhaba,

Aşağıdaki kodları dener misiniz? Umarım doğru anlamışımdır. Listede olmaması gereken ya da olması gereken harfleri kontrol ediniz.


Kod:
Sub SINIFLANDIR()

    Dim i       As Long, _
        j       As Integer, _
        Harfler, _
        Harf    As String, _
        Sınıf   As Integer, _
        c       As Range, _
        Adr     As String
   
    Harfler = Array("A", "B", "C", "D", "E", "F", "G", "H", "I", "İ", "J", "K", "L", "M", "N", "O", "Ö", "P", "R", "S", "Ş", "T", "U", "Ü", "V", "Y", "Z")
    Harf = Right(Range("F1"), 1)
    Sınıf = Left(Range("F1"), 1)
   
    j = Application.Match(Harf, Harfler, False) - 1
   
    With Range("B:B")
        Set c = .Find(1, LookIn:=xlValues, LookAt:=xlWhole)
        If Not c Is Nothing Then
            Adr = c.Address
            Do
                If Not c.Row = 2 Then
                    Range("A" & i & ":A" & c.Row - 1) = Sınıf & Harfler(j)
                    j = j + 1
                    i = c.Row
                Else
                    i = c.Row
                End If
                Set c = .FindNext(c)
            Loop While Not c Is Nothing And c.Address <> Adr
        End If
    End With
   
    Range("A" & i & ":A" & Cells(Rows.Count, "B").End(3).Row) = Sınıf & Harfler(j)
 
End Sub
 
Merhaba.

Formül alternatifi de benden olsun.
-- önce F1'deki başlangıç sınıf adını A1'e taşıyın veya A1 hücresine =F1 formülünü uygulayın,
-- ardından da aşağıdaki formülü A2 hücresine uygulayıp liste boyunca kopyalayın.
.
=SOLDAN(A1;UZUNLUK(A1)-1)&EĞER(B1>B2;ARA(SAĞDAN(A1;1);{"A";"B";"C";"D";"E";"F";"G";"H";"I";"İ";"J";"K";"L";"M";"N";"O";"Ö";"P";"R";"S";"Ş";"T";"U";"Ü";"V";"Y";"Z"};{"B";"C";"D";"E";"F";"G";"H";"I";"İ";"J";"K";"L";"M";"N";"O";"Ö";"P";"R";"S";"Ş";"T";"U";"Ü";"V";"Y";"Z";""});SAĞDAN(A1;1))
 
Merhaba arkadaşlar. İlginize teşekkür ederim.
Necdet Bey'in verdiği kodlar çalıştı. Teşekkür ediyorum
Ömer Bey'in verdiği formülde ise şöyle bir sorun oluştu.
İlk grup 4A olması gerekirken A1 hücresine yazdığım şube ile değil bir sonraki şube ile başladı. Yani A1=4A iken A2 den itibaren 4B oldu . Sonrasında doğru bir şekilde sınıflar oluştu. Yani 4C 4D..... A1=4A ise Önce 4A sonra 4B..... olmalıydı. Saygılar.
 
Merhaba.
Örnek belgenize uygulandığında benim verdiğim formülde sorun yok.
Sanıyorum gerçek belgenizde B1 hücresi boş değil ve bu nedenle belirttiginiz sonucu alıyorsunuz.
B1 hücresi boş değilse; formüldeki .... EĞER(B1>B2;..... kısmını, .... EĞER(VE(ESAYIYSA(B1);B2=1);..... olarak değiştirerek uygulayınca düzelir.
.
 
Tekrar Merhaba. Ömer Bey tamamen haklısınız. Gerçek belgede B1 Hücresinde sıra no yazıyormuş. Yani boş değil. Boşaltınca formül düzgün çalıştı. Katkılarınızdan dolayı çok teşekkür ediyorum.
Sayın İdris Serdar Bey sizin dosyanızı da aldım. İlginize çok teşekkür ediyorum.
 
Tekrar Merhaba Sayın İdris Serdar hocam. Benim için hazırladığınız yukarıdaki (6 nolu mesajınız) dosyada B2:B12 aralığındaki sınıf sayılarını elle yazmak yerine D sütunundaki sıra numaralarından formülle nasıl alabiliriz? Bunu formüle edebilirsem diğer çalışmamda çok işime yarayacak. İlginize şimdiden teşekkür ederim.
 
Tekrar merhaba.

Benim önerdiğim yöntemin uygulandığı (daha önce verdiğim formülde küçük değişiklik yapıldı) belge ekte.
Ayrıca belgede; sınıfların mevcutlarının tespitine yönelik alan da eklendi.
Eklediğim belgeye, fareyle BURAYA tıklayarak da erişebilirsiniz.
.
 

Ekli dosyalar

Sayın Ömer Baran Üstadım. Önerdiğiniz işlem tam olarak istediğim şey değil. Sınıfların ismi yazılmadan Sıra numarası sütununda
1.2.3.4......25 1.2.3.4.......24 1.2.3.4......20 gibi alt alta yazılan rakamlardan diyelim ki 4A sınıfına denk gelen 25 rakamını alıp B2 ye; 4B sınıfına denk gelen 24 rakamını B3 e, 4c sınıfına denk gelen 20 rakamını B4 e, ........yazan bir formül istemiştim. Yani Serdar Beyin dosyasında C sütunu boş olsun. D sütunundaki sıra numaralarının sınıf sayılarına denk gelen rakamları sırayla alt alta alabilir miyiz. Teşekkürler
 
Benim gönderdiğim belgede sınıf isimleri ve sınıf mevcutları bilgisi AG:AH sütununda.
Benim gönderdiğim belge üzerinden sorunuzu netleştirir misiniz (hücre adresi vs net belirtin) ?
 
Sayın Ömer Üstadım. Sorumu dosyalardan bağımsız düşünün. Yardım ettiğiniz dosyalardaki bilgileri kendi branşım olan din kültürü dosyasında kullanacağım. Onda bir sıkıntı yok. Çünkü ben bütün sınıfların dersine giriyorum. (tek öğretmen olduğum için)
Ama diyelim ki iki öğretmen sınıfları bölüştü ve karışık olarak derslere giriyorlar. Onların dosyasında kullanmak üzere ilave bir çalışma olarak düşünün.

Diyelim ki; A sütununda sıra numaraları var. B sütununa bu sıra numaralarının en büyüklerini yazılış sırasına göre nasıl alabilirim. veya alabilir miyim. Ekteki bağımsız dosyada ne istediğimi gösterdim. Saygılarımla.


http://s3.dosya.tc/server17/je8oww/Kitap1.xlsx.html
 
Tekrar merhaba.

Aşağıdaki şekilde dizi formülü uygulamasıyla işlem yaparak sonuç alabilirsiniz.
-- formülü B2'ye yapıştırın ve B2 hücresini tekrar seçip F2 tuşuna basarak hücre içerisine girin,
-- CTRL ve SHIFT tuşları basılı durumdayken ENTER tuşuna basarak işlemi tamamlayın,
-- İşlemi doğru yapmışsanız formül kendiliğinden {....} gibi köşeli parantez arasına alınmış olur,
-- B2 hücresini kopyalayın ve BOŞ sonuç elde edinceye kadar aşağı doğru kopyalayın.
=EĞERHATA(KAYDIR($A$1;KÜÇÜK(EĞER($A$2:$A$59>$A$3:$A$60;SATIR($A$2:$A$59));SATIR(A1))-1;0);"")
 
Ömer üstadım aradığım formül tam olarak budur. Çok teşekkür ediyorum. Sağolun.
 
Tekrar merhaba arkadaşlar. Ömer Baran Üstadın 13 nolu mesajındaki;

=EĞERHATA(KAYDIR($A$1;KÜÇÜK(EĞER($A$2:$A$59>$A$3:$A$60;SATIR($A$2:$A$59));SATIR(A1))-1;0);"")

dizi formülünü gerçek dosyama uyarlıyamıyorum. Örnek dosyada gayet güzel çalışıyor ama benim dosyamda çalışmıyor. Yapmak istediğim BRANŞ sayfasındaki C15:C500 aralığına göre bu formülü K2:K14 aralığında çalıştırmak.

http://s3.dosya.tc/server17/rjxedq/2019_KAZANIM_DIN_V4.xls.html

Yardımlarınıza şimdiden teşekkürler.
 
Son düzenleme:
Bilgisayar başında değilim.
Aşağıdaki gibi olması lazım.
=EĞERHATA(KAYDIR($C$1;KÜÇÜK(EĞER($C$12:$C$500>$C$13:$A$501;SATIR($C$12:$C$500));SATIR(A1))-1;0);"")
Halledemezseniz veya başka üye cevaplamazsa, bilgisayar başına geçince bakarım.
 
Arkadaşlar tekrar merhaba. Ekteki dosyada BRANŞ sayfasında B sütununda Ömer hocamın Verdiği;

=EĞER(C15="";"";SOLDAN(B14;UZUNLUK(B14)-1)&EĞER(C14>C15;ARA(SAĞDAN(B14;1);{"A";"B";"C";"D";"E";"F";"G";"H";"I";"İ";"J";"K";"L";"M";"N";"O";"Ö";"P";"R";"S";"Ş";"T";"U";"Ü";"V";"Y";"Z"};{"B";"C";"D";"E";"F";"G";"H";"I";"İ";"J";"K";"L";"M";"N";"O";"Ö";"P";"R";"S";"Ş";"T";"U";"Ü";"V";"Y";"Z";""});SAĞDAN(B14;1)))

formülüyle okuldaki tüm sınıflara giren öğretmen için sınıf ve şube adlarını yazdırıyorum. Bunda sorun yok.

Ama bir başka öğretmen diyelim ki J2:J14 aralığındaki gibi değişik sınıflara giriyor olsun. Onun için J2:M14 aralığındaki tabloyu oluşturdum. Amacım sınıf adlarını A sütunundaki sıra nolarına göre oluşturmak.
Şimdi;

1. Tüm derslere giren öğretmen için I13 başlangıç sınıf yazılınca B sütununda sınıf adları tamam.
2. B sütunundaki sınıf isimleri I13 boşaltılınca =İNDİS(SN;KAÇINCI(A15;SR)) formülüyle oluşsun.

Yani B15 ten itibaren B500 aralığında bu iki formülü birleştirmek. Ben yaptım ama formül hesaplanamıyor döngü içeriyor gibi bir mesaj aldım. Yardımlarınızı bekliyorum.

http://s3.dosya.tc/server17/ldi7mm/2019_KAZANIM_DIN_V4.xls.html
 
Arkadaşlar yukarıdaki problemi çözdüm teşekkürler
 
Geri
Üst