• DİKKAT

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

sıralamanın değişik gelmesi

Katılım
6 Mart 2009
Mesajlar
133
Excel Vers. ve Dili
office 2007
merhaba arkadaşlar konu şu 150 sorum var 1 sınavda 35 soru soruyorum ikinci sınavda aynı 150 soru içersinden ama 1 sınavda geçen sorulardan ayrı soru getirebilecek bir formül olabilirmi
 

Ekli dosyalar

Merhaba,

Soruyu Fonksiyonlar bölümünde sormuşsunuz ama sanırım fonksiyonlarla yapmak biraz zor.

Makrolu Çözüm isterseniz aşağıdaki kodları kullanabilirsiniz.

Kod:
Sub SoruSec()
    Dim i       As Integer, _
        Sayı    As Integer, _
        c       As Range
        
   Application.ScreenUpdating = False
    
    For i = 2 To 36
    
        Do
            Randomize
            Sayı = Int((150 * Rnd) + 1)
            Set c = Range("A2:B36" & i + 1).Find(Sayı, LookIn:=xlValues, LookAt:=xlWhole)
        Loop While Not c Is Nothing
        
        Cells(i, "B") = Sayı
        
    Next i
    Range("B2:B36").Sort key1:=[B1]
    Application.ScreenUpdating = True
    MsgBox "İşlem tamamdır.....", vbInformation, "N. YEŞERTENER --> [URL="http://www.excel.web.tr/"]www.excel.web.tr[/URL]"
End Sub
 

Ekli dosyalar

Merhaba,

Bu şekilde işinize yarar mı bilmiyorum. Olmayanları sırası ile yazar.

B2 hücresine yazıp dizi formülüne ( ctrl + shift + enter ) çevirdikten sonra alt satırlara kopyalayınız..

Kod:
=İNDİS(SATIR($1:$150);KÜÇÜK(EĞER(EHATALIYSA(KAÇINCI(SATIR($1:$150);
  $A$2:$A$36;0));SATIR($1:$150));SATIRSAY($B$2:B2)))
.
 
çok teşekkür ederim

sayın necdet bey ve ömer bey çok ilginize teşekkür ederim. necdet beyin gönderdiği çok güzel ömer bey sizinkide işimi görüyor sağolun.
 
sayın necdet bey

c sütunundada 3. sınavım olsa ve 1. ve 2. sınavda çıkmayan soruları görmek istersem ne yapmalyım ?
 
Merhaba,

1 ve 2. sınav soruları belli ise 3. sınav sonuçlarını C sütununda olduğunu varsayarsak yukarıdaki kodları şöyle yazmalı :

Kod:
Sub SoruSec()
    Dim i       As Integer, _
        Sayı    As Integer, _
        c       As Range
        
   Application.ScreenUpdating = False
    
    For i = 2 To 36
    
        Do
            Randomize
            Sayı = Int((150 * Rnd) + 1)
            Set c = Range("A2:[B][COLOR=red]C36[/COLOR][/B]" & i + 1).Find(Sayı, LookIn:=xlValues, LookAt:=xlWhole)
        Loop While Not c Is Nothing
        
        Cells(i, "[B][COLOR=red]C[/COLOR][/B]") = Sayı
        
    Next i
    Range("B2:B36").Sort key1:=[B1]
    Application.ScreenUpdating = True
    MsgBox "İşlem tamamdır.....", vbInformation, "N. YEŞERTENER --> [URL="http://www.excel.web.tr/"]www.excel.web.tr[/URL]"
End Sub
 
çok teşekkür ederim ben her ikisini aynı alanda kullanıyorum çok işime yaradı diğerini başka bir düğmeye atadım böylelikle önce 2 sınav için sonra 3 sınav için soru bulabiliyorum
 
Sayı = Int((150 * Rnd) + 1)
hani meraktan soruyorum 150 sorum olmasa değişsse bazen 50 soru üzerinde bazen 80 soru olsa basic alanına girmeden bir hücre belirlesem ve o hücrede yazan rakam sınırında bu soruları bulsa mesela k1 hücresine 80 yazsam 2.sınav ve 3 sınav sorularını buna göre baksa nasıl olur böylece biraz daha geliştirmiş oluruz
 
Merhaba,

Sayı = Int((150 * Rnd) + 1)

koddaki 150 yerine dediğiniz gibi K1 hücresini kullanacaksanız [K1], Range("K1") yada Cells(1, "K") yazabilirsiniz
 
Geri
Üst