AYNI SAYI TEKRARLANMAYACAK ŞEKİLDE İSTENİLEN ARALIKTA BENZERSİZ SAYI ÜRETMEK
1-49 sayısal loto
|
A
|
B
|
C
|
D
|
1
|
|
|
|
|
2
|
|
|
|
|
3
|
|
|
3
|
=BÜYÜK(SATIR($1:$49)*DEĞİL(EĞERSAY($C$2:C2;SATIR($1:$49)));RASTGELEARADA(1;50-SATIR(A1)))
|
4
|
|
|
49
|
=BÜYÜK(SATIR($1:$49)*DEĞİL(EĞERSAY($C$2:C3;SATIR($1:$49)));RASTGELEARADA(1;50-SATIR(A2)))
|
5
|
|
|
24
|
=BÜYÜK(SATIR($1:$49)*DEĞİL(EĞERSAY($C$2:C4;SATIR($1:$49)));RASTGELEARADA(1;50-SATIR(A3)))
|
6
|
|
|
12
|
=BÜYÜK(SATIR($1:$49)*DEĞİL(EĞERSAY($C$2:C5;SATIR($1:$49)));RASTGELEARADA(1;50-SATIR(A4)))
|
7
|
|
|
2
|
=BÜYÜK(SATIR($1:$49)*DEĞİL(EĞERSAY($C$2:C6;SATIR($1:$49)));RASTGELEARADA(1;50-SATIR(A5)))
|
8
|
|
|
40
|
=BÜYÜK(SATIR($1:$49)*DEĞİL(EĞERSAY($C$2:C7;SATIR($1:$49)));RASTGELEARADA(1;50-SATIR(A6)))
|
1-80 10 numara
|
A
|
B
|
C
|
D
|
1
|
|
|
|
|
2
|
|
|
|
|
3
|
|
|
32
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C2;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A1)))
|
4
|
|
|
59
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C3;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A2)))
|
5
|
|
|
27
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C4;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A3)))
|
6
|
|
|
37
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C5;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A4)))
|
7
|
|
|
34
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C6;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A5)))
|
8
|
|
|
6
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C7;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A6)))
|
9
|
|
|
47
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C8;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A7)))
|
10
|
|
|
19
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C9;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A8)))
|
11
|
|
|
55
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C10;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A9)))
|
12
|
|
|
15
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C11;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A10)))
|
Yukarıdan formülü kopyaladıktan sonra hücreye çift tıklayıp ctrl + shift +enter a bas
ADIMLAR
DEĞİL() : mantıksal
sınamanızın sonucu doğru ise yanlışa yanlış ise doğruya çevirir.
BÜYÜK(aralık;k) : belirli
bir sayı dizisi içindeki k. büyük sayıyı verir.
RASTGELEARADA(alt;üst) : vereceğiniz
alt ve üst değerleri arasında random sayı üretir. (alt-üst dahil)
SATIR(başvuru) : başvurunun satır numarasını döndürür bu
hesaplamada satır fonksiyonunu kullanarak 1 den 49 a kadar giden bir sayı
dizisi oluşturacağız,
Diziler formülleri için ctrl + shift +enter a
basmayı unutmamak gerekiyor.
=BÜYÜK(SATIR($1:$49)*DEĞİL(EĞERSAY($C$2:C2;SATIR($1:$49)));RASTGELEARADA(1;50-SATIR(A1)))
Formülü kopyalayıp bir hücreye yapıştırdığınızda
değiştireceğiniz tek kısım mavi ile yazılı olan $C$2:C2
hücresi, formülü
yapıştırdığınız hücrenin bir üst hücresi olmalı, sondaki A1 hücreye yapışınca değişirse
orayı tekrar A1 olarak düzeltelim.
Önemli: formülü kopyalayıp yapıştırdığınızda
hata verecek ve #SAYI! Olarak görünecek
çünkü bu bir dizi formülü, hücreye çift tıklayıp ctrl + shift +enter ile formülü dizi haline döndürmeniz
gerekiyor.
Daha sonra
formülü tutup aşağıya doğru çekerseniz
çektiğiniz hücre sayısı kadar benzersiz sayılar ürettiğini göreceksiniz.
Şimdi adım adım formülü açıklamaya çalışalım, öncelikle
anlaşılır olması için 1 ile 10
arasındaki sayı tablosunda benzersiz sayılar seçelim, daha sonra istenilen
sayı grubunu kolayla uygulayabiliriz,
1-49 sayısal loto
1-80 10 numara gibi
A
|
B
|
C
|
D
|
|
1
|
||||
2
|
||||
3
|
3
|
=BÜYÜK(SATIR($1:$10)*DEĞİL(EĞERSAY($C$2:C2;SATIR($1:$10)));RASTGELEARADA(1;11-SATIR(A1)))
|
||
4
|
10
|
=BÜYÜK(SATIR($1:$10)*DEĞİL(EĞERSAY($C$2:C3;SATIR($1:$10)));RASTGELEARADA(1;11-SATIR(A2)))
|
||
5
|
4
|
=BÜYÜK(SATIR($1:$10)*DEĞİL(EĞERSAY($C$2:C4;SATIR($1:$10)));RASTGELEARADA(1;11-SATIR(A3)))
|
||
6
|
6
|
=BÜYÜK(SATIR($1:$10)*DEĞİL(EĞERSAY($C$2:C5;SATIR($1:$10)));RASTGELEARADA(1;11-SATIR(A4)))
|
||
7
|
9
|
=BÜYÜK(SATIR($1:$10)*DEĞİL(EĞERSAY($C$2:C6;SATIR($1:$10)));RASTGELEARADA(1;11-SATIR(A5)))
|
||
8
|
2
|
=BÜYÜK(SATIR($1:$10)*DEĞİL(EĞERSAY($C$2:C7;SATIR($1:$10)));RASTGELEARADA(1;11-SATIR(A6)))
|
||
9
|
1
|
=BÜYÜK(SATIR($1:$10)*DEĞİL(EĞERSAY($C$2:C8;SATIR($1:$10)));RASTGELEARADA(1;11-SATIR(A7)))
|
||
10
|
8
|
=BÜYÜK(SATIR($1:$10)*DEĞİL(EĞERSAY($C$2:C9;SATIR($1:$10)));RASTGELEARADA(1;11-SATIR(A8)))
|
||
11
|
5
|
=BÜYÜK(SATIR($1:$10)*DEĞİL(EĞERSAY($C$2:C10;SATIR($1:$10)));RASTGELEARADA(1;11-SATIR(A9)))
|
||
12
|
7
|
=BÜYÜK(SATIR($1:$10)*DEĞİL(EĞERSAY($C$2:C11;SATIR($1:$10)));RASTGELEARADA(1;11-SATIR(A10)))
|
·
SATIR($1:$10):
Burada 1 den 10 a kadar sayılardan oluşan
bir sayı dizisi oluşturduk, dizimin elemanları : {1/2/3/4/5/6/7/8/9/10}
·
EĞERSAY($C$2:C2;SATIR($1:$10)) : sayı
dizimdeki rakamlar içerisinde c2 hücresindeki değerlerden kaç tanesi var; ilk
tahmin hücremiz olduğu için daha önceden tekrarlayan bir sayı olamaz.
Bu formülü anlamak için sarı
ile çizili kısmı yorumlayalım:
EĞERSAY($C$2:C5;SATIR($1:$10))
: sayı dizimde yani {1/2/3/4/5/6/7/8/9/10}
içerisinde C2:C5 arasındaki { ,3,10,4 } hangi sayılar var? Formül şöyle bir
sonuç döndürecek:
{0/0/1/1/0/0/0/0/0/1} DEĞİL ile formülü tersine çevirelim: {doğru/doğru/yanlış/yanlış/doğru/
doğru/ doğru/ doğru/ doğru/yanlış}
Bunu satır dizemle çarptığımda tekrarlayan değerler
dizide 0 değerini alacak: yani =BÜYÜK({1/2/0/0/5/6/7/8/9/0};
RASTGELEARADA(1;11-SATIR(A4)))
Bu kısım ile benzer değer
üretmesini engellemiş olduk;
·
Şimdi geldik random (rastgele) sayı
üreten kısma
RASTGELEARADA(1;11-SATIR(A4)) : her
bir satır aşağıya indiğimizde dizimdeki sıfır sayısı satır sayımın 1 eksiği
kadar artıyor. Yani 4. Rakamı tahmin ederken dizimde önceden tahmin edilmiş 3
sayı bulunuyor ve bu üç sayı değil fonksiyonuyla sıfır halini alıyor.
Dolayısıyla biz de tahmin aralığımızı 0 sayısı kadar
azaltmaz isek tahmin sonucumuz 0 ı döndürebilir.
‘Nasıl mı?
Yine 4. Sayıyı ürettiğimiz satırda olduğumuzu varsayalım:
RASTGELEARADA(1;10) olarak sayı ürettik sonuç olarak 9
verdi. Formülümüz BÜYÜK({1/2/0/0/5/6/7/8/9/0};9) halini aldı. 9. Sıradaki
en büyük sayı 0 olduğu için sonuç 0 gelecektir.
Dolayısıyla sayı aralığımızın en büyük
değeri (dizi sayımız- 0 sayısı) olmalı.
·
En son
kısma geldik:
=BÜYÜK({1/2/0/0/5/6/7/8/9/0};
RASTGELEARADA(1;7)) sonucun
6 gelmesi için rastsal sayımız 4 olmalı (6 =dizideki 4. Büyük sayı)
==BÜYÜK({1/2/0/0/5/6/7/8/9/0}; 4) = 6
1-49 sayısal loto
A
|
B
|
C
|
D
|
|
1
|
||||
2
|
||||
3
|
3
|
=BÜYÜK(SATIR($1:$49)*DEĞİL(EĞERSAY($C$2:C2;SATIR($1:$49)));RASTGELEARADA(1;50-SATIR(A1)))
|
||
4
|
49
|
=BÜYÜK(SATIR($1:$49)*DEĞİL(EĞERSAY($C$2:C3;SATIR($1:$49)));RASTGELEARADA(1;50-SATIR(A2)))
|
||
5
|
24
|
=BÜYÜK(SATIR($1:$49)*DEĞİL(EĞERSAY($C$2:C4;SATIR($1:$49)));RASTGELEARADA(1;50-SATIR(A3)))
|
||
6
|
12
|
=BÜYÜK(SATIR($1:$49)*DEĞİL(EĞERSAY($C$2:C5;SATIR($1:$49)));RASTGELEARADA(1;50-SATIR(A4)))
|
||
7
|
2
|
=BÜYÜK(SATIR($1:$49)*DEĞİL(EĞERSAY($C$2:C6;SATIR($1:$49)));RASTGELEARADA(1;50-SATIR(A5)))
|
||
8
|
40
|
=BÜYÜK(SATIR($1:$49)*DEĞİL(EĞERSAY($C$2:C7;SATIR($1:$49)));RASTGELEARADA(1;50-SATIR(A6)))
|
1-80 10 numara
A
|
B
|
C
|
D
|
|
1
|
||||
2
|
||||
3
|
32
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C2;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A1)))
|
||
4
|
59
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C3;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A2)))
|
||
5
|
27
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C4;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A3)))
|
||
6
|
37
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C5;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A4)))
|
||
7
|
34
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C6;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A5)))
|
||
8
|
6
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C7;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A6)))
|
||
9
|
47
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C8;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A7)))
|
||
10
|
19
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C9;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A8)))
|
||
11
|
55
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C10;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A9)))
|
||
12
|
15
|
=BÜYÜK(SATIR($1:$80)*DEĞİL(EĞERSAY($C$2:C11;SATIR($1:$80)));RASTGELEARADA(1;81-SATIR(A10)))
|
Yeni yeni
rakamlar üretmek için F9 a basalım:
Ya da vba da
küçük bir calculate formülü yazalım ve bunu bir butona bağlayalım
Sub Macro1()
Calculate
End Sub
Merhaba hocam,
YanıtlaSilElimde 90 kişilik bir liste var. Aynı mantıkla listedeki kişileri rastgele tekrarsız olarak yazdırmak istiyorum. Nasıl yapabilirim yardımcı olur musunuz?
neverstop00@gmail.com
Sil